Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
keepass_dump — Дампер KeePass 2.X (CVE-2023-32784) | Kitploit
Инструменты/GitHubGitHub/z-jxy/keepass_dump
Взлом паролейКриминалистика памятиАнализ уязвимостейЭксплуатацияФорензикаЦифровая криминалистика
GitHubz-jxy/keepass_dump

keepass_dump

Дампер KeePass 2.X (CVE-2023-32784)

Репозиторий
2952 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Keepass-Dumper

Это моя PoC-реализация для CVE-2023-32784

Моя версия — это порт PoC от @vdohney на Python с несколькими изменениями и дополнительными функциями.

Изменения

Одно из изменений — использование известных строк, которые можно найти в файле дампа, чтобы точнее переходить к местоположению символов мастер-пароля. Это приводит к меньшему количеству ложноположительных символов и значительно сокращает время сканирования файла. Если строки не найдены в файле дампа, сканирование начинается с начала. Эта опция включена по умолчанию, но если вы хотите вместо этого выполнить полное сканирование, вы можете использовать --full-scan. Для таких случаев я также добавил флаг --skip, помогающий ускорить сканирование. Это делается путём смещения указателя, чтобы перепрыгивать через следующие 1000 байт, так как они обычно содержат один и тот же символ, повторяющийся несколько раз. Например, если в файле дампа найден символ ●e, это будет выглядеть следующим образом:

root@kitploit:~
●e
●e
●e
●e
●e
●e
●e
●e
●e
●e
●●c

С помощью флага --skip можно перепрыгивать через эти повторяющиеся байты, чтобы ускорить сканирование, хотя это необязательно при использовании точек перехода.

root@kitploit:~
[*] 15567777 | Found: ●e
[*] 15568797 | Found: ●e
[*] 15570355 | Found: ●●c
[*] 15571375 | Found: ●●c
[*] 15572925 | Found: ●●●r
[*] 15573973 | Found: ●●●r

альтернативный текст

Возможности

Эта версия включает функцию восстановления, которая пытается найти любые оставшиеся неизвестные символы ключа. Это делается путём поиска различных возможных комбинаций символов, найденных внутри дампа; если совпадение найдено, остальные символы извлекаются из дампа до тех пор, пока не встретится следующий не-ASCII символ.

Это работает, если полный пароль в открытом виде хранится в файле дампа (похоже, это происходит, когда пользователь отображает мастер-пароль, отключив скрытие с помощью звёздочек).

Вы можете включить это поведение с помощью флага --recover.

альтернативный текст

Кроме того, вы можете указать выходной файл с помощью -o, чтобы экспортировать найденные комбинации. Здесь видно, что даже в тех случаях, когда были найдены символы другого мастер-пароля, а пароль в открытом виде не хранится в дампе, в списке комбинаций мы всё равно можем получить 23/24 символа ключа в финальной комбинации, показанной ниже.

альтернативный текст

В этом случае первая запись также показывает 4/5 символов для второго ключа, ducks, который тоже находился в дампе, однако он был объединён с символами другого ключа, что дало ucks|tMasterPassword123!. Похоже, для этого потенциально может существовать обходной путь, но он ещё в стадии разработки (WIP).

Я также добавил возможность поиска потенциальных паролей внутри файла дампа с помощью передачи словаря через -w. Этот флаг генерирует строки, содержащие символы из слов, найденных в списке, для поиска в файле дампа. Вы также можете указать дополнение для создаваемых строк с помощью флагов -p или --padding.

Пример: --padding 2 => ●●a | --padding 3 => ●●●a

альтернативный текст

В приведённом выше примере пароль хранился в дампе в открытом виде, поэтому можно было сопоставить найденную строку и извлечь дополнительные символы. Однако в случае, если пароль в открытом виде не хранится в дампе, всё равно возможно извлечь оставшиеся символы:

альтернативный текст

В этом случае, даже несмотря на то, что не удалось найти совпадение в открытом виде в дампе, все дополнительные символы всё равно были извлечены.

Ссылки

Благодарность @vdohney, который первоначально обнаружил эту уязвимость. Ссылка на его проект находится здесь

Детали CVE: CVE-2023-32784

Скачать инструмент