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)

查看仓库
29553年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Keepass-Dumper

这是我对 CVE-2023-32784 的概念验证实现。

我的版本是 @vdohney 的 PoC 的 Python 移植,并做了一些更改和额外功能。

变更

一项变更是使用转储文件中可找到的已知字符串,以便更准确地跳转至主密钥字符所在位置。这减少了假阳性字符,并大大缩短了扫描文件所需的时间。如果转储文件中未找到这些字符串,扫描将从文件开头开始。此选项默认启用,但若希望执行完整扫描,可使用 --full-scan。对于此类情况,我还添加了 --skip 标志以加快扫描速度。原理是通过偏移指针跳过接下来的 1000 个字节,因为这些位置通常只包含重复出现的相同字符。例如,若在转储文件中找到字符 ●e,其呈现方式如下:

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

使用 --skip 标志可以跳过这些重复字节以加速扫描,但在使用跳转点时并非必需。

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

替代文本

功能

此版本包含恢复功能,尝试找出密钥中任何剩余的未知字符。通过定位转储文件中找到的字符的不同可能组合来实现:若找到匹配项,则从转储文件中提取后续字符,直到遇到下一个非 ASCII 字符。

此功能在转储文件中存储了完整明文密码时有效(当用户通过停用星号隐藏功能来显示主密钥时,似乎会发生这种情况)。

可以使用 --recover 标志启用此行为。

替代文本

还可以使用 -o 指定输出文件,以导出找到的不同组合。如下图所示,即使在转储文件中找到的是另一个主密钥的字符,且明文密码并未存储在转储中,在组合列表中我们仍能获得最终组合中密钥的 23/24 个字符。

替代文本

在此例中,第一个条目实际上也显示了转储中第二个密钥 ducks 的 4/5 个字符,但它与另一个密钥的字符组合在一起,结果为 ucks|tMasterPassword123!。似乎有可能存在解决方法,但仍在开发中。

我还添加了通过 -w 提供字典文件在转储文件中搜索可能密码的功能。此标志将根据字典中的单词生成包含字符的字符串,然后在转储文件中搜索。还可以使用 -p 或 --padding 标志为创建的字符串指定填充。

示例:--padding 2 => ●●a | --padding 3 => ●●●a

替代文本

对于以上示例,密码以明文形式存储在转储中。因此可以匹配找到的字符串以提取额外字符。但是,如果明文密码未以明文形式存储在转储中,仍然可以提取剩余的字符:

替代文本

在这种情况下,即使未能在转储中找到明文匹配,仍然提取了所有额外字符。

参考资料

感谢 @vdohney 最初发现此漏洞。其项目链接在 此处

CVE 详情:CVE-2023-32784

下载工具