
PoC exploit per CVE-2012-2982 (Webmin RCE), per scopi educativi.
Questo repository contiene un Proof-of-Concept (PoC) per CVE-2012-2982, una vulnerabilità di esecuzione remota di comandi autenticata che interessa Webmin versioni 1.590 e precedenti. La vulnerabilità risiede nell'endpoint /file/show.cgi, dove un attaccante può eseguire comandi arbitrari iniettando caratteri speciali (come il simbolo pipe |) in una richiesta manipolata.
Questo PoC è inteso esclusivamente a fini educativi e di ricerca sulla sicurezza. Lo sfruttamento non autorizzato di sistemi senza permesso è illegale e non etico.
Webmin è un popolare strumento di amministrazione di sistema basato sul web per la gestione di sistemi Unix. Nelle versioni 1.590 e precedenti, esiste una falla di sicurezza nel modulo File Manager. Il problema deriva da una sanificazione inadeguata dell'input utente durante l'interazione con lo script /file/show.cgi. Iniettando metacaratteri di shell (|), un utente autenticato può eseguire comandi arbitrari sul sistema target con i privilegi del processo Webmin (spesso root).
Versioni affette: Webmin 1.590 e precedenti
Prerequisiti dell'attacco:
L'attaccante deve disporre di credenziali Webmin valide (un account utente con privilegi ridotti è sufficiente).
Il modulo File Manager deve essere accessibile.
Lo sfruttamento consente:
Esecuzione remota di codice (RCE)
Escalation dei privilegi (se Webmin è in esecuzione come root)
Compromissione del sistema
L'endpoint vulnerabile è:
http://<target_ip>:10000/file/show.cgi
L'attacco sfrutta una validazione dell'input impropria durante il passaggio di un percorso file, consentendo l'esecuzione di comandi shell iniettati tramite |.
Questo repository contiene uno script Python che automatizza:
Autenticazione: Accede a Webmin utilizzando le credenziali fornite.
Estrazione dell'ID di sessione: Recupera l'ID di sessione necessario per le richieste autenticate.
Esecuzione del payload: Invia una richiesta malevola per eseguire comandi arbitrari.
Percorso di esecuzione randomizzato: Utilizza un nome file generato casualmente per eludere il rilevamento.
Supporto per reverse shell: Genera un payload di reverse shell per connettersi alla macchina dell'attaccante.
Gestione degli errori: Gestisce correttamente i fallimenti delle richieste.
Design modulare: Facile da modificare per testare payload diversi.
Python 3
Libreria requests (pip install requests)
Un'istanza di Webmin (versione vulnerabile) per i test (utilizzare un ambiente di laboratorio controllato)
Utilizzo:
python3 exploit.py <target_IP>
Esempio:
python3 exploit.py 192.168.1.100
IP dell'attaccante (**lhost**): 10.21.48.124
Porta dell'attaccante (**lport**): 1937
Credenziali Webmin di destinazione:
Nome utente: user1
Password: 1user
Se ha successo, l'exploit stabilisce una connessione reverse shell verso la macchina dell'attaccante.
Prima di eseguire l'exploit, impostare un listener Netcat sulla macchina attaccante per ricevere la reverse shell:
nc -lvnp 1937
Una volta che l'exploit è eseguito con successo, si dovrebbe ricevere una connessione shell dalla macchina target.
Questo PoC è strettamente per ricerca sulla sicurezza e scopi educativi. Dovrebbe essere utilizzato solo in ambienti di test di penetrazione autorizzati. L'uso non autorizzato su sistemi di produzione è una violazione delle leggi sulla cybersecurity e può comportare conseguenze legali.
L'autore non è responsabile per qualsiasi uso improprio di questo exploit. Utilizzare questo PoC solamente per test di sicurezza legali e attività di hacking etico.