
A CVE-2024-4577 é uma vulnerabilidade de segurança que afeta servidores PHP nas seguintes versões:
Esta vulnerabilidade é uma falha de execução remota de código (RCE) que ocorre ao utilizar PHP CGI (Common Gateway Interface) em servidores Windows. O problema surge do fato de o Windows interpretar incorretamente determinados caracteres devido ao uso do mapeamento de caracteres "Best Fit" em algumas configurações de idioma. Neste caso, o módulo PHP CGI interpreta caracteres maliciosos como opções do PHP, permitindo que atacantes executem comandos maliciosos no servidor.
Vetor de Ataque Inicial:
Para explorar a vulnerabilidade, adicione a seguinte string ao URL do site vulnerável:
?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input
Utilize o Burp Suite para interceptar esta solicitação e enviá-la para o Repeater.
Alterar o Método da Solicitação: Converta a solicitação interceptada para o método POST e execute um código PHP simples, por exemplo:
<?php phpinfo();
Se a vulnerabilidade existir, a saída exibirá informações relacionadas à versão do PHP.
Vários métodos podem ser aplicados dependendo dos objetivos do atacante. Meu método preferido foi definir uma execução no diretório de inicialização do Windows usando o Burp Suite. Converti o script reverseshell.ps1 em um executável (exe) e o coloquei lá.
Da mesma forma, carreguei o arquivo ransomware.ps1 no sistema e exfiltrei com sucesso os documentos, deixando apenas suas versões criptografadas.
Antes de iniciar o ataque, é necessário ativar os logs 4688. Ao analisar os logs de segurança 4688 na minha máquina Windows, descobri que o ataque se originou do Apache sob o XAMPP. Quando verifiquei os arquivos Access.log, encontrei uma solicitação anormal que retornou um código de status 200, o que me levou a pesquisar esse URL no meu navegador. Identifiquei a vulnerabilidade e tomei precauções, como atualizar a versão do PHP ou desativar o recurso PHP CGI.
Como o ransomware que criei não foi ofuscado, meu código fica visível nos logs do PowerShell. Isso mostra como criptografei os dados. Para recuperar meus dados, executo o arquivo encoded.ps1.
Esta simulação destaca os riscos potenciais associados à CVE-2024-4577 e enfatiza a importância de proteger as instalações do PHP. Manter o PHP atualizado e evitar configurações incorretas do CGI pode reduzir efetivamente tais vulnerabilidades.