TCP IP port scan

TCP e UDP sono i due protocolli di trasporto previsti all’interno della suite TCP IP. Mentre UDP non ha il concetto di sessione, il TCP è un protocollo connection oriented, e per trasferire dati tra due host stabilisce innanzi tutto una sessione, che consente di tenere traccia della quantità dei dati scambiati, verificare che tutti i pacchetti arrivino a destinazione, e così via. Le specificità di UDP e TCP possono essere usate per effettuare port scanning allo scopo di riconoscere quali host e servizi siano attivi su una rete remota.
Esistono molti tipi di port scanning, vediamone alcuni:

TCP Connect
SYN
NULL
FIN
ACK
Xmas TREE
Dumb Scan

TCP Connect
E’ il tentativo in assoluto più semplice, ed il più facile da bloccare. Semplicemente tentiamo di avviare una connessione inviando un pacchetto di SYN all’host su una determinata porta. L’host in oggetto, se ha aperta la porta in oggetto, risponde inviando un SYN/ACK, cui il nostro client, se è cortese, risponderà con un ACK.
Se invece siamo meno cortesi possiamo non far arrivare mai il pacchetto di ACK e passare alla porta successiva. il SYN scan funziona in maniera molto simile: invece di inviare un ACK, il client invia un RST, facendo chiudere la connessione.

SYN
Esiste una terza possibilità: non inviare proprio nulla. L’host rimane in attesa per un determinato periodo di tempo del completamento dell’handshaking e poi lascia cadere la connessione. In ogni caso una scansione del genere, sia TCP connet sia SYN, se fatta con tempistiche aggressive, viene immediatamente intercettata da un IDS. Diversi router possono essere configurati per eseguire un drop delle connessioni quando riconoscono un attacco del genere (“aggressive mode”).

NULL scan
Consiste nel inviare un pacchetto senza nessun flag settato. Il comportamento, come indicato nella RFC793 prevede che un host che riceva un pacchetto con tutti i flag non settati lo scarti ed invii immediatamente un RST. Sfortunatamente non tutti i sistemi operativi rispettano la RFC 793; i sistemi operativi Windows ad esempio non lo fanno, inviando un RST tutte le volte che ricevono un NULL, indipendentemente dal fatto che la porta sia aperta. Questo tipo di scan non si può usare sulle macchine Microsoft.

FIN Scan
In questo caso si invia un pacchetto con un flag di FIN settato ad un host. Un host con una porta chiusa inierò un RST, mentre in cso di porta aperta non verrà inviata alcuna risposta. Valgono per le macchine Microsoft le stesse considerazioni fatte per il NULL scan.

ACK Scan
Normalmente un ACK fa parte del processo di handshaking nello scambio dati tra client e host. Inviando un ACK ad un firewall possiamo riconoscere quale porta è aperta o chiusa. Nello specifico se la porta è aperta riceveremo un RST, mentre se la porta è filtrata non riceveremo niente

Dumb Scan
E’ dovuto a Salvatore Sanfilippo (antirez). Utilizza un terzo host compromesso che partecipa allo scanning (naturalmente deve avere uno stack TCP IP accessibile). Un SYN viene inviato alla macchina target. La particolarità è che il pacchetto viene inviato con l’indirizzo IP dello zombie (è quello che chiamiamo spoofing).

Se la porta è aperta e in ascolto, il target risponde con SYN/ACK. Se la porta è chiusa, risponderà con RST. Nel frattempo effettuiamo un ping continuo sulla macchina zombie.

Se la macchina zombie riceve un SYN/ACK, invia un RST. Se invece riceve un RST non dà alcuna risposta. Nel primo caso, lo zombie farà traffico, nel secondo no.

Se inviamo dei ping continui allo zombie, con hping, avremo modo di vedere se lo zombie sta facendo traffico o no. Farà traffico se la porta oggetto di scansione è aperta, e altrimenti è chiusa.

Naturalmente lo zombie deve essere una macchina che risponde al ping e NON FA ALTRO TRAFFICO. Buon divertimento.

XMAS Tree
Un pacchetto XMAS TREE viene inviato con i flag URG, PSH, FIN settati. Normalmente questi tre settaggi non possono essere attivi contemporaneamente, per cui l’host soggetto a scansione risponde come in qualunque inverse scan.

This entry was posted in TCP IP and tagged , , , . Bookmark the permalink.