Mimikatz es una utilidad de código abierto para Windows que se puede descargar desde GitHub. Desarrollada por primera vez en 2007 para demostrar un exploit práctico del Servicio de Subsistema de Autoridad de Seguridad Local de Microsoft Windows, o LSASS, Mimikatz es capaz de volcar la información de inicio de sesión de las cuentas, incluyendo las contraseñas en texto claro almacenadas en la memoria del sistema.
Mimikatz, que en francés significa gato bonito, es una herramienta de post-explotación destinada a ayudar a los atacantes, ya sean hackers de sombrero negro, hackers de equipo rojo o probadores de penetración, a extraer los identificadores de inicio de sesión, las contraseñas y los tokens de autenticación de los sistemas hackeados con el fin de elevar los privilegios y obtener un mayor acceso a los sistemas de una red violada.
Este tutorial de Mimikatz proporciona una introducción a la herramienta de hacking de credenciales, lo que hace Mimikatz y cómo utilizar Mimikatz para extraer las contraseñas de inicio de sesión de un sistema objetivo.
Los hackers utilizan Mimikatz para ampliar su presencia en las redes de las víctimas mediante la extracción y el uso de claves que pueden haber sido reutilizadas en otros sistemas o mediante la extracción de claves de cuentas con privilegios elevados, como las utilizadas por los administradores.
Benjamin Delpy, el investigador francés de seguridad de la información que creó Mimikatz, escribió en la página GitHub de Mimikatz que el software puede utilizarse para «extraer contraseñas en texto plano, hash, código PIN y tickets Kerberos de la memoria», o para «realizar pass-the-hash, pass-the-ticket o construir tickets Golden». Los ataques de Mimikatz explotan los esquemas de autenticación estándar de Windows, así como la autenticación Kerberos.
Estas capacidades hacen de Mimikatz una herramienta imprescindible para los atacantes: El marco Mitre ATT&CK identifica al menos 20 grupos diferentes de amenazas persistentes avanzadas que han sido detectados utilizando Mimikatz. Sin embargo, Mimikatz también es una herramienta clave para los defensores, especialmente para aquellos que realizan pruebas de penetración o ejercicios de equipo rojo para demostrar lo bien -o lo mal- que una organización es capaz de defenderse contra este tipo de ataques.
Cómo conseguirlo: Cómo descargar Mimikatz y ponerlo en marcha
El mejor lugar para obtener Mimikatz es la página del proyecto Mimikatz GitHub, donde se puede descargar el código fuente de Mimikatz. Los binarios precompilados para Windows también están disponibles en la página GitHub de Mimikatz.
Si eliges descargar el código fuente de Mimikatz, tendrás que compilar el código con Microsoft Visual Studio. Descargar cualquier versión de Mimikatz, ya sea el código fuente o los binarios precompilados, puede ser un desafío, ya que los navegadores y sistemas operativos modernos clasifican a Mimikatz como peligroso y bloquean a los usuarios para que no lo descarguen. Muchos productos de seguridad para puntos finales -incluido el propio Windows Defender de Microsoft- bloquearán Mimikatz porque el software se utiliza a menudo en los ataques.
Una forma de evitar ser bloqueado por el antimalware es utilizar el módulo Invoke-Mimikatz PowerShell, que permite a un atacante que ejecuta PowerShell, el marco de automatización de tareas de Microsoft, cargar y ejecutar Mimikatz de forma remota sin necesidad de escribir el ejecutable en el disco del sistema objetivo.
¿Para qué sirve Mimikatz?
Mimikatz puede hacer mucho, y su estructura modular significa que se pueden añadir nuevas características y funciones a la plataforma con relativa facilidad. Como se ha señalado, la ejecución de Mimikatz como un módulo de PowerShell lo convierte en una técnica de ataque aún más eficaz.
Las principales funciones que permite Mimikatz incluyen:
- Extraer contraseñas de la memoria. Cuando se ejecuta con privilegios de administrador o del sistema, los atacantes pueden utilizar Mimikatz para extraer tokens de autenticación en texto plano -contraseñas y PINs, por ejemplo- del proceso LSASS que se ejecuta en la memoria del sistema.
- Extracción de tickets Kerberos. Usando un módulo de Kerberos, Mimikatz puede acceder a la API de Kerberos, permitiendo una serie de diferentes exploits de Kerberos que utilizan tickets de Kerberos que han sido extraídos de la memoria del sistema.
- Extracción de certificados y sus claves privadas. Un módulo de Windows CryptoAPI permite a Mimikatz extraer certificados -y las claves privadas asociadas a ellos- que están almacenados en el sistema de la víctima.
Mimikatz se vuelve aún más poderoso cuando se combina con otras plataformas de ataque como la utilidad Microsoft PowerShell, la plataforma Metasploit u otras herramientas que permiten a los hackers explotar las credenciales que Mimikatz extrae de los sistemas de la víctima.
Tutorial práctico: Configuración y comandos de Mimikatz
Tanto si se ejecuta Mimikatz desde un ejecutable que se ejecuta en un sistema víctima como si se ejecuta una utilidad como PowerShell de forma remota, los comandos se pueden ejecutar manualmente con una línea de comandos de la consola o ejecutando un script para que se ejecute automáticamente.
El formato por defecto para emitir comandos es introducir el módulo del comando seguido de dos dos puntos y el nombre del comando. Se puede introducir más de un comando a la vez, pero cualquier comando que incluya espacios debe ir entre comillas.
La sesión de comandos comienza así después de que Mimikatz se ejecute:
mimikatz #
Para salir de Mimikatz, introduzca el comando exit.
El proceso de extracción de contraseñas en texto claro comienza invocando el comando debug del módulo de privilegios. Este comando eleva los permisos para que Mimikatz llegue al nivel de privilegio de depuración, y tiene el siguiente aspecto:
mimikatz # privilegio::depuración
Privilegio ’20’ OK
Para grabar un registro de las interacciones y resultados de Mimikatz, introduce:
mimikatz # log
Usando ‘mimikatz.log’ para el archivo de registro : OK
El archivo de registro por defecto es mimikatz.log, pero puede especificar otro nombre de archivo de registro con un comando. Por ejemplo:
mimikatz # log customlogfilename.log
Una vez activado el registro, el resto de la sesión se registrará con fines de exfiltración o análisis.
Quizás el comando más sencillo y productivo es el que extrae las contraseñas en texto plano, las lista en la pantalla de la consola y las escribe en el archivo de registro.
mimikatz # sekurlsa::logonpasswords
El comando logonpasswords extrae el ID de usuario y la contraseña de los usuarios actualmente conectados y recientemente conectados del sistema objetivo.
El módulo sekurlsa incluye otros comandos para extraer las credenciales de Kerberos y las claves de cifrado, e incluso puede realizar un ataque pass-the-hash utilizando las credenciales que extrae Mimikatz.
Este tutorial de Mimikatz pretende ser una introducción a la herramienta de hacking. Merece la pena conocer cómo funciona Mimikatz en la práctica y lo fácil que hace los exploits del sistema incluso para atacantes poco sofisticados.