Técnicas de Evasión y Bypass de Antivirus¶
Este documento detalla técnicas avanzadas para evadir software antivirus (AV), destinadas para uso ético en pruebas de penetración y actividades de red team. Incluye métodos prácticos, herramientas y ejemplos, con un enfoque en la inyección en memoria basada en PowerShell como técnica clave.
Bypass de AMSI y Política de Ejecución¶
Bypass de Política de Ejecución¶
- Comando:
- Descripción: Desactiva las políticas de ejecución de PowerShell, permitiendo que los scripts se ejecuten sin restricciones impuestas por la configuración de seguridad predeterminada.
Bypass de AMSI¶
- Comando:
sET-ItEM ( 'V'+'aR' + 'IA' + 'blE:1q2' + 'uZx' ) ( [TYpE]( "{1}{0}"-F'F','rE' ) ) ; ( GeT-VariaBle ( "1Q2U" +"zX" ) -VaL )."A`ss`Embly"."GET`TY`Pe"(( "{6}{3}{1}{4}{2}{0}{5}" -f'Util','A','Amsi','.Management.','utomation.','s','System' ) )."g`etf`iElD"( ( "{0}{2}{1}" -f'amsi','d','InitFaile' ),( "{2}{4}{0}{1}{3}" -f 'Stat','i','NonPubli','c','c,' ))."sE`T`VaLUE"( ${n`ULl},${t`RuE} ) - Descripción: Desactiva la Interfaz de Escaneo Antimalware de Windows (AMSI) modificando dinámicamente una variable para forzar un fallo de inicialización. Esta técnica sigue sin parchearse por Microsoft y es efectiva para ejecutar scripts maliciosos sin ser detectados por motores de escaneo integrados.
Desactivar AV (Solo Administradores)¶
Desactivar Funciones de AV¶
- Comando:
- Descripción: Desactiva múltiples funciones de protección de Windows Defender (monitoreo en tiempo real, escaneo de scripts, monitoreo de comportamiento, etc.). Requiere privilegios administrativos.
Excluir Rutas o Procesos¶
- Comando:
- Descripción: Excluye directorios o procesos específicos de los escaneos de Windows Defender, permitiendo que archivos potencialmente maliciosos se ejecuten sin interferencias.
Técnicas de Inyección de Código¶
Shellter¶
- Descripción: Shellter inyecta cargas útiles en archivos ejecutables portátiles (PE) legítimos, como instaladores de aplicaciones populares (por ejemplo, Spotify). Modifica el flujo de ejecución para insertar código malicioso.
- Instalación en Kali:
- Uso Básico:
- Ejecuta
shellteren Kali bajo Wine. - Selecciona el modo "Auto" (A).
- Especifica un archivo PE objetivo (por ejemplo,
/home/kali/Downloads/SpotifyFullWin10-32bit.exe). - Habilita el "Modo Sigiloso" para restaurar el flujo de ejecución original después de la ejecución de la carga útil.
- Elige una carga útil (por ejemplo, shell inverso de Meterpreter) y configura LHOST/LPORT.
- Ejecuta
- Ejemplo Práctico:
- Inyecta una carga útil de Meterpreter en un instalador de Spotify para evadir la detección de Avira.
- Configura un listener en Kali:
Inyección en Memoria¶
- Descripción: Inyecta shellcode directamente en la memoria de procesos en ejecución, evitando escrituras en disco para evadir la detección estática.
- Técnicas Comunes:
- Inyección de DLL: Inyecta una DLL maliciosa en un proceso legítimo.
- Process Hollowing: Reemplaza el contenido de un proceso legítimo con código malicioso.
- Ventaja: Altamente efectivo contra análisis basados en disco.
Inyección en Memoria con PowerShell¶
- Descripción: Aprovecha la capacidad de PowerShell para interactuar con las API de Windows y ejecutar cargas útiles maliciosas en la memoria del proceso actual de PowerShell (intérprete x86). Esto evita escrituras en disco, dificultando la detección.
- Ventajas:
- Los scripts son más difíciles de marcar como maliciosos ya que se ejecutan dentro de un intérprete y no como código ejecutable.
- Fácilmente modificable (nombres de variables, comentarios, lógica) para evadir detección basada en firmas sin necesidad de recompilación.
- Pasos Clave:
- Importar APIs de Windows: Usa
DllImportpara acceder aVirtualAlloc,CreateThread(dekernel32.dll) ymemset(demsvcrt.dll) para asignación de memoria, creación de hilos y escritura de cargas útiles. - Asignar Memoria: Reserva un bloque de memoria usando
VirtualAlloccon permisos de lectura/escritura/ejecución. - Escribir Carga Útil: Copia el shellcode byte por byte en la memoria asignada usando
memset. - Ejecutar Carga Útil: Crea un nuevo hilo con
CreateThreadpara ejecutar el shellcode.
- Importar APIs de Windows: Usa
- Ejemplo de Script: (Ver contenido original para el script completo)
Generación de Cargas Útiles¶
- Genera una carga útil de shell inverso usando
msfvenom: - Copia el array de bytes
$scresultante en el script.
Ofuscación y Cargas Útiles Personalizadas¶
Ofuscación¶
- Descripción: Modifica las cargas útiles para evitar coincidencias con firmas conocidas de AV.
- Técnicas:
- Codificación (encoding de datos).
- Encriptación (encryption de cargas útiles).
- Polimorfismo (cambios dinámicos en el código).
Cargas Útiles Personalizadas¶
- Descripción: Crea cargas útiles únicas para evadir detecciones específicas.
- Herramientas: Metasploit, Veil (para generar scripts ofuscados).
- Ejemplo: Usa Veil para crear un script de PowerShell o batch que evada COMODO AV en un entorno de autoejecución FTP.
Consejos Generales¶
- Conoce el AV Objetivo:
- Investiga métodos específicos de detección (firmas, heurísticas, comportamiento).
- Adapta las técnicas para explotar debilidades identificadas.
- Uso Ético:
- Aplica estas técnicas solo en entornos autorizados (pruebas de penetración, laboratorios).
- Cumple con las leyes y regulaciones locales.
- Evolución Constante:
- Los AV se actualizan frecuentemente; adapta las técnicas en consecuencia.
- Consulta recursos como el artículo de Microsoft sobre FinFisher o el documento de Emeric Nasi para métodos avanzados.
Flujo de Trabajo Ejemplo: Evasión con Shellter¶
- Preparación:
- Descarga un ejecutable legítimo (por ejemplo, instalador de Spotify).
- Instala Shellter en Kali con Wine.
- Inyección:
- Usa Shellter en modo Auto, habilita el Modo Sigiloso e inyecta una carga útil de Meterpreter.
- Ejecución:
- Transfiere el archivo modificado a una máquina virtual con Windows y escanea con AV (por ejemplo, Avira).
- Configura un listener en Kali y verifica la conexión de Meterpreter.
- Resultado: Ejecución exitosa sin detección, preservando la funcionalidad original del programa.