
CVE-2024-4577 es una vulnerabilidad de seguridad que afecta a servidores PHP en las siguientes versiones:
Esta vulnerabilidad es una falla de ejecución remota de código (RCE) que ocurre al usar PHP CGI (Interfaz de puerta de enlace común) en servidores Windows. El problema surge porque Windows interpreta mal ciertos caracteres debido al uso de la asignación de caracteres "Best Fit" en algunas configuraciones de idioma. En este caso, el módulo PHP CGI interpreta caracteres maliciosos como opciones de PHP, permitiendo a los atacantes ejecutar comandos maliciosos en el servidor.
Vector de ataque inicial:
Para explotar la vulnerabilidad, añade la siguiente cadena a la URL del sitio vulnerable:
?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input
Usa Burp Suite para interceptar esta solicitud y enviarla al Repeater.
Cambia el método de la solicitud: Convierte la solicitud interceptada al método POST y ejecuta un código PHP simple, por ejemplo:
<?php phpinfo();
Si la vulnerabilidad existe, la salida mostrará información relacionada con la versión de PHP.
Se pueden aplicar varios métodos dependiendo de los objetivos del atacante. Mi método preferido fue colocar una ejecución en el directorio de inicio de Windows usando Burp Suite. Convertí el script reverseshell.ps1 en un ejecutable (exe) y lo coloqué allí.
De manera similar, subí el archivo ransomware.ps1 al sistema y exfiltré documentos con éxito, dejando únicamente sus versiones cifradas.
Antes de iniciar el ataque, es necesario activar los registros 4688. Al analizar los registros de seguridad 4688 en mi máquina Windows, descubrí que el ataque se originó desde Apache bajo XAMPP. Cuando revisé los archivos Access.log, encontré una solicitud anormal que devolvía un código de estado 200, lo que me llevó a buscar esa URL en mi navegador. Identifiqué la vulnerabilidad y tomé precauciones, como actualizar la versión de PHP o deshabilitar la función PHP CGI.
Dado que el ransomware que creé no estaba ofuscado, mi código es visible en los registros de PowerShell. Esto muestra cómo cifré los datos. Para recuperar mis datos, ejecuto el archivo encoded.ps1.
Esta simulación resalta los riesgos potenciales asociados con CVE-2024-4577 y enfatiza la importancia de proteger las instalaciones de PHP. Mantener PHP actualizado y evitar configuraciones incorrectas de CGI puede reducir eficazmente este tipo de vulnerabilidades.