
Script de exploit em Python para CVE-2023-32315, uma vulnerabilidade de path traversal no servidor XMPP Openfire, permitindo acesso não autenticado ao console de administração. Inclui configuração Docker e webshell baseado em plugin para testes de segurança autorizados.
⚠️ Apenas para fins educacionais e de pesquisa de segurança autorizada
Muito grato ao autor original do PoC phith0n e K3ysTr0K3R
O Openfire é um servidor XMPP licenciado sob a Licença Apache de Código Aberto. A console administrativa do Openfire, uma aplicação baseada na web, foi considerada vulnerável a um ataque de travessia de caminho (path traversal) através do ambiente de configuração. Isso permitia que um usuário não autenticado usasse o Ambiente de Configuração do Openfire não autenticado em um ambiente Openfire já configurado para acessar páginas restritas da Console de Administração do Openfire reservadas para usuários administrativos. Esta vulnerabilidade afeta todas as versões do Openfire lançadas desde abril de 2015, a partir da versão 3.10.0. O problema foi corrigido nas versões 4.7.5 e 4.6.8 do Openfire, e melhorias adicionais serão incluídas na primeira versão ainda a ser lançada do branch 4.8 (que deve ser a versão 4.8.0). Os usuários são aconselhados a atualizar. Se uma atualização do Openfire não estiver disponível para uma versão específica, ou não puder ser realizada rapidamente, os usuários podem consultar o aviso do GitHub vinculado (GHSA-gw42-f939-fhvm) para obter conselhos de mitigação.
Primeiro, clone o repositório
git clone https://github.com/asepsaepdin/CVE-2023-32315.git
Mude de diretório
cd CVE-2023-32315
Inicie o container
docker compose up
Execute o script Python CVE-2023-32315.py para explorar o host http://127.0.0.1:9090
python3 CVE-2023-32315.py -u http://localhost:9090
Em seguida, faça login na console de administração com esta conta, e você verá que hugme já é um administrador.
Vá para a aba plugin > fazer upload do plugin openfire-management-tool-plugin.jar
Vá para a aba servidor > configurações do servidor > Ferramenta de Gerenciamento
Acesse o webshell com a senha "123"
Vá para 'system command' e utilize como se fosse a linha de comando, use apenas um comando por vez