Home > Анализ Мастер Ключей
Анализ Мастер Ключей DPAPI
12.04.2024
Office password recovery tools
Resetting VBA passwords
01.03.2024
New blog post
Dumping the history of users' IP addresses in Windows
20.02.2024
Reset Windows Password v14.1
IP addresses history viewer, fast disk search, local security editor and some more
02.01.2024
Wireless Password Recovery v6.9.0
A revision of the GPU health monitor along with some minor updates

Articles and video

You may find it helpful to read our articles on Windows security and password recovery examples. Video section contains a number of movies about our programs in action

Windows Password Recovery - анализ Мастер Ключей DPAPI



Мастер Ключ представляет собой 64 байта данных, которые используются в качестве первичного ключа при расшифровке DPAPI объекта. Мастер Ключ пользователя зашифрован при помощи пароля на вход пользователя.
 

Задаем путь к файлу с Мастер Ключом и прописываем SID пользователя

Выбор Мастер Ключа

Все Мастер Ключи пользователя находятся в папке %APPDATA%\Microsoft\Protect\%SID%. Например,
E:\ Users\ John\ AppData\ Roaming\ Microsoft\ Protect\ S-1-5-21-2897849034-3956381361-16091305341-1001\ 23ab9bc1-9397-4cb1-ab74-7166ed6a8713
Мастер Ключи системы складируются в каталоге %SYSTEMDIR%\Microsoft\Protect.
SID пользователя программа, как правило, вычисляет автоматически из указанного пути.


 

Производим анализ Мастер Ключа

Анализ Мастер Ключа

Файл с Мастер Ключом представляет собой двоичную структуру, состоящую из служебного заголовка и четырех слотов, а именно:
непосредственно самого Мастер Ключа пользователя, локального ключа шифрования (для расшифровки резервных ключей), локального резервного ключа (для Win2K) или GUID для файла CREDHIST (Windows XP и выше) и резервного ключа домена.

Список со структурой Мастер Ключа состоит из имени атрибута (т.е. двоичного поля) и соответствующего ему значения. Каждая секция выделена своим цветом:

            - поле с атрибутами залоговка
            - слот с атрибутами Мастер Ключа пользователя
            - слот с атрибутами Локального Ключа шифрования
            - слот с атрибутами Локального Резервного Ключа или GUID файла CREDHIST
            - слот с атрибутами Резервного Ключа Домена

Теперь немного поподробнее.
 

Атрибуты заголовка
dwVersion - версия файла с Мастер Ключом.
szGuid - текстовый идентификатор (GUID) мастер ключа. Как правило, он совпадает с именем файла.
dwPolicy - различные флаги. Например, если установлен бит 3, то при расшифровке ключа используется SHA1 хэш пароля пользователя, иначе MD4. Так в Windows 2000 этот бит сброшен. Установленный бит 2 говорит о том, что для Мастер Ключа требуется резервное копирование.
 
Атрибуты Мастер Ключа пользователя
dwUserKeySize - длина текущего слота.
dwVersion - версия структуры данных. В версии 1 используется только атрибут с солью.
pSalt - соль, т.е. случайные 16 байт данных, задействованные в расшифровке Мастер Ключа и предотвращающие взлом данных при помощи атаки по радужным таблицам.
dwPBKDF2IterationCount - количество итераций в функции генерации ключа шифрования PBKDF2.
HMACAlgId - идентификатор алгоритма хэширования.
CryptAlgId - идентификатор алгоритма шифрования.
pKey - зашифрованный Мастер Ключ пользователя.
 
Атрибуты Локального Ключа шифрования
dwLocalEncKeySize - длина текущего слота.
dwVersion - версия структуры данных. В Win2K используется только атрибут с солью.
pSalt - соль.
dwPBKDF2IterationCount - количество итераций в функции генерации ключа шифрования PBKDF2.
HMACAlgId - идентификатор алгоритма хэширования.
CryptAlgId - идентификатор алгоритма шифрования.
pKey - зашифрованный Локальный Ключ шифрования, который используется для расшифровки Локального Резервного Ключа в Win2K.
 
Атрибуты Локального Резервного Ключа (Windows 2000)
dwLocalKeySize - длина текущего слота.
dwVersion - версия структуры данных.
pSalt - соль.
pKey - зашифрованный Локальный Резервный Ключ.
 
Атрибуты GUID для файла CREDHIST (Windows XP и выше)
dwLocalKeySize - длина текущего слота.
dwVersion - версия структуры данных.
guidCredHist - двоичный идентификатор файла CREDHIST.
 
Атрибуты Резервного Ключа Домена
dwDomainKeySize - длина текущего слота.
dwVersion - версия структуры данных.
pSalt - соль, т.е. случайные 16 байт данных, задействованные в расшифровке Мастер Ключа и предотвращающие взлом данных при помощи атаки по радужным таблицам.
dwPBKDF2IterationCount - количество итераций в функции генерации ключа шифрования PBKDF2.
HMACAlgId - идентификатор алгоритма хэширования.
CryptAlgId -   алгоритм шифрования.
pKey - зашифрованный Резервный Ключ Домена. Для его расшифровки требуется ключ шифрования домена, хранящийся в базе данных Active Directory.
 

Для расшифровки Мастер Ключа пользователя требуется знать его пароль на вход или PIN код. Из контекстного меню анализатора можно проверить пароль для данного Мастер Ключа и даже попробовать подобрать его с помощью словаря. Однако, не стоит обольщаться слишком сильно. Если в Windows 2000 скорость подбора исчисляется десятками или даже сотнями тысяч паролей в секунду, то в Windows 7 счет идет уже на единицы. Смотрите таблицу ниже (скорость измерена для одном ядре процессора Intel Q8400 2.66GHz).

Операционная система Алгоритм шифрования Алгоритм хэширования Кол-во итераций в PKCS#5 PBKDF2 Скорость перебора (п/с)
Windows 2000 RC4 SHA1 1 95000
Windows XP 3DES SHA1 4000 76
Windows Vista 3DES SHA1 24000 12
Windows 7 AES256 SHA512 5600 10
Windows 10-11 AES256 SHA512 8000 7