Paolo Perego
Paolo Perego Specialista di sicurezza applicativa e certificato OSCE e OSCP, amo spaccare e ricostruire il codice in maniera sicura. Sono cintura nera di taekwon-do, marito e papà. Ranger Caotico Neutrale, scrivo su @codiceinsicuro.

Come fare un vulnerability assessment con nmap: parte due

Come fare un vulnerability assessment con nmap: parte due Photo by on Unsplash
654 parole - Lo leggerai in 3 minuti

Tre anni fa scrivevo di come nmap potesse essere utilizzato come strumento di vulnerability assessment utilizzando il plugin vulscan.

Ora vi presento il plugin nmap-vulners che usa le API del sito vulners.com per recuperare le vulnerabilità di un servizio, ovviamente basandosi sulle informazioni che nmap ha dedotto dai banner. Comportamento, questo, alla base dei vari tool di vulnerability assessment là fuori.

La bontà di un tool di questo genere è pari alla bontà della sua knowledge base e quella di vulners.com sembra essere molto completa.

Lo script è semplice, presi i dati da nmap fa delle query verso vulners.com, quindi non c’è un download della knowledge base, non c’è bisogno di aggiornare lo script per avere CVE nuovi, tutto funziona online.

Installazione

Per installare nmap-vulners, consiglio di creare una directory .nmap/scripts nella propria $HOME in modo da non “sporcare” gli script di sistema.

Andremo poi a scaricare lo script vulners.nse qui dentro.

$ cd $HOME
$ mkdir -p .nmap/scripts
$ cd .nmap/scripts
$ wget https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/vulners.nse

Una volta scaricato, lo script è di facile utilizzo. Dovremo ricordarci di usare il fingerprint del servizio, specificando l’opzione -sV di nmap e dovremo dire al tool di utilizzare lo script vulners.

Una cosa molto utile è quella di poter specificare una soglia di vulnerabilità basata sul CVSS. In questo modo possiamo abilitare o meno la visualizzazione di vulnerabilità aventi una certa severità.

Il tool all’opera

In questo piccolo video, ho installato lo script vulners.nse ed ho lanciato una scansione contro codiceinsicuro.it, prima senza parametri e poi scegliendo di visualizzare solo le issue con CVSS superiore a 7.

Avete notato che per il servizio sulla porta 80 e 443 non abbiamo avuto risultati? Il motivo è semplice, nmap ha visto che il servizio in ascolto è un nginx ma non ha capito quale versione. Per questo motivo non è riuscito a recuperare CVE riguardanti nginx.

Abbiamo in bella vista quindi il limite intrinseco di un vulnerability assessment. Un tool automatico che si basa sul banner, non può andare oltre questa informazione che, spesso, viene modificata da chi fa hardening di un particolare servizio.

Una nota. Modificare il banner non salva quindi da un attaccante che voglia bucare il nostro server, è solo un primo passo di configurazione sicura che deve essere seguito da una rigorosa politica di patch management per limitare il rischio di una compromissione.

Off by one

Serve quindi? E se serve, a chi può tornare utile?

Allora, fare vulnerability assessment è utile nel momento in cui, con un team interno, voglio implementare un processo di vulnerability management e quindi aiutare le persone che fanno operation a:

  • dare una priorità alle patch di security che devono essere installate;
  • fare virtual patching con la configurazione del demone o con sistemi terzi (firewall, web application firewall, …) quando non è possibile applicare una patch di sicurezza.

Fare un vulnerability assessment non è utile se è il vostro unico controllo di security. Se fate girare un tool X qualsiasi e vi tenete il report in PDF a prova dello stato di salute della vostra infrastruttura, state sottovalutando il problema.

Riguardate il post su Brainpan 1, un tool di vulnerability assessment si sarebbe fermato davanti a quelle due porte aperte ed avreste avuto un report ‘clean sheet’, come purtroppo ne ho visti tanti girare in passato.

Se volete il polso della situazione, dovete andare a fondo con un penetration test completo. Se volete un modo per indirizzare il vostro vulnerability management, allora anche uno script come vulners.nse può essere una prima e veloce soluzione.

Voi come gestite il vostro vulnerability management? Usate più tool combinandone i risultati? Avete creato una dashboard custom, magari usando un SIEM?

Scrivete nei commenti e condividete questo post se vi è piaciuto.

Enjoy it!

Vuoi aiutarmi a portare avanti il progetto Codice Insicuro con una donazione? Fantastico, allora non ti basta che premere il pulsante qui sotto.

Supporta il progetto

comments powered by Disqus
Codice Insicuro, blog di Cyber Security, sviluppo sicuro, code review e altro.   Non perdere neanche un post, iscriviti ora alla mailing list