Privacy Policy

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 

Nmap: usare gli script NSE per analizzare un obiettivo

Impariamo ad usare gli Nmap Scripting Engine per aggiungere funzionalità ad Nmap.

Gli Nmap Scripting Engine (abbreviato NSE) sono degli script scritti nel linguaggio LUA che possono essere eseguiti da nmap durante una scansione. Nati inizialmente per offrire molte più informazioni di quanto un banner possa dare (versione del servizio in uso, rilevazione di vulnerabilità, ecc), sono oggi usati anche per l’exploiting delle vulnerabilità. Ogni script è ordinatamente inserito dentro una categoria di appartenenza:

Categoria

Descrizione

auth

Credenziali di autenticazione al sistema (o metodi per bypassarli). Contiene ad esempio x11-accessftp-anon o oracle-enum-users.

broadcast

Gli script in questa categoria trovano gli hosts non inclusi nei parametri di nmap che inviano messaggi in broadcast sulla rete locale.

brute

Sferrano attacchi bruteforce sui protocolli come ad esempio httporacle o snmp.

discovery

Cercano di reperire più informazioni possibili sulla rete sottoposta ad analisi come ad esempio messaggi SNMP o enumerazione delle cartelle SMB.

dos

Attacchi di tipo Denial of Service

exploit

Sfruttano attivamente una vulnerabilità

external

Gli script in questa categoria possono inviare informazioni a sistemi di terze parti, che non centrano nulla con la scansione che si sta eseguendo. Un esempio è l’uso di whois.

fuzzer

Il fuzzing è una metodologia per scoprire bug e vulnerabilità su un servizio. Questa categoria invia dati random/malformati al server all’interno dei pacchetti.

safe

Script che reperiscono informazioni in maniera sicura, senza causare grossi problemi alla stabilità del target come ad esempio ssh-hostkey e html-title. Consumano grande quantità di banda.

intrusive

Tutti gli script che non rientrano nella categoria “safe” perché potrebbero causare crash al sistema target.

malware

Test per controllare se il target è infetto da malware o backdoors.

version

Rivela la versione del servizio in uso come ad esempio skypev2-version o iax2-version

vuln

Riportano la presenza di vulnerabilità come su realvnc-auth-bypass o afp-path-vuln


Vediamo come richiamare gli NSE da riga di comando:

nmap -sC <target(s)>

Equivale a richiamare la categoria "default" che contiene scripts che non richiedono molto tempo per il completamento e forniscono un output molto dettagliato sui servizi che sono in esecuzione sul target.

con il parametro –script imponiamo ad nmap di eseguire un qualcosa di specifico che può essere un file in LUA, una categoria intera (vedi sopra per maggiori dettagli) o una cartella specifica (che contiene file in LUA). Per "espressione" intendo che possiamo anche specificare una regex o comunque usufruire del carattere speciale " * ". Quindi se volessimo verificare la presenza di vulnerabilità sul computer target dovremmo eseguire:

nmap –script vuln

così facendo richiamiamo tutti gli script all’interno della categoria "vuln". Alcuni NSE possono richiedere dei parametri aggiuntivi, come ad esempio una credenziale d’accesso o un gruppo di lavoro. Per specificare argomenti si deve usare il parametro "–script-args"

nmap –script snmp* --script-args='snmpcommunity=admin' <target(s)>

Abbiamo passato il parametro "snmpcommunity=admin" a tutti gli NSE che si occupano del protocollo SNMP.

 nmap -sC –scrpt-args='user=administrator,pass=password123' <target(s)>

Tutti gli script nella categoria default utilizzeranno le credenziali "admin:password123" per provare ad accedere ai servizi sul target.

Se si specificano delle credenziali è necessario che queste siano valide, così da reperire maggiori informazioni.

 Un altro parametro che ci sarà molto utile è "–script-help":

nmap –script-help "afp-* and discovery"

L’ultimo parametro che andiamo ad analizzare è "–script-updatedb":

nmap –script-updatedb

Cominciamo con qualche esempio pratico. Abbiamo un server Samba (SMB) di un NAS che permette la condivisione di file e cartelle a tutta la rete LAN.

Cerchiamo di ricavarne più informazioni possibili:

nmap –script-help "smb* and discovery"

Così facendo richiamo le descrizioni degli NSE che si occupano di SMB, ma solo quelli categorizzati come "discovery"

(per non dare troppo fastidio con attacchi bruteforce o flooding). Una volta analizzate le descrizioni degli NSE, passiamo all’esecuzione


Se vogliamo poi portare ad un livello più alto la nostra scansione alla ricerca di vulnerabilità conosciute dobbiamo utilizzare lo script chiamato “smb-check-vulns”:

nmap –script smb-check-vulns –script-args=unsafe=1 <target(s)>

Il parametro “unsafe=1” forza l’esecuzione di operazioni che potrebbero causare crash o BSOD.

Un altro servizio molto comune che andremo ad analizzare è il server web.

nmap –script "http* and discovery" <target(s)>

Per vedere tutti gli script per HTTP e che appartengono solo alla categoria “discovery”. Una volta analizzate le descrizioni degli NSE, passiamo all’esecuzione:

nmap --script "http* and vuln" –script-args=unsafe=1 <target(s)>

Questa scansione richiederà sicuramente molto più tempo perché controllerà varie vulnerabilità su diversi CMS.


Luca
C e r t i f i c a z i o n i