
Simulazione educativa dello sfruttamento di CVE-2024-4577 PHP CGI RCE su Windows, inclusi sviluppo del payload, distribuzione di ransomware e analisi forense dei log per la formazione sulla sicurezza.
CVE-2024-4577 è una vulnerabilità di sicurezza che interessa i server PHP nelle seguenti versioni:
Questa vulnerabilità è un difetto di esecuzione di codice da remoto (RCE) che si verifica quando si utilizza PHP CGI (Common Gateway Interface) su server Windows. Il problema nasce dall'errata interpretazione di alcuni caratteri da parte di Windows a causa dell'uso della mappatura dei caratteri "Best Fit" in alcune impostazioni linguistiche. In questo caso, il modulo PHP CGI interpreta caratteri malevoli come opzioni PHP, consentendo agli attaccanti di eseguire comandi malevoli sul server.
Vettore d'attacco iniziale:
Per sfruttare la vulnerabilità, aggiungere la seguente stringa all'URL del sito vulnerabile:
?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input
Utilizzare Burp Suite per intercettare questa richiesta e inviarla al Repeater.
Cambiare il metodo di richiesta: Convertire la richiesta intercettata in un metodo POST ed eseguire un semplice codice PHP, ad esempio:
<?php phpinfo();
Se la vulnerabilità esiste, l'output mostrerà informazioni relative alla versione di PHP.
Vari metodi possono essere applicati a seconda degli obiettivi dell'attaccante. Il mio metodo preferito è stato definire un'esecuzione nella directory di avvio di Windows usando Burp Suite. Ho convertito lo script reverseshell.ps1 in un eseguibile (exe) e lo ho posizionato lì.
Allo stesso modo, ho caricato il file ransomware.ps1 sul sistema e ho esfiltrato con successo i documenti, lasciando solo le loro versioni crittate.
Prima di iniziare l'attacco, è necessario attivare i log 4688. Analizzando i log di sicurezza 4688 sulla mia macchina Windows, ho scoperto che l'attacco proveniva da Apache sotto XAMPP. Quando ho controllato i file Access.log, ho incontrato una richiesta anomala che restituiva un codice di stato 200, spingendomi a cercare questo URL nel mio browser. Ho identificato la vulnerabilità e ho preso precauzioni, come aggiornare la versione di PHP o disabilitare la funzionalità PHP CGI.
Poiché il ransomware che ho creato non era offuscato, il mio codice è visibile nei log di PowerShell. Questo mostra come ho crittografato i dati. Per recuperare i miei dati, eseguo il file encoded.ps1.
Questa simulazione evidenzia i potenziali rischi associati a CVE-2024-4577 e sottolinea l'importanza di proteggere le installazioni PHP. Mantenere PHP aggiornato e prevenire configurazioni errate delle impostazioni CGI può ridurre efficacemente tali vulnerabilità.