Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-32784-kdbxpassdmp — 从 Keepass 内存转储中检索主密码,并采用暴力破解提示。 | Kitploit
工具/GitHubGitHub/amperclock/cve-2023-32784-kdbxpassdmp
内存取证密码攻击漏洞分析漏洞利用取证分析数字取证
GitHubamperclock/cve-2023-32784-kdbxpassdmp

CVE-2023-32784-kdbxpassdmp

从 Keepass 内存转储中检索主密码,并采用暴力破解提示。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
3个月前尚未审核

keepass_dumper.py

vdohney/keepass-password-dumper 的 Python 移植版本 (CVE-2023-32784) — 原始 C# 实现及底层技术的全部功劳归于 vdohney。

该脚本扫描进程内存转储,查找 KeePass 2.x 的 SecureTextBoxEx 在用户输入主密码时遗留的渲染字符串,并恢复该密码除第一个字符外的所有字符。可选地,它随后使用 keepassxc-cli 针对 KDBX 文件暴力破解未知的第一个字符。

受影响版本

  • 存在漏洞: KeePass 2.53.1 及更早版本(Windows 和 Linux)。
  • 已修复: KeePass 2.54 及更高版本。
  • KeePassXC、KeePass 1.x 和 Strongbox 不受影响。

该缺陷位于自定义的 SecureTextBoxEx 控件中:对于每个输入的字符,.NET 会在托管内存中保留一个残留字符串,形式为 ●a、●●s、●●●s、……,从中可以恢复除第一个字符外的所有密码字符。

攻击前提与限制

  • 需要 KeePass 进程的内存工件:进程转储、页面/交换文件、休眠文件、内核崩溃转储或完整 RAM 捕获。无需在目标主机上执行代码。
  • 无论工作区处于锁定还是解锁状态均有效,甚至在 KeePass 进程退出后仍然有效(只要内存页面在某处仍然存在)。
  • 密码的第一个字符无法从泄漏中恢复。
  • 泄漏能可靠捕获可打印 ASCII 字符;非 ASCII 字符可靠性较低。
  • 同一会话中输入多个主密码可能会产生重叠的残留字符串并降低准确性。

缓解措施

如果您使用了 KeePass ≤ 2.53.1,请假定主密码已泄露:

  1. 将 KeePass 更新至 2.54 或更高版本。
  2. 更改主密码(并轮换数据库中在旧主密码使用期间输入的任何高价值机密)。
  3. 清除可能仍包含残留字符串的内存工件:
    • 删除崩溃转储(例如 C:\Windows\memory.dmp),
    • 禁用/清除休眠(Windows 上执行 powercfg /h off),
    • 删除或擦除页面文件/交换文件,
    • 覆盖空闲磁盘空间(例如 Windows 上执行 cipher /w:),以防止残留内容从先前分配的扇区中被提取,
    • 重启 — 或者对于高安全要求的场景,重新安装操作系统。

要求

  • Python 3.10+(仅使用标准库 — 无需第三方包)
  • $PATH 中的 keepassxc-cli(仅在使用 --kdbx 时需要)

安装

在 Debian / Ubuntu 上,如果您计划进行暴力破解,请安装 KeePassXC CLI:

root@kitploit:~
sudo apt install keepassxc

用法

root@kitploit:~
# 恢复候选字符并打印
python3 keepass_dumper.py memory.dmp

# 将生成的候选列表转储到文件
python3 keepass_dumper.py memory.dmp -p candidates.txt

# 恢复并针对 KDBX 暴力破解缺失的第一个字符
python3 keepass_dumper.py memory.dmp --kdbx db.kdbx

运行 python3 keepass_dumper.py --help 查看完整选项列表。

与原版的区别

  • 更严格的扫描过滤器(默认仅可打印 ASCII)以减少误报。
  • 优先级排序的字符集(字母 → 数字 → 常见标点 → 其余),以便优先尝试最可能的候选字符。
  • 基于 mmap 的转储读取器、单行进度条、更简洁的输出。
下载工具