Las API de protección de datos administran las contraseñas almacenadas de Credential Manager y están protegidas por las "claves maestras" de DPAPI:
Las claves DPAPI utilizadas para cifrar las claves RSA del usuario se almacenan
debajo del directorio% APPDATA% \ Microsoft \ Protect {SID}, donde {SID} es el directorio
Identificador de seguridad de ese usuario. La clave DPAPI se almacena en el mismo
Archivo como la clave maestra que protege las claves privadas de los usuarios. Eso
por lo general es de 64 bytes de datos aleatorios.
Esta presentación de Synactiv tiene una buena visión general de las claves maestras de DPAPI:
Estas llaves maestras se almacenan en blobs, cada una de las cuales contiene:
- un GUID
- una sal
- estructura de clave maestra (que contiene claves maestras)
... e incluye este gráfico, que muestra cómo han cambiado las protecciones con cada versión de Windows:
Segúnesapresentación,lasclavescompartidassepuedenextraercon mimikatz . Más allá de la plataforma Windows, el proyecto dpapick también admite el uso de la API fuera de línea y sin Windows, y tanto ese proyecto como John the Ripper incluye DPAPImk2john.py , un script para extraer los archivos de la llave maestra con el fin de romperlos. hashcat también admite el craqueo de estos archivos de clave maestra DPAPI v1 y v2 con ese script.
Por lo tanto, debería poder utilizar DPAmk2john.py para extraer las claves maestras y luego descifrarlas para acceder a las credenciales.