Msfvenom es el actual generador de
payloads para
Metasploit Framework, ocupando el lugar de sus prestigiosos antecesores
msfpayload y
msfencode a partir del 8 de Junio del año pasado. En ocasiones necesitamos crear varios de estos o almacenar sus parámetros, de modo que, si se trata de una gran cantidad de encoders, arquitecturas, plataformas y más opciones, puede hacer de nuestro entorno de trabajo un fárrago por momentos.
|
Figura 1: Libenom: Gestiona tus payloads de Msfvenom en Metasploit cómodamente |
Con el fin de que esto no suceda, he creado
Libenom con la esperanza de que os sea de utilidad. La herramienta está programada en
Python, que es un lenguaje muy común entre los que se dedican al pentesting. Vamos a ello, “
manos a la obra”, así que lo primero es descargar la herramienta desde su
repositorio de GitHub.
El funcionamiento de esta es claro, pero antes de ejecutarla como
root le daremos permisos al archivo
“chmod +x libenom.py”. Entre las diferentes opciones que nos devuelve, crearemos un perfil “
maligno” con la opción -
-create, además como observamos, nos hará un chequeo del sistema para comprobar cualquier componente esencial que se encuentre ausente.
|
Figura 3: Comandos de libenom |
Las distribuciones de
GNU/Linux que se recomiendan son:
Kali Linux 2.0 sana,
2016.1 rolling, Parrot OS, Blackarch, Dracos o
Lionsec. En caso de que estemos usando algún otro derivado, tales como
Debian / Ubuntu / Mint , nos instalará el componente estrella automáticamente.
|
Figura 4: Ejecución del comando ./libenom.py -c maligno |
Esto nos ahorra tener que insertar o memorizar el comando frecuentemente usado, ahorrándonos tiempo y esfuerzo durante el proceso de
pentesting. Si nos hemos equivocado en algún paso podremos retroceder con la opción
--delete, incluso pudiéndolo hacer de forma recursiva con una simple
“,” entre los nombres que se le asignen desde la línea de comandos.
Lo siguiente que nos depara la tool es, lanzar el
msfvenom con los valores del nombre que creamos anteriormente, pudiendo hacer un
--read para comprobar que el contenido de éste, el cual queremos ejecutar mediante el comando
--execute, es el correcto.
|
Figura 5: Ejecución del comando ./libenom.py -r maligno |
En caso de que queramos ahorrarnos parte del proceso tenemos la opción
--crex, luego nos permite crear y ejecutar con un sola orden los criterios asignado por el usuario. Llegados hasta este punto, podremos comprobar si los procedimientos son correctos, abriendo nuestro archivo
“profiles.csv” y comprobando que ha almacenado todos los datos. Si no hemos elegido un
path específico para nuestro fichero, este se guardará en el directorio “
outfiles”.
|
Figura 6: Ejecución del comando ./libenom.py -x maligno |
En muchos de los procesos de explotación con Metasploit, es necesario crear la escucha para tenderle la mano a nuestro equipo víctima. Ya que mayoritariamente “
reverse_tcp” es el tipo de conexión que más es usada, la herramienta nos ofrece algunos
listeners pre-creados para las plataformas más comunes. En caso de que queramos escuchar las conexiones procedentes de nuestro perfil creado anteriormente, usaremos el módulo
--listener más la plataforma solicitada, indicando los parámetros de conexión requeridos.
|
Figura 7: Listeners pre-creados en libenom.py. |
Si por alguna razón necesitamos editar su configuración, podremos crear uno nuevo, auto reemplazando el actual para esa plataforma o modificando el “.
txt” generado para cada plataforma en el directorio del proyecto llamado “
temp”. Al igual sucede si queremos editar algún alias sin tener que reemplazarlo editando desde “
master” el fichero
CSV.
|
Figura 8: Ejecución del comando ./libenom.py -l windows |
En este proyecto se pretende crear una comunidad de usuarios dispuestos a compartir desde los datos que contienen sus perfiles hasta nuevas implementaciones al código de la aplicación. Para obtener más información podemos hacerlo mediante -
-upload.
|
Figura 9: Ejecución del comando ./libenom.py --upload |
Como he mostrado esta utilidad nos hace la vida un poco más fácil, ya que tendremos guardados dentro del proyecto todas las referencias con sus correspondientes
payloads listos para ser vueltos a ejecutar en cualquier momento. Esto es todo, espero que os haya gustado y os sea de utilidad. Hasta la próxima.
Saludos!
Autor: Alex Serra