Banner Shishii
Pagina aggiornata il:  8/09/2005 10:17

Pagina Stampabile     Pagina Stampabile

Precedente - Indice - Successiva


6 Tipi di scan

Veniamo ora all'illustrazione dei vari modi d'uso di Nmap tramite i suoi flag. Come detto gli stessi possono essere usati tramite la linea di comando o attivati tramite i vari form dell'interfaccia grafica.

6.1 Scanning diretti

In questa sezione verranno trattate le tecniche di scanning dirette, cioè che partono direttamente dal computer che ospita Nmap e si presentano con il vero IP.

-sT
CONNECT SCAN. Tramite questo flag, per determinare lo stato delle porte di un host verrà utilizzata una connessione completa TCP, con tanto di hand-shake completo (vedi appendice 8.1). Se la stessa avviene vorrà dire che la porta è aperta. Trattandosi di un uso del tutto normale delle chiamate di sistema di qualunque sistema operativo, relativamente allo stack TCP/IP, sarà attivabile da qualunque utente, e si tratta di uno dei pochi scan utilizzabili da chi non è root. Ha lo svantaggio che verrà immediatamente individuato da qualunque software di analisi dei log o Introduction Detection System (vedi appendice 8.7).
-sS
SYN SCAN. In questa maniera lo scan avverrà tramite ``un mezzo hand-shake'', cioè partirà un pacchetto TCP con flag SYN attivo, se la porta da controllare è aperta risponderà con un pacchetto TCP con i flag SYN|ACK attivi al quale Nmap risponderà chiudendo la connessione con un pacchetto TCP con flag RST attivo, altrimenti se la porta è chiusa ad Nmap giungerà un pacchetto TCP con flag RST attivo che chiuderà la connessione. 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 (vedi appendice 8.7). Questo tipo di scan è utilizzabile solo da root.
-sF
FIN SCAN. Questo tipo di scan è particolarmente difficile da rilevare da parte dei vari sistemi di logging o I.D.S., inoltre penetra facilmente i firewall, per cui è molto efficace. Lo scan avverrà tramite un pacchetto TCP anomalo con flag FIN attivo, le specifiche RFC per lo standard TCP prevederebbero che un host che riceve un pacchetto con flag FIN su una porta chiusa dovrebbe rispondere con un pacchetto con flag RST, se lo riceve su una porta aperta dovrebbe ignorarlo. Quindi se il sistema host che si sta scannerizzando segue lo standard avremo che se una porta è aperta Nmap non riceverà risposta, altrimenti se è chiusa riceverà un pacchetto RST. Se invece l'analisi si rivolge contro un host che ha un sistema operativo che non segue lo standard, allora riceverà sempre un pacchetto RST, per cui questo tipo di scan non è efficace. Sistemi operativi che non seguono lo standard, sotto il profilo suddetto sono: Windows, Cisco, HP-UX, IRIX ed altri.
-sX
XMAS SCAN. Questo tipo di scan ha le stesse caratteristiche di -sF, con la differenza che usa pacchetti TCP con i flag FIN, URG, e PUSH attivi. Ha anche gli stessi identici problemi relativi al rispetto degli standard.
-sN
NULL SCAN. Questo tipo di scan ha le stesse caratteristiche di -sF, con la differenza che usa pacchetti TCP con tutti i flag disattivati. Ha anche gli stessi identici problemi relativi al rispetto degli standard.
-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. Altrimenti se si ha intenzione diversa si tenga presente che già Nmap effettua una verifica tramite alcuni tipi di ping su cui si può intervenire con le opzioni della famiglia -P.
-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 anche 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 istallato il trojan. Si tenga però presente che questo scan è molto lento, in quanto, basandosi su risposte ``icmp port unreachable'' è soggetto al limite stabilito dalle norme RFC sulla quantità di messaggi di errore per secondo inviabili, che per alcuni kernel linux è di 80 ogni 4 secondi. Questo limite è stato stabilito per evitare i pericoli di DoS per saturazione della rete. Come spesso avviene Windows non rispetta questa norma RFC, per lo scan UDP contro sistemi Windows è molto più rapido.
-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. Infatti se i pacchetti ACK passano si riceverà in risposta un pacchetto con flag RST attivo, altrimenti non si avrà risposta. Nel primo caso il firewall è un semplice filtro, nel secondo è un vero e proprio firewall statefull. Quindi 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'' contenuto nel file nmap-service-probes. Non sfugge a nessuno l'utilità di sapere che applicativo è in uso nell'ottica di preparare un attacco mirato, ad esempio un buffer overflow.
-sO
IP PROTOCOL SCAN: Utilizzando l'invio di pacchetti IP raw privati di ogni ulteriore header per ogni specifico protocollo, è possibile determinare quali sono implementati da un server, il quale per ognuno risponde con un pacchetto ICMP-unreachable-message, se non è riconosciuto, se non risponde lo riconosce. Questa tecnica spesso non funziona se vi è un firewall interposto.

