Vai al contenuto
Home » Come fare un vulnerability assessment con nmap: parte due

Come fare un vulnerability assessment con nmap: parte due

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!

Tag:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.