martes, 26 de junio de 2018

ShellPop: Shells para hacer pop y...

Compartir este artículo:
El mundo de las shells inversas o de tipo bind es un amplio mundo. En todo pentestinges necesario utilizar, casi de manera constante, diferentes tipos de shells, ya que no solo del Meterpreter de Metasploit vive el pentester. Es importante disponer en la mochila del pentester de una herramienta que permita obtener y generar una shell en un momento determindo. Sin duda, una de las herramientas importantes en este ámbito es msfvenomde Metasploit o, incluso, desde el propio msfconsole.

Hoy quería hablaros de una herramienta que también proporciona otro punto de vista y otra forma de lograr generar shellsen un momento determinado, bajo las circunstancias que tengamos. La herramienta se llama ShellPop y se puede obtener en su repositorio de Github

Para llevar a cabo la instalación de ShellPopse debe descargar desde Github, por ejemplo, con la ejecución del comando git clone. Después, se deben instalar las dependencias de Python, ya que la herramienta está escrita en Python. En primer lugar, se ejecuta la siguiente instrucción apt-get install python-argcomplete –y. Posteriormente, se instalan las dependencias que vienen especificadas en el fichero requirements.txt. Esta operativa se realiza de la siguiente manera:pip install –r requierements.txt


Una vez tenemos todo preparado y con las dependencias resueltas, debemos instalar la aplicación. Para ello, se utiliza la instrucción python setup.py install. De esta manera dispondremos del comando desde la consola en cualquier instante. 

La ayuda que proporciona la herramienta es buena. Si ejecutamos shellpop –hobtenemos un listado de todo lo que podemos hacer con la herramienta. Vemos que la herramienta tiene una serie de opciones con las que podemos ‘settearel hosty el puerto dónde la shellrealizará acción, dependiendo de su naturaleza: reversebind

Además, podemos ver en la ayuda una categoría de tipos de shell, de opciones de encoderse, incluso, opciones de stager, lo cual hace que sea flexible la configuración de las shell. Además, la herramienta proporciona una categoría propia para generar shellspara Powershell. 


Para obtener el listado de shellsdisponibles y el tipo de conexión de éstas, podemos ejecutar shellpop –list. Como se puede ver en la siguiente imagen tenemos shellsde tipo bindy de tipo reverse. El ID que aparece al lado de lashelles importante, ya que después lo tendremos que indicar si queremos utilizar dicha shell


Lo interesante es ver el número de lenguajes distintos en los que disponemos una shell. Lenguajes como Perl, Python, RubyPHPproporcionan una base fuerte e interesante, debido a que podemos ejecutar una shellen diferentes plataformas, indiferentemente del sistema y jugando con más con la tecnología y con el lenguaje. 

Una opción interesante que proporciona la herramienta es la opción –clip, el cua permite generar la shelly copiarla al portapapeles. Es una opción interesante cuando se quiere llevar el resultado de la ejecución de la herramienta a una herramienta o script propio. 

Para mostrar un ejemplo, en mi querido Ruby, ejecutamos la siguiente instrucción shellpop –reverse –number 4 –host [dirección] –port 4444 –handler. Con la opción –reverseindicamos que lashellserá inversa y no de tipo bind. La opción –numbernos permite indicar, según el índice del listado, la shellque queremos generar. La opción –hostnos permite indicar la dirección dónde la shellse atará, en caso de ser de tipo bindo dónde la shellrealizará la petición de conexión en caso de ser inversa. Respecto a la opción –portindicamos el puerto sobre el que trabajará la shell. Por último, la opción –handlerconfigura el handlerpara recibir las conexiones o generarlas, de nuevo en función de si es reversebind


El handler arranca y llega la primera conexión, cuando en el target remoto se ejecuta el código. A partir de ahí, disponemos de la posibilidad de interactuar con la shell y lanzar instrucciones en el host remoto. 


Como se puede ver, las posibilidades que ofrece ShellPopson bastante amplias. Me recuerda a una herramienta de la que ya hablamos aquí llamada ZeroDoor de OWASP, con la que se podía crear diferentes shellcodes para diferentes plataformas. Otra herramienta que hay que tener en la mochila del pentester

No hay comentarios:

Publicar un comentario