Packet Sniffing

1,876 views

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
1,876
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
31
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Packet Sniffing

  1. 1. PACKET SNIFFING E ALTRI STRUMENTI PER LA GESTIONE DELLA RETE 1
  2. 2. Analisi delle connessioni attive e delle porte • Utilizzo dello strumento netstat • Netstat consente di capire – Quali connessioni TCP sono attive – Quali porte sono usate da server che attendono connessioni – ... • Noi vedremo solo alcune delle opzioni di netstat. Per uno studio più approfondito si rimanda alla man page del comando 2
  3. 3. Comando netstat netstat [-tuelapn] • -t mostra connessioni TCP • -u mostra connessioni UDP • NOTA: se non si mette ne -t ne -u netstat mostra tutte le socket, anche quelle di tipo unix (non IP) • -e mostra informzioni aggiuntive • -l mostra le socket in stato “listen” • -a mostra le socket in qualsiasi stato esse siano • NOTA: se non si mette ne -l ne -a vengono mostrate solo le socket relative a connessioni aperte • -p mostra il programma associato a quelle socket • -n mostra informazioni numeriche invece che simboliche per i numeri di porta 3
  4. 4. Esempio nell'uso del comando netstat $ netstat -t Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:38960 localhost:ipp ESTABLISHED tcp 1 0 localhost:42807 localhost:ipp CLOSE_WAIT tcp 0 0 localhost:ipp localhost:38960 ESTABLISHED $ netstat -ltu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:time *:* LISTEN tcp 0 0 localhost:905 *:* LISTEN tcp 0 0 *:discard *:* LISTEN tcp 0 0 localhost:mysql *:* LISTEN udp 0 0 *:xdmcp *:* udp 0 0 localhost:sunrpc *:* 4
  5. 5. Intrpretazione dell'output • Caso 1 Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:ipp localhost:38960 ESTABLISHED – cosa significa la coppia localhost:ipp in local address? – cosa sinifica la coppia localhost:38960 in foreign address? – Cosa e' lo stato ESTABLISEHED? • Caso 2 tcp 0 0 *:time *:* LISTEN tcp 0 0 localhost:mysql *:* LISTEN – Cosa sono gli * negli indirizzi IP – Cosa cambia se metto localhost al posto di *? • Caso 3 udp 0 0 *:xdmcp *:* – Perchè manca lo stato? 5
  6. 6. Netcat Netcat (nc) è un comando che permette la lettura e la scrittura attraverso le connessioni di rete, utilizzando TCP e UDP. E' conosciuto come “il coltellino svizzero della rete” • nc [-options] hostname port[s] [ports] ... • nc -l -p port [-options] 6
  7. 7. Netcat – Cosa fa Netcat può funzionare, quasi indifferentemente, come client o server di una connessione; per questo è uno strumento ottimale per la verifica del funzionamento delle connessioni di rete, e non solo. In un certo senso è paragonabile idealmente al programma dd, con la differenza che invece di fare riferimento a dei dispositivi, si lavora con la rete a livello di trasporto TCP e UDP: il quarto nel modello OSI/ISO. 7
  8. 8. Netcat – La storia • Rilasciato da Hobbit per la prima volta nel 1995 • Nonostante l'enorme popolarità non è stato mantenuto attivo dal suo autore, sono nate così nuove versioni (Ncat, GNU netcat, netcat6, OpenBSD's nc, ...) • Ogni distribuzione GNU/Linux rispettabile mette a disposizione questo strumento 8
  9. 9. Netcat - Opzioni Alcune delle opzioni principali: -p specifica la porta locale port -s specifica l’indirizzo locale addr -l funziona come demone in ascolto di connessioni sulla porta port specificata -e consente i eseguire il comando command dopo la connessione -v modalità “verbose” (-vv, ancora più “verbose”) -z scan-mode 9
  10. 10. Netcat - Esempio Apertura di una porta nc -l -p port Connessione ad una macchina nc hostname port Apertura di una root shell (da root): nc –l –p port –e /bin/sh & 10
  11. 11. Netcat - Esercizio Connettiamoci ad un server web 1° Passo: Come ci connettiamo? Suggerimento: stare più attenti a lezione! 2° Passo: Cosa dobbiamo dire al server? Suggerimento: Chi ce lo può dire? 3° Passo: Come ce lo facciamo dire? Suggerimento: Meglio ascoltare prima di parlare 4° Passo: Connettiamoci e parliamo col server! 11
  12. 12. SSH SSH (Secure Shell) è un protocollo che permette di stabilire una connessione cifrata tra due device. Noi faremo riferimento a OpenSSH, un'implementazione opensource disponibile per diverse piattaforme (OpenBSD, Linux, Solaris...) ssh [options] [username@]host 12
  13. 13. SSH – Cosa fa Viene utilizzato per le connessioni a host remoti, garantendo la segretezza della comunicazione, inclusa l'autenticazione (Se pensate che sia ovvio vi sbagliate) L'autenticazione si basa su un tipo di crittografia detta a chiave asimmetrica, mentre il resto della comunica- zione utilizza la più comune crittografia simmetrica Per funzionare sono necessari due moduli: • Il client, utilizzato dall'utente per connettersi ad una macchina remota • il server che riceve e gestisce le connessioni (presente in tutte le distribuzioni GNU/Linux... serie!) 13
  14. 14. SSH – La storia • 1995, Tatu Ylönen, ricercatore alla Helsinki University of Technology, disegnò la prima versione del protocollo (ora nota come SSH-1) • Dicembre 1995 Ylönen fondò la SSH Communications Security, che porta avanti lo sviluppo nella direzione di software proprietario • 1996, nasce la versione 2 conosciuta come SSH-2 e che diventerà standard solo nel 2006 (rfc 4251) • Lo sviluppo della più conosciuta implementazione opensource viene portato avanti dal team sviluppatore di OpenBSD 14
  15. 15. SSH - Opzioni Le opzioni più comuni sono: -p per specificare la porta a cui connettersi -D per creare un tunnel generico -L per creare un bind tra una porta locale e un servizio remoto (ip:porta) tramite un terzo host -R come L, ma al contrario 15
  16. 16. SSH - Esempio Ipotizziamo di non avere accesso ad un determinato servizio remoto (es. chat con msn) a causa delle policy restrittive dell'uinversità. Quello che ci serve è un account su un host (con attivo un server ssh) in grado di connettersi a tale servizio. A quel punto possiamo creare un tunnel che indirizzi le nostre richieste all'host remoto che a sua volta le inoltrerà ai server di tale servizio. Per fare tutto questo basta un comando: ssh -L 12345:messenger.hotmail.com:1863 user@server-ssh Poi occorre impostare il programma di chat per connettersi usando il tunnel 16
  17. 17. Packet Sniffing con TCPDump 17
  18. 18. Packet Sniffing • Nasce come strumento per gli amministratori di sistema per monitorare e gestire il traffico di una rete. • Consente di raccogliere informazioni dai pacchetti in transito nella LAN. ANCHE INFORMAZIONI RISERVATE 18
  19. 19. Packet Sniffing 19
  20. 20. Sniffer • Gli sniffer sono gli strumenti software utilizzati per eseguire Packet Sniffing. Tra I più noti troviamo: • Tcpdump • Wireshark (grafico, ma esiste la versione testuale TShark) • Dsniff • Snort • Sniffit 20
  21. 21. Sniffer • 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. 21
  22. 22. Sniffer • I Packet Sniffer catturano i dati in transito in forma “binaria” (0101011…) e traducono queste informazioni in un formato leggibile. • Una ulteriore caratteristica è quella di fornire “protocol analisys” → i bit vengono interpretati in base ai protocolli utilizzati (se riconosciuti) es. Nell'header di un pacchetto IP saranno presenti 32+32 bit da interpretare come indirizzi IP 22
  23. 23. HUB Vs. 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. • Gli elaboratori con i dispositivi di rete impostati in modalità promiscua possono raccogliere tutte le informazioni di una rete “hubbed”. • In una rete switched le cose cambiano! 23
  24. 24. HUB L’HUB non sa dove si trova C e perciò ritrasmette ciò che ha inviato F a tutti i pc. Quelli non interessati in questa comunicazione ignoreranno i pacchetti ricevuti. 24
  25. 25. SWITCH • Uno SWITCH “conosce” sia quali sono i pc connessi, sia dove sono. Ciò rende più impegnativa l’attività di Packet Sniffing… ...ma non impossibile!! 25
  26. 26. Tcpdump 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. • Quando Tcpdump termina la sua esecuzione fornisce un report riguardante il numero di pacchetti ricevuti ed il numero di pacchetti scartati dal kernel. 26
  27. 27. Tcpdump - Opzioni Le opzioni principali sono: -c count Termina dopo aver ricevuto count pacchetti -e Visualizza gli header a livello DATA LINK -E Utilizza algo:secret per decifrare i pacchetti IPsec -i Rimane in ascolto sull’interfaccia di rete indicata -n Non converte gli indirizzi (IP, di porta…) in nomi -r file Legge i pacchetti dal file file -X Visualizza i pacchetti in formato hex e ascii 27
  28. 28. Tcpdump - Espressioni • 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. 28
  29. 29. Tcpdump - Espresioni • 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’ 29
  30. 30. Esperienza • Realizzare la rete nella figura di riferimento • analizzare il traffico tra node1 e node2 utilizzando node3 • Lo switch deve funzionare in modalità hub • Analisi del traffico: – Ping – Sessioni ssh – Traffico generato con netcat 30

×