MimiKatz

¿Qué es Mimikatz?

Mimikatz es una herramienta de post-explotación para sistemas Windows, escrita en C y C++, que permite extraer credenciales, manipular procesos de autenticación y abusar de mecanismos de seguridad como Kerberos, NTLM y LSA.

Fue creada por Benjamin Delpy (@gentilkiwi) y ha sido históricamente utilizada en pruebas de penetración, red teaming y análisis forense.

¿Se ejecuta solo en Windows?

Sí, Mimikatz está diseñado para ejecutarse en Windows, porque:

  • Interactúa directamente con procesos protegidos como lsass.exe (Local Security Authority Subsystem Service).

  • Utiliza funciones nativas del sistema operativo de bajo nivel (Win32 API, LSA functions).

  • Extrae datos sensibles directamente de la memoria del sistema.

  • Existen ports o integraciones en frameworks (como Metasploit, Empire, o Cobalt Strike), pero el binario puro de Mimikatz debe ejecutarse en Windows, o en un entorno emulado que tenga acceso a memoria de Windows (por ejemplo, usando un dump de LSASS).

¿Es un script .ps1?

  • No, Mimikatz es un ejecutable nativo (.exe) compilado.

  • Sin embargo, existen versiones mínimas adaptadas en PowerShell, como Invoke-Mimikatz.ps1, que cargan Mimikatz en memoria desde un shell sin tocar el disco (bypasseando AV/EDR).

¿Para qué se utiliza en pentesting?

Mimikatz es ampliamente usado en pentesting y red teaming por su capacidad para obtener y manipular credenciales:

Extracción de credenciales

  • sekurlsa::logonpasswords → extrae credenciales en texto claro, hashes NTLM, tickets Kerberos directamente de memoria.

  • lsadump::sam / lsadump::secrets → saca hashes del SAM o secretos del sistema.

Ataques sobre Kerberos

  • Pass-the-Hash → iniciar sesión usando solo el hash NTLM.

  • Pass-the-Ticket (PTT) → inyectar manualmente un ticket .kirbi en memoria.

  • Overpass-the-Hash → generar un TGT con el hash NTLM.

  • Golden Ticket → crear un TGT falso como krbtgt (persistence total).

  • Silver Ticket → crear TGS falsos para servicios específicos (más sigiloso).

Otras capacidades

  • Exportar certificados, claves y secretos (como DPAPI).

  • Manipular UAC y proteger procesos.

  • Interacción con credman, vaults y almacenamientos seguros de Windows.

¿Qué lo hace tan peligroso?

  • Puede bypassear muchas medidas de seguridad si se ejecuta con privilegios suficientes (p. ej., SYSTEM).

  • Permite a un atacante moverse lateralmente, persistir y escalar privilegios sin depender de vulnerabilidades tradicionales.

En resumen

  • ¿Es solo para Windows? → Sí, por su necesidad de acceder a memoria interna del sistema.

  • ¿Es un script .ps1? → No, pero existen formas de cargarlo como script (in-memory).

  • ¿Para qué sirve? → Extracción de credenciales, manipulación de tickets, ataques Kerberos, persistencia y más.

| Módulo                       | Descripción                                                                 |
|------------------------------|-----------------------------------------------------------------------------|
| `sekurlsa::logonpasswords`   | Extrae credenciales en texto claro, NTLM, y tickets de sesiones activas.    |
| `sekurlsa::tickets`          | Lista todos los tickets Kerberos en memoria (TGT, TGS, etc.).               |
| `sekurlsa::pth`              | Ejecuta Pass-the-Hash iniciando una sesión con hash NTLM.                   |
| `kerberos::ptt`              | Inyecta un ticket `.kirbi` (Pass-the-Ticket) en memoria.                    |
| `kerberos::list`             | Muestra los tickets Kerberos cargados en memoria.                           |
| `kerberos::purge`            | Elimina todos los tickets Kerberos de la memoria.                           |
| `lsadump::sam`               | Extrae hashes de contraseñas del archivo SAM (requiere SYSTEM).             |
| `lsadump::secrets`           | Extrae secretos del sistema, como contraseñas de servicios y cuentas.       |
| `lsadump::lsa`               | Extrae políticas de seguridad del sistema, incluidas claves de dominio.     |
| `token::list`                | Lista todos los tokens de acceso activos en el sistema.                     |
| `token::elevate`             | Cambia al token de un proceso con más privilegios (si se permite).          |
| `privilege::debug`           | Habilita privilegios necesarios para acceder a LSASS o inyectar código.     |
| `vault::cred`                | Extrae credenciales almacenadas en el almacén de Windows Vault.             |
| `dpapi::cred`                | Descifra archivos protegidos por DPAPI, como credenciales o secretos.       |

Ver maquinas: Acces (HTB), Timelapse (HTB)

Ver módulos: Attacking Kerberos (THM)

Last updated