Blog Blog

Dumping DPAPI Creds

June 5, 2025
Dumping DPAPI Creds

En esta publicación descubriremos como extraer credenciales encriptadas con DPAPI, una vez las hayamos encontrados en un escaneo manual o automatizado en sistemas operativos Windows visto desde la perspectiva de un atacante. No nos enfocamos en el levantamiento y configuración de laboratorio (posible update a este post).

El concepto DPAPI

Para empezar DPAPI (DATA PROTECTION API) es una característica de Windows, un sistema interno que utiliza para facilitar el encriptado simétrico de llaves asimétricas con un secreto que usualmente es la contraseña del usuario o en casos de sistema un "secreto" del dominio, de algunas aplicaciones de Microsoft, esto nos hace entender que es una capa de protección que se les da a las credenciales.

Cuando DPAPI ha encriptado una credencial/blob/data con una clave RSA, crea una ruta dentro del perfil del usuario localizado en: %APPDATA%\Microsoft\Protect\{SID}, en donde SID es Security Identifier.

1En estas rutas se almacen suelen almacenar las credenciales:
2Get-ChildItem -Force C:\Users\USER\AppData\Roaming\Microsoft\Credentials\
3Get-ChildItem -Force C:\Users\USER\AppData\Local\Microsoft\Credentials\
4
5En esta ruta las masterkeys:
6Get-ChildItem -Force $env:APPDATA\Microsoft\Protect\$env:USERNAME
7

Lo que se encuentra directamente en las materkeys realmente es un identificador, un nombre que se le pone a la masterkey llamada guidmasterkey para registrarla.

Es importante reconocer estas rutas ya que podemos encontrarnos con diferentes tipos de blobs encriptados que a veces no contienen información interesante y además debemos de vincular cada masterkey de la ruta /Protect/ con cada credencial en la ruta /Credential/. Se debe de encontrar con qué Masterkey está asociada una credencial.

En que se usa

No llegues a pensar que solamente se puede utilizar estas DPAPI's para hacer un CTF, realmente se utilizan en varios aspectos dentro de un entorno real.

  • Contraseñas y auto-completado en navegadores.
  • FTP
  • Wi-Fi
  • Windows Vault
  • Contraseñas Remotas / Remote Password Access
  • VPN's
  • Etc.

Dumping

Teniendo estas dos rutas localizadas y como hemos visto anteriormente, primero debemos mapear cuales son las masterkeys asociadas a que credencial, para esto podemos utilizar mimikatz, la herramienta apropiada para hacer esto.

1.\mimikatz.exe "dpapi::cred /in:C:\Users\USER\AppData\Roaming\Microsoft\Credentials\{CRED}" exit| findstr "guidMasterKey"

Esto nos ayudará a relacionarlos, para continuar debemos ahora también con mimikatz, desencriptar la masterkey.

1.\mimikatz.exe "dpapi::masterkey /in:C:\Users\USER\AppData\Roaming\Microsoft\Protect\{SID}\{guidMasterKey} /rpc" exit

Tambien se puede utilizar /pvk

Este comando nos dará la llave que necesitaremos para poder extraer la información dentro de la credencial.

Ahora procederemos a desencriptar la credencial con la respectiva masterkey, habrá casos especiales en el cual la contraseña no está cacheada y tenemos que especificar /sid, /password, /protect, etc. Se sugiere leer el manual de MimiKatz.

1.\mimikatz.exe "dpapi::cred /in:C:\Users\USER\AppData\Roaming\Microsoft\Protect\{CRED /masterkey:{key_extraida}"

Es posible que no podamos encontrar nada util.

Aplicación

Otras aplicaciones

Cuando somos administradores del sistema podemos utilizar esto para dumpear con mimikatz tambien absolutamente todas las credenciales almacenadas en DPAPI, se puede obtener como hemos dichos contraseñas WIFI (que son las mas comunes que se encuentran).

Otras Herramientas

Léase tambien otras herramientas que pueden automatizar este proceso, sin embargo es bueno entender como funciona todo por detrás igualmente:

  • Hekatomb - Steal all credentials on domain
  • DonPAPI - Dumping DPAPI credz remotely

Referencias

Tags: dpapi dumping, dpapi htb, dpapi exploit, dpapi vulnerabilite, exploit dpapi, dpapi dump, dpapi crendential, dpapi pentest, dpapi red team, dpapi windows extract, dpapi what is.

Raúl Zavaleta

Raúl Zavaleta

Entusiasta y eterno estudiante de ciberseguridad.