6.2 Scanning Indiretti

In questa sezione verranno trattate le tecniche di scanning indirette, cioè che usano un computer ``medium'' e non presentano all'host bersaglio il vero IP.

-b
FTP BOUNCE ATTACK: Questo metodo utilizza per effettuare lo scan dell'host bersaglio un altro computer inconsapevole sul quale gira un server FTP che, incoscientemente, rispetta le specifiche RFC, il quale prevede che un server FTP possa funzionare anche in modalità ``proxy'', cioè che ci si possa collegare dal computer x.com al computer y.net e gli si possa chiedere di inviare qualcosa verso qualunque indirizzo. Quindi, oltre a molte altre cose, questo buco consente di effettuare lo scanning segreto di altri sistemi, in quanto nei log risulterà l'IP del server FTP e non il proprio, e se il server FTP è all'interno di una rete protetta da un firewall, questo verrà scavalcato senza speranza e si potrà comodamente analizzarla. Per avere più informazioni sui meccanismi sfruttati per questo attacco vedere l'appendice 8.8. Qui basta dire che, dopo avere istaurato la ``CONTROL CONNECTION'', si invia al server FTP un comando ``PORT'', che forza l'istaurazione di una ``DATA CONNECTION'' su una porta arbitraria ed un IP diverso da quello del client, in specifico si indicano l'IP dell'host bersaglio e la porta da verificare. Se la porta è aperta si riceve un messaggio di successo (codici 150 o 226) altrimenti si riceverà un ``425 Can't build data connection''. In definitiva noi comandiamo il server FTP tramite il canale ``CONTROL CONNECTION'' e questo colloquia con l'host bersaglio tramite il canale ``DATA CONNECTION''. Molto efficace, ma per utilizzarlo si deve individuare un server FTP vulnerabile. Ad esempio Microsoft IIS dalla versione 5 non lo è più.
-sI
IDLE SCAN: Questo potentissimo metodo di scan è stato ideato dall'Italiano Salvatore Sanfilippo aka ``Antirez'', autore, tra l'altro, di uno strumento di straordinaria efficacia nel campo del probing e cioè hping2, successivamente è stato implementato in Nmap. E' un metodo completamente nascosto, in quanto non lascia alcuna traccia dell'attaccante nell'host bersaglio. Per poterlo attuare si deve individuare un host che utilizza un sistema operativo che genera numeri di sequenza IPID (alias ISN: Identification Sequence Number) predicibili (appendice 8.1). Lo si deve analizzare e individuare una porta aperta. Fatto ciò sarà sufficiente inserire l'indirizzo di questo host e la porta aperta, oltre agli altri parametri desiderati. Per non essere scoperti si deve ricordare di disabilitare i ping, quindi questo flag va usato insieme a -P0. Per approfondire questo argomento vedere l'appendice 8.2. Qui facciamo solo un esempio di uso. Mettiamo che il bersaglio sia www.shishii.com, che l'host zombie sia 123.124.125.1, con la porta 80 aperta, il comando da dare sarà:
> nmap -P0 -sI 123.124.125.1:80 www.shishii.com

Precedente - Indice - Successiva
Indice del sito