• Contatto
  • Note Legali
  • Privacy
  • FAQs
  • Downloads
  • Collabora
  • Supporta
  • Nmap: scanner di rete e non solo

    Scritto da Erriko in Hacking il 28 dicembre 2008

    Quando si parla di sicurezza informatica è certamente in primo piano la questione degli attacchi da remoto. Poichè oggi quasi nessun sistema è isolato dal resto del mondo è conseguente pensare che non si è mai al sicuro e specialmente se si ha a che fare con un sistema importante è necessario prestare la massima attenzione.

    Come spesso accade nel mondo della sicurezza, sia per chi attacca che per chi difende i sistemi, le esigenze sono analoghe, per cui anche l’amministratore di rete che deve difendersi ha bisogno di scoprire le sue falle (molto di più dell’attaccante direi…).

    Potremmo pensare che dovrebbe conoscerle, ma non è così. I programmi che utilizza non sono stati scritti da lui e comunque anche in quel caso difficilmente sarebbe conscio dei bug lasciati.

    Vi è una cosa sola da fare: la pecora deve travestirsi da lupo e tentare un’attacco verso il proprio sistema con tutto l’impegno possibile (proprio come farebbe un malintenzionato d’altronde) e testare obbiettivamente la propria resistenza.

    Il primo passo da compiere è sicuramente utilizzare uno scanner di rete come nmap (o la sua versione con interfaccia grafica zenmap) per renderci conto del tipo di sistema con il quale abbiamo a che fare ed i servizi raggiungibili su di esso.

    nmap, scanner di rete

    Installazione di nmap

    Possiamo scaricare i files necessari da insecure.org.
    Si possono scegliere i pacchetti .tar.bz2 da compilare oppure i binari precompilati e gestiti tramite RPM. Esiste anche la versione per Windows.

    Se abbiamo un sistema basato su Debian come Ubuntu basta cercare nmap nel gestore dei pacchetti o digitare sul terminale: sudo apt-get

    install nmap

    Per i sistemi che supportano i pacchetti rpm basta scaricare l’rpm e digitare sul terminale

    rpm -ivh nmap-[...].rpm nmap-frontend[...].rpm

    (al posto dei [...] ci sarà la versione del pacchetto).

    Su windows basta lanciare l’installer, mentre con tutti gli altri sistemi linux è possibile compilare direttamente dai sorgenti digitando sul terminale in sequenza:

    cd
    tar -xjf nmap-.tar.bz2
    cd nmap-
    ./configure
    make
    su
    make install


    Utilizzo da terminale

    Questo è il modo veloce di usare Nmap, oltre che il più accurato.
    Apparentemente sembra più difficile rispetto all’interfaccia grafica. In realtà se teniamo a vista un elenco delle opzioni possibili è solo una questione di scrivere.
    Tra l’altro la versione con interfaccia grafica non ha tutte le funzioni di quella “classica”.

    Per utilizzare a pieno nmap è necessario aprire il terminale come root, digitando su oppure sudo su o ancora sudo -s (dipende dal sistema che sitamo utilizzando).

    La sintassi del comando da dare ad nmap è il seguente:

    nmap -[tipi di scan] -[opzioni] <host o segmenti di rete>

    Per esempio se voglio fare uno scanning della mia rete domestica con indirizzo ip 192.168.1.x, classica subnetmask 255.255.255.0, pingando gli IP con pacchetti icmp echo (-PI) e analizzando le porte tramite connessioni complete (-sT) darò:

    nmap -sT -PI 192.168.1.0/24

    In questo caso nmap restituirà qualcosa del genere:

    Starting nmap 4.75 ( http://www.insecure.org/nmap/ ) at 2008-08-10 21:29 CEST
    Host 192.168.1.0 seems to be a subnet broadcast address (returned 2 extra pings).

    Così nmap ci ha detto che ha individuato la sezione di rete e che ci sono due host attivi.

    A questo punto nmap analizzerà entrambi gli host singloramente, restituendo per ognuno qualcosa del tipo:

    Interesting ports on vattelapesca (192.68.1.7):
    
    (The 1652 ports scanned but not shown below are in state: closed)
    
    PORT STATE SERVICE
    
    22/tcp open ssh
    80/tcp open http
    111/tcp open rpcbind
    443/tcp open https
    3306/tcp open mysql
    6000/tcp open X11
    6346/tcp open gnutella
    10000/tcp open snet-sensor-mgmt

    Così possiamo vedere le porte aperte su questo sistema e a che tipo di servizio sono associate. Ricordiamoci però che i servizi associati ufficialmente alle porte non sono sempre veritieri (posso ad esempio settare emule sulla porta 1755, normalmente utilizzata per windows media player).

    Ovviamente è possibile avere molte più informazioni da Nmap, utilizzando divere opzioni nella riga, qui cito le più importanti che ho reperito in ordine e con una breve descrizione dall’ottimo portale www.html.it:

    Tipi di scan

    -sT

    CONNECT SCAN. Tramite questo flag, per determinare lo stato delle porte di un host verrà utilizzata una connessione completa TCP. Se la stessa avviene vorrà dire che la porta è aperta. Ha lo svantaggio che verrà immediatamente individuato da qualunque software di analisi dei log o Introduction Detection System.

    -sS

    SYN SCAN. In questa maniera lo scan avverrà tramite una richiesta di connessione, se la porta da controllare è aperta risponderà e Nmap chiuderà la connessione, altrimenti se la porta è chiusa ad Nmap giungerà un pacchetto che chiuderà la connessione immediatamente. In altre parole, pur ricevendo tutte le informazioni che servono, la connessione non verrà mai completata per cui molto raramente comparirà nei file di log, ma verrà registrata dai migliori I.D.S.. Questo tipo di scan è utilizzabile solo da root.

    -sF -sX -sN

    FIN SCAN, XMAS SCAN, NULL SCAN. Questi tipi di scan sono particolarmente difficili da rilevare da parte dei vari sistemi di logging o I.D.S., inoltre penetrano facilmente i firewall, per cui sono molto efficaci, ma possono portare a risultati dubbi nei confronti di alcuni sistemi operativi che non rispettano gli standard RFC.

    -sP

    PING SWEEP. Questo non è un vero e proprio scan, ma serve solo per scoprire quali host sono attivi su un segmento di rete. Quindi usarlo solo se non si vuole effettuare uno scan delle porte.

    -sU

    UDP SCAN. Questo tipo di analisi è molto raffinato e serve ad individuare delle porte sulle quali opera un servizio UDP che ci interessa. Ricordiamo che UDP è un protocollo che non stabilisce una connessione (ConnectionLess) , per cui non risponde alle richieste in maniera automatica, ma solo se la richiesta è significativa per l’applicazione che è in ascolto. Con questo scan le porte aperte non risponderanno e le chiuse manderanno un pacchetto “icmp port unreachable”. Lo scan UDP non è utile solo all’attaccante, ma soprattutto al difensore (bisogna ricordarsi di effettuarlo sempre dall’esterno), in quanto alcuni trojan, tipo “back orifice”, si mettono in ascolto su una porta arbitraria UDP, e per scoprirlo potrebbero non essere sufficienti strumenti quali “netstat”, essendo possibile che siano stati alterati dall’attaccante che ha installato il trojan. Si tenga però presente che questo scan è molto lento.

    -sA

    ACK SCAN: Anche questo è un tipo di scan molto raffinato e utile. Consente di stabilire se il firewall interposto è di tipo “statefull” o è un semplice filtro di pacchetti TCP con il flag SYN attivo. Con questo tipo di scan è possibile analizzare reti protette da semplici filtri, cosa che non è possibile con gli scan di tipo -sT e -sS.

    -sW

    WINDOW SCAN: Questo tipo di scan è simile al precedente, e oltre a ciò è in alcuni casi in grado di rilevare delle porte aperte anche se filtrate da un firewall statefull, a causa di un’anomalia dello stack TCP presente su parecchi sistemi operativi.

    -sR

    RPC SCAN: Funziona in combinazione con gli altri tipi di scan e opera sulle porte trovate aperte cercando di stabilire se vi è in ascolto un servizio RPC (Remote Control Protocol) e la versione. Siccome usa un flooding (invio massiccio e continuo di pacchetti) può creare problemi alla rete e all’host bersaglio.

    -sV

    VERSION SCAN: Tramite questo scan è possibile determinare il nome e la versione degli applicativi che sono in ascolto su una porta. Viene usato un database di “impronte digitali”.

    Lista completa delle opzioni

    Le seguenti opzioni sono molto importanti nell’uso di Nmap:

    -P0

    Così diciamo a Nmap di non pingare l’host bersaglio, è utile quando siamo sicuri che è in linea: ci fa risparmiare tempo.

    -PT

    Qui possiamo richiedere che il bersaglio venga pingato, invece che con pacchetti ICMP echo-request, tramite pacchetti TCP con flag ACK attivo. Ciò consente di superare i firewall che respingono i primi.

    Se non si indica alcuna porta il ping avviene sulla 80 (http) che è quella di norma aperta.

    -O

    Tramite questa opzione è possibile cercare di identificare il sistema operativo dell’host bersaglio. È da usare con l’opzione -v (verbose). Sintassi: > nmap -sS -O -v

    -f

    Se si setta questa opzione i scan di tipo SYN -sS, FIN -sF, XMAS -sX, o NULL -sN vengono effettuati con frammenti di pacchetti, cioè con header non completi, questo molte volte confonde e rende inefficaci firewall e IDS, ma… ATTENZIONE… in alcuni casi può provocare il crash dell’applicazione in ascolto o del sistema.

    -v

    Si tratta del “verbose mode”, che consente di avere più informazioni del normale.

    -vv

    Come sopra, ma con maggiore quantità di informazioni.

    -d e -dd

    Modalità di debug, da usare solo se si hanno problemi e si sta cercando di risolverli.

    -oN

    Consente di indicare un file in cui salvare l’output in forma “human readable”, cioè così come lo vedremmo sulla console. Sintassi: > nmap -sS

    -v -oN -oX

    In questo caso l’output viene salvato nel file indicato in formato XML, ciò ne consente una grandissima esportabilità e lavorabilità, anche allo scopo di inserire i dati in un eventuale database. Sintassi: > nmap -sS -v -oX

    -oG

    Con questa opzione i report vengono salvati in formato cosidetto “grepable”, cioè facilmente utilizzabile dal programma grep, che, in ambiente UNIX, serve per trovare i file che contengono certe stringhe. In pratica non fa altro che mettere tutto l’output su una sola riga. Sintassi: > nmap -sS -v -oG

    -oA

    Con questa opzione Nmap produce tre files di output aventi estensione rispettivamente .nmap, .gnmap, .xml che corrispondono a tre file ottenibili effettuando tre volte la stessa scansione con le opzioni -oN -oX -oG. Sintassi: > nmap -sS -v -oA

    –resume

    Questa opzione consente di proseguire uno scan iniziato ed interrotto, ma è utilizzabile solo se si è stava effettuando lo scan con l’opzione -oN o -oG. Sintassi: > nmap -sS -v –resume

    –append_output

    In questo modo non sovrascriveremo un file precedente, ma aggiungeremo i report alla fine. Sintassi: > nmap -sS -v –append_output

    -iL

    Questo consente di utilizzare un file che contiene una lista di host da controllare, i vari host devono essere separati o con uno spazio, una tabulazione o un ritorno a capo. Sintassi: > nmap -sS -v -iL

    -p

    Tramite questa opzione si può indicare un intervallo di porte da analizzare. l’elenco deve essere separato da virgole.

    -T

    Tramite questa opzione si settano una serie di parametri temporali che influscono moltissimo sulla velocità di esecuzione, l’occupazione di banda di rete e la segretezza dello scan. Nmap ha la capacità di autoregolarsi in base alle caratteristiche della rete e alle risposte degli host, ma a volte si hanno esigenze particolari su cui si può intervenire come segue.

    -T0 o -T Paranoid

    È la modalità più prudente, che ha ottime possibilità di sfuggire agli IDS e simili. Effettua lo scan in maniera seriale e non parallela, cioè analizza gli host e le porte uno dopo l’altro e non contemporaneamente. Inoltre interpone almeno 5 minuti tra un pacchetto ed un altro.

    -T1 o -T Sneaky

    Come sopra tranne che interpone 15 secondi tra un pacchetto ed un altro.

    -T2 o -T Polite

    Come sopra tranne che interpone 0,4 secondi tra un pacchetto ed un altro.

    -T3 o -T Normal

    Come dice il nome è la modalità di default. Effettua lo scan parallelo e alla velocità resa possibile dalle caratteristiche della rete, rallentando se avverte che si possono creare sovraccarichi o perdite di dati.

    -T4 o -T Aggressive

    Questa opzione spinge lo scan ad alta velocità, per cui è raccomandabile usarla solo se si dispone di una connessione veloce.

    -T5 o -T Insane

    Spinge tutto alla massima velocità. È necessaria una connessione veloce. C’è il rischio di mandare in crash l’host bersaglio. È possibile una perdita di informazioni a causa dei timeout molto brevi.

    Utilizzare nmap su pc dove non c’è nmap

    Un paio di funzioni base di nmap sono accessibili anche online (quindi ovunque). Questo serivizio si chiama, guarda caso, nmap online :-) ,

    e lo trovate all’indirizzo nmap-online.com

    Vi sono dei programmi più specifici e professionali di nmap (che comunque ripeto, costituisce la base) come Nessus, di cui ho scritto in un altro articolo che potete trovare nella sezione hacking o tra i post simili a questo elencati più giù.

    Articoli Correlati

    Metasploit: tutti gli exploit per prendere il controllo di un sistema a portata di mano
    Cracking delle reti wifi, il WPA/WPA2
    VirtualBox: sistemi operativi virtuali in Ubuntu (e non solo)
    Wardriving: accesso alle reti wifi protette. Il WEP.

    Non ci sono ancora commenti... Perchè non essere il primo?!?

    Commenta