
DPAPISnoop
Инструмент на языке C#, извлекающий поддающиеся взлому хеши DPAPI из пользовательских MasterKeys и файлов CREDHIST, расположенных в локальных папках и на удаленных SMB-ресурсах.
Блог: «Старые пароли умирают нелегко»: злоупотребление CREDHIST для восстановления учетных данных в автономном режиме (https://www.lrqa.com/en/cyber-labs/cracking-credhist-dpapi/)
В ходе операций «красной команды» API защиты данных (DPAPI) часто встречается при восстановлении данных браузера, извлечении сохраненных учетных данных или получении и расшифровке мастер-ключей пользователей. При повторном изучении внутреннего устройства DPAPI наше внимание привлек ещё один артефакт: CREDHIST.
Когда пользователь меняет пароль, старые блоки данных DPAPI всё равно необходимо расшифровать, поэтому Windows ведёт цепочку истории паролей, которая позволяет восстановить предыдущие данные паролей DPAPI.
После некоторого изучения CREDHIST мы обновили DPAPISnoop, добавив поддержку извлечения записей CREDHIST в виде хеш-строк, поддающихся взлому в автономном режиме, в дополнение к существующей функциональности извлечения хешей мастер-ключей. Это изменение открыло интересную возможность: ранее восстановленные пароли теперь можно использовать для выявления закономерностей в выборе паролей пользователем на протяжении времени.