Windows Password Recovery - анализ объектов DPAPI
DPAPI объект (DPAPI blob) - это прозрачная структура данных, содержащая зашифрованные данные приложения. Многие программы и подсистемы Windows хранят пароли, секреты и приватные данные в DPAPI объектах. Для создания файлов с DPAPI объектами (и последующего анализа), необходимо воспользоваться нашей утилитой поиска DPAPI структур.
Указываем путь к объекту DPAPI
Приступаем к анализу данных
DPAPI объект - это двоичная структура данных, состоящая из следующих друг за другом атрибутов:
- dwVersion - версия структуры данных. Текущая версия данных - 1.
- guidDefaultProvider - провайдер для шифрования данных, используется в вызовах к функциям шифрования, обеспечивает совместимость версий и организовывает простые криптологические примитивы. Например, в качестве блочного шифра можно задавать Blowfish или RC5. В настоящее время в Windows по умолчанию установлен следующий крипто-провайдер: df9d8cd0-1501-11d1-8c7a-00c04fc297eb, соответствующий ключу реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Protect\Providers\df9d8cd0-1501-11d1-8c7a-00c04fc297eb.
- guidMasterKey - GUID Мастер Ключа, с помощью которого зашифрованы данные. Для того, чтобы расшифровать данные в DPAPI объекте, в первую очередь необходимо расшифровать Mастер Ключ, имя которого задано в двоичной структуре guidMasterKey. К объекту DPAPI может быть прикреплен только один Mастер Ключ.
- dwFlags - различные флаги. Например установленный бит 3 является индикатором того, что расшифровку данных необходимо производить под учетной записью SYSTEM. Бит (dwFlags&0x20000000) установлен всегда.
- szDataDescription - описатель данных, который задается опциональным параметром LPCWSTR szDataDescr в функции CryptProtectData.
- algCrypt - блочный алгоритм шифрования данных. По умолчанию, Windows 7 использует алгоритм AES 256 (что соответствует 0х6610 в шестнадцатеричной или 26128 в десятичной нотации), Windows XP - 3DES, Windows 2000 - RC4.
- dwCryptAlgLen - длина ключа шифрования в алгоритме шифрования.
- pHMACKey - HMAC ключ 1.
- pSalt - соль (опциональный параметр).
- algHash - алгоритм хэширования. По умолчанию, Windows 7 использует алгоритм SHA 512, Windows XP и Windows 2000 - SHA1.
- dwHashAlgLen - длина хэша в алгоритме хэширования.
- pHMACKey2 - HMAC ключ 2.
- pData - сами зашифрованные данные.
- pSignHash - цифровая подпись для проверки целостности данных.