# Msfvenom: Creación de payloads personalizados Como ven durante la clase de explotación de vulnerabilidades el uso de Metasploit puede ir desde el uso más básico hasta la configuración manual y más adelante, la creación de tus propios exploits y payloads. Un paso intermedio sería ayudarnos de una herramienta como msfvenom para hacer nuestros payloads personalizados. ![image](https://hackmd.io/_uploads/ByoTb6nN6.png) Vamos a generar nuestro propio payload y vamos a utilizarlo en el exploit que habíamos visto en este taller en el que explotábamos la vulnerabilidad del Unreal_IRC Lo primero que tenemos que hacer si queremos generar nuestro propio payload es recordar la estructura que teníamos en metasploit ![image](https://hackmd.io/_uploads/BJ6QQahVp.png) Tenemos payloads, singles, stagers y stages, por lo pronto a nuestro nivel sólo hemos usado los singles así que generemos uno que no necesite nada más para ejecutarse. ![image](https://hackmd.io/_uploads/HJXdXa3E6.png) Vemos la estructura que tiene y volvemos a tomar decisiones. Como más adelante queremos aprender algo de python decidimos hacer un payload de python, entramos en la carpeta: ![image](https://hackmd.io/_uploads/ByJ646nEp.png) Como ven hay palabras que se repiten, una shell que ya les suena y otra meterpreter, busquen lo que es como adelanto...será el próximo taller. Por lo pronto para ir avanzando generaremos nuestra propia shell reversa con msfvenom pero además vamos a añadirla a una versión del exploit que podemos encontrar en github: https://github.com/Ranger11Danger/UnrealIRCd-3.2.8.1-Backdoor Nos la descargamos y la descomprimimos en el escritorio, vamos a editar el fichero exploit.py, en mi caso con nano. Vemos nuestro primer código en python, no se asusten que iremos poco a poco, por lo pronto quédense con la estructura. Por lo pronto nos interesa ver que tiene tres tipos de payloads incluidos, vamos a sustituir el de python por el nuestro. Lo generamos indicando el payload que usamos de base más el host y el puerto de escucha: ![image](https://hackmd.io/_uploads/Sk2BRah4p.png) COmo ves está codificado lo que se supone que hace más difícil su detección (aunque ya les digo que no! los antivirus lo van a detectar igual pero por intentarlo que no quede!) Copiamos desde exec hasta el final y lo incluimos en el código de nuestro payload: ![image](https://hackmd.io/_uploads/BJgPyxRhEp.png) Hay varios pasos a seguir antes de que esto funcione: - hay que poner** f' python -c "** antes del código para que se ejecute y al final del código cerrar con **"'** - en el código la comilla simple se considera que termina el script pero hay varias que son parte del script, hay que escaparlas poniendo antes el la barra \, así que dentro del script asegúrate de escapar cualquier comilla simple. Ponemos en nuestro kali otra terminal a la escucha en el puerto indicado: ![image](https://hackmd.io/_uploads/Bk_h-AhET.png) Acuérdate de poner iptables -F para desactivar el firewall en la víctima. Y lanzamos nuestro exploit directamente con esta instrucción ![image](https://hackmd.io/_uploads/ByiZ4A3V6.png) Si vamos a la terminal que nos pusimos a la escucha y ponemos ls veremos que ...estamos dentro con nuestro propio payload! ![image](https://hackmd.io/_uploads/ry-vEAhVa.png) Si me hiciste caso y miraste lo que era un meterpreter entenderás que es más interesante si intentamos utilizar este tipo de payloads. Así que ejercicio, vete haciéndolo y capturando lo que haces, no está totalmente guiado, hay que poner un poco de su parte: a) Crea con msfvenom un payload con python/meterpreter_reverse_tcp b) te vas a dar cuenta de que si pones la creación de esto como payload single el código es enorme, esto va a dar problemas ya que será mucho más detectable. c) realmente lo que se hace es que se crea el payload de python/meterpreter/reverse_http (por cambiar! podíamos haberlo hecho de nuevo con tcp) d) ten en cuenta que ahora no vas a recibir una conexión que puedas escuchar con nc, tenemos que poner a escuchar una conexión de un meterpreter, para ello tenemos el handler del metasploit e) entra en metasploit y usa exploit/multi/handler f) configura los datos y carga el mismo payload que usamos para generar el nuestro con msfvenom (python/meterpreter/reverse_http) g) si ejecutamos exploit en metasploit debería quedar en escucha h) ahora lanza nuestro exploit y esto es lo que debería aparecer en el metasploit que teníamos a escucha ![image](https://hackmd.io/_uploads/rJY_KRnVT.png) Además de poder hacer lo mismo que con la conexión nc veremos más adelante que meterpreter tiene muchas opciones de postexplotación...pero aquí tenemos nuestra primera conexión con meterpreter! Vamos a generar e intentar ofuscar un payload para windows siguiendo este tutorial: https://www.hackingloops.com/msfvenom/ Y si quieres hacer alguna práctica más antes de dar nuestra clase específica: https://www.youtube.com/watch?v=UjjIEduADcA