WIRESHARK. Lelio Spadoni



Documenti analoghi
No. Time Source Destination Protocol Info DHCP DHCP Discover - Transaction ID 0xec763e04

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

Protocolli di Comunicazione

Inizializzazione degli Host. BOOTP e DHCP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

ICMP OSI. Internet Protocol Suite. Telnet FTP SMTP SNMP TCP e UDP NFS. Application XDR. Presentation. Session RPC. Transport.

Reti di Calcolatori. Il software

Transmission Control Protocol

Dal protocollo IP ai livelli superiori

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Protocollo ICMP, comandi ping e traceroute

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Internet. Introduzione alle comunicazioni tra computer

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Introduzione allo sniffing

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Il protocollo TCP. Obiettivo. Procedura

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

P2-11: BOOTP e DHCP (Capitolo 23)

BREVE GUIDA ALL ATTIVAZIONE DEL SERVIZIO DDNS PER DVR SERIE TMX

Interconnessione di reti

Protocollo IP e collegati


Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

Internet Control Message Protocol ICMP. Struttura di un Messaggio ICMP. Segnalazione degli Errori

Reti di Calcolatori

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Elementi di Informatica e Programmazione

ICMP. Internet Control Message Protocol. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it

Lo scenario: la definizione di Internet

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Elementi sull uso dei firewall

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

University of Modena and Reggio Emilia. Laboratorio di Comunicazioni Multimediali WIRESHARK. Daniela Saladino

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

ARP (Address Resolution Protocol)

Ubiquity getting started

Elementi di Sicurezza e Privatezza Laboratorio 6 - Sniffing. Chiara Braghin chiara.braghin@unimi.it

Gestione degli indirizzi

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Elementi di Informatica e Programmazione

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

ARP e RARP. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it Fulvio RISSO

Internet e protocollo TCP/IP

IP (Internet Protocol) sta al livello 2 della scala Tcp/Ip o al livello 3 della scala ISO/OSI. Un indirizzo IP identifica in modo logico (non fisico

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

ARP/RARP. Problema della Risoluzione dell Indirizzo. Corrispondenza statica e dinamica. Scenari

IP Internet Protocol

L architettura di TCP/IP

Reti di Telecomunicazione Lezione 6

PORTALE CLIENTI Manuale utente

Standard di comunicazione

Informatica per la comunicazione" - lezione 8 -

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Firewall e Abilitazioni porte (Port Forwarding)

Il web server Apache Lezione n. 3. Introduzione

Ethereal A cura di Donato Emma demma@napoli.consorzio-cini.it

Il firewall Packet filtering statico in architetture avanzate

Gestione degli indirizzi

ARCHITETTURA DI RETE FOLEGNANI ANDREA

GUIDA UTENTE PRIMA NOTA SEMPLICE

Il livello Network del TCP/IP. Il protocollo IP (versione 4)

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Livello di Rete. Gaia Maselli

INFOCOM Dept. Antonio Cianfrani. Virtual LAN (VLAN)

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

LaCie Ethernet Disk mini Domande frequenti (FAQ)

La VPN con il FRITZ!Box Parte II. La VPN con il FRITZ!Box Parte II

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Assegnamento di un indirizzo IP temporaneo a dispositivi Barix

Manuale per la configurazione di AziendaSoft in rete

Installazione di GFI WebMonitor

DA SA Type Data (IP, ARP, etc.) Padding FCS

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP

Configurazione IP. Assegnazione Indirizzi IP

Apparecchiature di Rete

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Software di gestione della stampante

Client - Server. Client Web: il BROWSER

MANUALE PARCELLA FACILE PLUS INDICE

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

1) GESTIONE DELLE POSTAZIONI REMOTE

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Modulo 1.3 Reti e servizi

Guida rapida Vodafone Internet Box

TCP/IP. Principali caratteristiche

ARP e instradamento IP

Introduzione al TCP/IP Indirizzi IP Subnet Mask Frame IP Meccanismi di comunicazione tra reti diverse Classi di indirizzi IP Indirizzi IP privati e

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

ICARO Terminal Server per Aprile

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Guida alla configurazione

Transcript:

WIRESHARK Lelio Spadoni

Argomenti trattati Introduzione Richiami protocollo ISO/OSI e TCP/IP Introduzione agli analizzatori di protocollo Wireshark:. installazione. descrizione delle componenti. cattura: frame, ethernet II, ICMP (ping e tracert), ARP, IPv4, IPv6, TCP, UDP, DHCP, HTTP. La versione testuale di Wireshark: TShark (cenni)

Introduzione: nota importante Usare programmi come Wireshark è utilissimo in tutte quelle situazioni dove c è la necessità di risolvere dei problemi della rete o per motivi di studio dei diversi protocolli operanti in essa. E deprecabile l uso di tale software per carpire dati sensibili quali password, contenuto dei massaggi di una comunicazione eseguita con Messengers, ecc Inoltre è necessario ricordare che tutte le operazioni riguardanti una rete devono essere eseguite esclusivamente dall amministratore di rete o dai suoi delegati. Per evitare problemi di sorta in queste lezioni di laboratorio si è preferito utilizzare un router wireless (Wind) con un modem (chiavetta della Tre) dedicato alla navigazione in Internet.

Modello ISO/OSI Cenni Questo modello è basato su una proposta sviluppata dalla Organizzazione per gli Standard Internazionale (ISO International Standard Organization), come primo passo per la standardizzazione dei protocolli utilizzati nei vari livelli. Il modello è chiamato ISO/OSI (Open System Interconnection) perché pensato per l interconnessione con sistemi aperti (che sono aperti per comunicazioni con altri sistemi)

Modello TCP/IP Cenni Il modello TCP/IP prende nome dai due principali protocolli utilizzati: il Transmission Control Protocol (TCP - livello di trasporto) e il Internet Protocol (IP - livello network). E il modello principe utilizzato in Internet e nelle reti LAN.

Modello TCP/IP Descrizione livelli Livello 1 (data link): il suo servizio per i livelli superiori è quello di instaurare un collegamento tra due punti contigui della rete libero da errori di trasmissione non segnalati. Livello 2 (network): il suo compito è quello di inserire dei pacchetti nella rete in modo tale che questi viaggino verso una destinazione; il protocollo utilizzato è il IP. Livello 3 (trasporto): permette a due entità di pari livello di portare avanti una conversazione; i protocolli utilizzati sono due: TCP orientato alla connessione e affidabile e l altro il UDP (User Datagram Protocol) che non è orientato alla connessione e inaffidabile. Livello 4 (applicazione): in questo livello fanno parte i diversi protocolli utilizzati dalle applicazione degli utenti: terminale virtuale (TELNET), posta elettronica (SMTP), trasferimento archivi (FTP), web (HTML), ecc.

Modello TCP/IP Incapsulamento dei dati

Protocollo TCP/IP Incapsulamento dei dati Nella trasmissione, la rete passa i pacchetti da un livello software più alto verso il successivo più basso, seguendo l ordine dei livelli stessi. Ad ogni livello il software aggiunge alla unità di informazioni (il pacchetto di dati, chiamato anche payload) ulteriori informazioni di formattazione o indirizzamento, necessarie per la corretta trasmissione del pacchetto stesso sulla rete. L aggiunta di queste informazioni livello per livello viene chiamato imbustamento o incapsulamento. Nell incapsulamento i dati vengono racchiusi in testa da una serie di informazioni di imbustamento che vengono chiamate Header.

Analizzatore di protocollo Che cos è un analizzatore di protocollo Un analizzatore di protocollo è uno strumento progettato appositamente per catturare, registrare, visualizzare, decodificare Frames che viaggiano sulla rete. Questo strumento viene anche chiamato packet captures o packet sniffers, indicando così che serve per catturare i pacchetti IP anche se, in realtà, vengono catturati Frames di secondo livello, mentre i pacchetti notoriamente sono di terzo livello. Questo strumento, una volta catturati i Frames, li analizza in profondità decodificandoli e dissezionandoli. Fatto questo, è capace di mostrare il traffico di rete in una configurazione che sia leggibile e comprensibile dagli esseri umani. Questo permette agli utenti di comprendere quello che sta accadendo sulla rete.

Analizzatore di protocollo Che cos è un analizzatore di protocollo Un analizzatore di protocollo può essere un apparecchiatura hardware standalone con software specializzato, o più semplicemente è un software che si installa su un computer desktop o su un computer portatile. Si installa sopra un sistema operativo standard (SO) e utilizza per la cattura dei pacchetti le schede di interfaccia di rete (NIC - Network Interface Card) in modalità promiscua. Questa è una particolare modalità che permette di leggere tutto il traffico che transita in quel punto della rete, non solo quello diretto ad una specifica interfaccia. La modalità promiscua è l opposto della modalità nonpromiscua con cui funziona normalmente una NIC.

Analizzatore di protocollo Che cos è un analizzatore di protocollo Normalmente quando i pacchetti così formati vengono trasmessi sopra una rete, vengono inviati a tutti gli ascoltatori che sono in attesa sul segmento di rete, cioè a tutte le NIC di una LAN, essendo il media in condivisione. Questa modalità di funzionamento viene definita Broadcast, cioè trasmissione di tutto a tutti. Broadcast Scheda di rete

Analizzatore di protocollo Che cos è un analizzatore di protocollo Se l indirizzo di rete MAC (Medium Access Control) a cui è diretto il pacchetto è quello della propria interfaccia, questo è l unico autorizzato a riceverlo; il pacchetto di dati viene passato al Kernel del SO, e da qui in su sulla pila di protocollo, fino ad arrivare al livello applicativo. Se invece è diretto ad un altro indirizzo di rete, il ricevente non è autorizzato a riceverlo e il pacchetto dalla NIC deve essere droppato, scartato. In modalità promiscua, la NIC, anche se non è autorizzata a riceverli, non droppa i pacchetti che non sono diretti a lei, ma li passa tutti al Kernel del SO.

Analizzatore di protocollo Che cos è un analizzatore di protocollo Un MAC Address (Medium Access Control) è l indirizzo hardware di una NIC. Questo è un numero di 48 bit identificatore della scheda di rete. I primi 24 bit identificano il vendor, mentre i secondi 24 bit sono un numero seriale assegnato dal vendor alle NIC.

Analizzatore di protocollo Come lavora un analizzatore di protocollo Il processo di lavoro di un analizzatore di protocollo può essere suddiviso in tre fasi: raccolta, conversione, analisi. 1. Fase: Raccolta La prima fase comprende la selezione e il corretto posizionamento sulla rete dell interfaccia di cattura in promiscuous mode. In questa modalità è possibile per l interfaccia di cattura ascoltare tutto il traffico del particolare segmento di rete in cui è posizionata la sonda.

Analizzatore di protocollo Come lavora un analizzatore di protocollo Il processo di lavoro di un analizzatore di protocollo può essere suddiviso in tre fasi: raccolta, conversione, analisi. 2. Fase: Conversione In questa fase, i dati binari grezzi catturati sono convertiti in un formato comprensibile. In questo stato i dati catturati sono in una forma che consente di interpretarli solo ad un livello molto basso.

Analizzatore di protocollo Come lavora un analizzatore di protocollo Il processo di lavoro di un analizzatore di protocollo può essere suddiviso in tre fasi: raccolta, conversione, analisi. 3. Fase: Analisi Nella terza fase, l analizzatore di protocollo prende i dati catturati sulla rete, verifica i protocolli basandosi sulle informazioni estratte e in base alle loro caratteristiche specifiche li analizza.

Il più popolare analizzatore di protocollo del mondo Come dice l intestazione del sito www.wireshark.org, è probabilmente il più popolare analizzatore di protocollo del mondo e viene attualmente considerato uno standard nel suo genere. L ultima versione stabile per Windows di Wireshark può essere scaricata dal sito ufficiale http://www.wireshark.org/download.html. Questa può essere installata su diverse piattaforme come: Windows (NT 4.0/2000/XP/Vista) e Linux. In queste lezioni di laboratorio verrà analizzata solamente la versione per sistemi operativi Windows. Una volta scaricato nella cartella del download, il file wireshark-win32-1.4.0.exe si presenta come una icona blu con il logo a forma di pinna di squalo.

HashCalc A questo punto, si fa il controllo per verificare la genuinità del file scaricato, andando nella pagina delle firme del file. La verifica della genuinità del file scaricato la eseguiremo con HashCalc, un apposito programma freeware per il calcolo multiplo degli hash liberamente scaricabile presso http://www.slavasoft.com/hashcalc/index.htm. Questa è una tecnologia di sicurezza che mediante l utilizzo di una particolare funzione matematica converte un input di lunghezza variabile il file wireshark-win32-1.4.0.exe scaricato - in un output di lunghezza fissa, chiamato firma, che troviamo a fondo pagina presso l Hiperlink signature file. In questo caso gli Hash del file - wireshark-win32-1.4.0.exe - vengono calcolati con tre sistemi differenti: MD5, SHA1 e RIPEMD160. La comparazione della firma che il file dovrebbe avere, con le firme che otteniamo dopo il passaggio con HashCalc ci garantisce l integrità dei dati.

HashCalc: controllo integrità L aloritmo di hashing MD5 (Message Digest Algorithm 5) è utilizzato ampiamente per il controllo dell integrità dei dati, anche se è stato possibile trovare (..in tempi ragionevoli) due stringhe che collidono e cioè forniscono lo stesso massage digest a partire da due diverse stringhe di testo. L algoritmo di hashing SHA1 (Secure Hash Algoritm) è più sicuro dell MD5 e fornisce come output (il message digest) un codice di 160 bit. wireshark-win32-1.4.0.exe: 18827151 bytes MD5(wireshark-win32-1.4.0.exe)=4b77599018805c3ae1869b4ae31be2cb SHA1(wireshark-win32-1.4.0.exe)=01ab870fddd7813c52d5d233a20e709d36be6457 RIPEMD160(wireshark-win32-1.4.0.exe)=aa5f9349b1e4e9977c505a5ed9aac24b174f681f

Funzione md5 in PHP Alcuni linguaggi di programmazione forniscano già delle primitive per il calcolo del message digest. Nell esempio seguente è riportato il codice in PHP della funzione di hashing MD5: <?php //Assegno ad una variabile la stringa che voglio codificare con l'algoritmo MD5 $my_md5 = 'Reti per telecomunicazioni e Reti e sistemi multimediali'; //Stampo a video una riga vuota echo "\r\n"; //Stampo a video il message digest della stringa memorizzata nella variabile echo md5($my_md5); //Stampo a video una riga vuota echo "\r\n";?>

Installazione Comparirà una finestra dove è possibile scegliere il tipo di interfaccia grafica (GUI) per l installazione : Wireshark GTK1 o ancora Wireshark GTK2 (le versioni di Wireshark GTK1 e 2 non possono essere installate contemporaneamente) da cui spunteremo GTK-Wimp, che è l impersonatore Windows. Troveremo già spuntate le caselle per l installazione di TShark, la versione a riga di comando di Wireshark.

Installazione Plugins / Extensions sono i plugins e le estensioni di Wireshark e TShark: Dissector Plugins Plugin con alcuni estensioni per dissezionare il traffico. Tree Statistic Plugin Plugin per alcune statistiche estese. Mate Mate Analysis and Tracing Engine (sperimentale). SNMP MIBs Plugin per una migliore dissezione SNMP. Tools: Editcap Editcap è un programma che legge un file catturato e scrive alcuni o tutti i pacchetti dentro un altro file catturato. Text2Pcap Text2pcap è un programma che legge in ASCII hexdump e scrive i dati in un file catturato in stile libpcap. Mergecap Mergecap è un programma che combina, fonde diversi file catturati in un singolo file. Capinfos Capinfos è un programma che fornisce informazioni su un file catturato. User s Guide È la guida per l utente di Wireshark.

Installazione A questo punto, verrà chiesto di installare la versione aggiornata di WinPcap 4.1.2. Se è già presente sul computer una precedente versione di WinPcap, essa verrà disinstallata e successivamente installata una versione aggiornata, inclusa nel pacchetto eseguibile di Wireshark. WinPcap non è altro che il pacchetto di librerie chiamate Capture driver, che permettono la cattura dei pacchetti di dati che viaggiano sulla rete.

Installazione

Installazione

Principali caratteristiche di Wireshark Disponibile per UNIX e Windows. Cattura al volo dei pacchetti da un interfaccia di rete. Mostra informazioni molto dettagliate sui protocolli. Salvataggio e caricamento dei pacchetti catturati. Import e Export dei pacchetti da/verso altri programmi. Uso di filtri. Ricerca di pacchetti. Evidenzia i pacchetti sulla base di filtri. Crea varie statistiche.

- WinPCap I drivers della cattura del pacchetto Quando un computer viene collegato su una rete, la scheda di rete (NIC) (Network Interface Card) è responsabile per la ricezione e la trasmissione dei dati verso gli altri host. Le applicazioni di rete usano metodi, come i sockets, per stabilire e mantenere i collegamenti con gli altri host, mentre il sistema operativo sottostante si occupa dei dettagli di basso livello e fornisce gli stack di protocollo per le comunicazioni di rete. Alcuni programmi, come gli analizzatori di protocollo, hanno bisogno di avere un accesso diretto con l hardware di rete (non sempre possibile con gli attuali sistemi operativi), per gestire dei dati di rete grezzi, in forma originale, senza che siano elaborati e quindi ricevere interferenze dalle pile di protocollo.

- WinPCap I drivers della cattura del pacchetto Senza questo accesso diretto, fornito dal Capture Driver WinPcap, l analizzatore di protocollo riceverebbe i pacchetti di dati inquinati, sporcati dai vari passaggi che verrebbero effettuati durante il percorso normale attraverso la pila di protocollo. Un driver di cattura di pacchetto offre precisamente questo accesso diretto all hardware, e ha la capacità come intermediario tra l hardware e l applicativo di catturare i pacchetti di rete grezzi e di offrirli direttamente al programma analizzatore di protocollo. In pratica, per arrivare dalla rete all applicativo Wireshark, viene bypassata la pila di protocollo, che è il normale percorso che un dato fa dalla NIC all Applicativo.

- WinPCap I drivers della cattura del pacchetto In un sistema operativo moderno, ad un applicazione (come Wireshark) non è consentita l interazione diretta con i dispositivi fisici, in quanto essi sono gestiti esclusivamente dal kernel del sistema. Per catturare dati dalla rete è allora necessaria una vera e propria architettura, un driver di cattura, costituita da due parti principali: una funzionante all interno del kernel del sistema operativo e un altra funzionante a livello utente. Un driver di cattura di pacchetto come WinPcap o LibPcap, può catturare tutti i dati che transitano su un architettura di rete condivisa. Questo è ciò che permette ad un analizzatore di protocollo come Wireshark di monitorare passivamente il traffico di rete.

Dove posizionare wireshark nella rete Nelle reti attuali (switched network) i diversi host, server, ecc sono collegati tra loro attraverso degli swhitch. Lo switch spedisce i dati solo alla porta in cui è collegato il destinatario degli stessi; è allora impossibile ricevere i dati destinati ad altri host anche se il computer sniffing si trova collegato nello stesso switch. Se invece nella rete inseriamo un hub allora è possibile catturare tutto il traffico in transito; l hub infatti spedisce i dati in arrivo verso tutte le porte indipendentemente dalla destinazione dei dati.

Switch e Hub I dati trasmessi dall host A e diretti all host C vengono recapitati a tutti i pc collegati con l Hub (anche al pc B); quindi con Wireshark inserito in qualsiasi punto della rete riesco a catturare tutto il traffico. Con lo Switch i dati trasmessi da A e diretti a C sono veicolati solo al destinatario; quindi inserendo Wireshark in un determinato pc, riesco a catture solo il traffico a lui indirizzato, ma non quello diretto a tutti gli altri. Si tenga presente che gli hub sono praticamente fuori commercio, pertanto ci si troverà quasi sempre con uno switch. Alcuni switch in commercio hanno oltre alle normali porte per il collegamento degli host anche una porta chiamata port monitor dalla quale passa tutto il traffico gestito dallo switch.

Dove posizionare wireshark nella rete Per catturare i dati presenti in rete possono essere utilizzati anche altri metodi oltre quelli visti in precedenza: - catturata del traffico in rete per mezzo di un Network TAP (Test Access Point) inserito tra lo switch e l host da controllare. - cattura con l utilizzo di metodi software come per esempio attacchi Man In The Middle (dove lo sniffer si finge di essere l host destinatario ingannando l host sorgente). - altri metodi

Come funziona Wireshark Pacchetto catturato: sequenza di bit Riconosce tutta la pila protocollare incapsulata E in grado di arrivare fino al protocollo applicativo http, smtp, pop3, ftp

Menu File di Wireshark Menu File Open: permette di aprire un file con i pacchetti del traffico catturati in una sessione precedente Save: permette di salvare in un file i pacchetti catturati

Menu Capture di Wireshark Menu Capture Interfaces: mostra tutte le interfacce supportate Options: permette di impostare le opzioni di cattura Start: avvia la cattura con le ultime opzioni selezionate Capture Filters: imposta i filtri di cattura

Scelta dell interfaccia e avvio della cattura Menu Capture Interfaces: mostra tutte le interfacce supportate Per avviare la cattura dei pacchetti che attraversano la rete si seleziona l interfaccia dall elenco e si preme Start

Interfaccia di Wireshark

Sistema di riferimento

Frame Il livello data link si occupa di fornire ai livelli superiori una linea di comunicazione esente da errori di trasmissione non segnalati; per fare questo decompone i dati del mittente in pacchetti chiamati frame, composti da alcune centinaia o migliaia di byte, e li spedisce in sequenza attendendo eventualmente la conferma di avvenuta ricezione da parte del destinatario.

Frame Dimensione della trama in alcune reti

bootstrap_protocol.pcap Frame - Cattura

bootstrap_protocol.pcap Frame Dettaglio della cattura Frame 1: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) Arrival Time: Oct 2, 2010 14:56:41.573769000 ora legale Europa occidentale Epoch Time: 1286024201.573769000 seconds [Time delta from previous captured frame: 0.000000000 seconds] [Time delta from previous displayed frame: 0.000000000 seconds] [Time since reference or first frame: 0.000000000 seconds] Frame Number: 1 Frame Length: 42 bytes (336 bits) Capture Length: 42 bytes (336 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:arp] [Coloring Rule Name: ARP] [Coloring Rule String: arp] Legenda Arrival Time: tempo di arrivo del frame catturato Epoch Time: secondi trascorsi dal 01/01/1970 Protocols in frame: tipo di protocollo presente nel frame eth:arp -> ethernet:address resolution protocol Wireshark aggiunge, tra parentesi quadre, delle informazioni utili ad una migliore comprensione dei dati catturati

Ethernet II Il frame Ethernet II definisce un campo di due ottetti (due bytes) chiamato EtherType (nella figura seguente indicato con Type), preceduto da un campo destinazione e uno sorgente contenente i rispettivi codici MAC address. Ether Type: 0x0800 indica che il pacchetto contiene un IPv4 datagram 0x0806 indica che il pacchetto contiene un ARP frame 0x86dd indica che il pacchetto contiene un IPv6 datagram

bootstrap_protocol.pcap Ethernet II - Cattura

bootstrap_protocol.pcap Ethernet II Dettaglio della cattura Ethernet II, Src: GemtekTe_af:90:e4 (00:1a:73:af:90:e4), Dst: Broadcast (ff:ff:ff:ff:ff:ff) Destination: Broadcast (ff:ff:ff:ff:ff:ff) Address: Broadcast (ff:ff:ff:ff:ff:ff)......1............ = IG bit: Group address (multicast/broadcast).....1............. = LG bit: Locally administered address (this is NOT the factory default) Source: GemtekTe_af:90:e4 (00:1a:73:af:90:e4) Address: GemtekTe_af:90:e4 (00:1a:73:af:90:e4)......0............ = IG bit: Individual address (unicast).....0............. = LG bit: Globally unique address (factory default) Type: ARP (0x0806) Legenda Src: indirizzo MAC dell entità che ha generato il frame Dst: indirizzo MAC dell entità a cui è indirizzato il frame (ff:ff:ff:ff:ff:ff destinato a tutti broadcast) Type: tipo di protocollo presente nel frame (ARP - Address Resolution Protocol) IG bit: indica se questo è un indirizzo unicast/multicast/broadcast LG bit: indica se questo è un indirizzo amministrato localmente o globalmente assegnato (IEEE)

cose utili da conoscere Inizia la cattura Visualizza la finestra popup Capture Options Lancia una nuova cattura Ferma la cattura Restart della cattura in esecuzione Unisce due file.pcap Esporta i risultati in formato.txt Usa diversi file per registrare una cattura contenente grandi quantità di dati

Filtri Filtri di cattura: permettono di catturare solo il traffico di interesse; permettono di ridurre la mole di dati da trattare durante la cattura. Filtri di visualizzazione: permettono di visualizzare solo alcuni dei pacchetti catturati; più potenti dei filtri di cattura, ma non riducono la mole di dati da trattare. La sintassi per la definizione dei filtri è diversa nel caso si tratti di un filtro di cattura e di un filtro di visualizzazione.

Filtri Esempi di utilizzo dei filtri di cattura L espressione di un filtro di cattura prende la forma di una serie di primitive connesse da congiunzioni and/or e opzionalmente precedute da not [not] primitive [and or [not] primitive...] Esempi: Filtro di cattura del traffico telnet da e per un particolare host: tcp port 23 and host 10.0.0.5 Filtro di cattura del traffico http tranne quello che ha l indirizzo sorgente 10.0.0.5: tcp port 80 and not src host 10.0.0.5

Filtri Primitive [src dst] host <host> Permette di filtrare il traffico che interessa un host, specificandone l indirizzo IP oppure il nome; opzionalmente si può scegliere di filtrare il traffico considerando l host come sorgente o come destinazione. ether [src dst] host <ehost> Permette di filtrare il traffico che interessa un host, specificandone l indirizzo Ethernet; opzionalmente si può scegliere di filtrare il traffico considerando l host come sorgente o come destinazione. gateway host <host> Permette di filtrare i pacchetti che hanno usato un host come un Gataway [tcp udp] [src dst] port <port> Permette il filtraggio dei pacchetti spediti utilizzando il protocollo TCP o quello UDP utilizzando un certo numero di porta: 80 (HTTP), 23 (TELNET), ecc... (vedi manuale Wireshark)

Filtri - Come creare i filtri di cattura Dal menu Capture>>Option e poi cliccando sul pulsante Capture Filter, compare la relativa maschera. Ora selezionare un filtro dall elenco o aggiungerne uno scrivendolo nell apposito campo Filter string, seguendo le regole viste in precedenza.

Filtri Esempi di utilizzo dei filtri di visualizzazione Visualizza solo traffico IP da e verso 10.34.54.65 ip.addr == 10.43.54.65 Visualizza solo il traffico IP da 10.34.54.65 ip.src == 10.43.54.65 Visualizza solo il traffico IP verso 10.34.54.65 ip.dst == 10.43.54.65 Visualizza tutto il traffico tranne quello IP da o verso 10.43.54.65! ( ip.addr == 10.43.54.65 )

Filtri Esempi di utilizzo dei filtri di visualizzazione Le espressioni possono essere combinate logicamente per dare vita a filtri più complessi utilizzando le congiunzioni in tabella: && and or! not Esempio: (tcp.srcport == 80)&&(ip.src == 192.168.42.6) icmp

Filtri - Come creare i filtri: primo modo Quando si voglio scrivere dei filtri molto particolari, la soluzione più adatta rimane quella di scriverli a mano nell apposito campo Filter. Cliccando su Apply si applica il filtro appena editato; Cliccando su Clear si cancella il filtro appena editato.

Filtri - Come creare i filtri: secondo modo Cliccando su Expression compare la finestra popup dove è possibile creare il filtro, eventualmente utilizzando le relazioni (>, <,!=,..) e i valori appropriati.

ICMP Internet Control Massage Protocol Il protocollo ICMP è essenziale per la rete internet, e svolge delle funzioni di controllo per il livello IP. IP non è un protocollo affidabile, ma si affida ai protocolli di livello superiore TCP per raggiungere tale caratteristica. ICMP è utile quando ci sono da gestire delle situazioni anomale, notificare degli errori che si sono verificati durante il transito dei pacchetti in rete o per scambiarsi delle informazioni sulla rete. ICMP permette solamente la segnalazione di errori e malfunzionamenti, ma non prevede la possibilità di effettuare nessuna correzione. ICMP comunque non è pensato per rendere affidabile il protocollo IP.

ICMP Internet Control Massage Protocol Type: identifica il tipo di messaggio ICMP inviato che può essere di errore o di richiesta informazioni Code: permette una discrizione più precisa del messaggio ICMP Checksum: permette il controllo dei bit errati nel messaggio ICMP Additional Fields and Data (optional): dipendono dal messaggio ICMP, ma in generale contiene l intestazione e parte di dati del datagramma che ha generato l errore

ICMP Alcuni messaggi di errore Destination unreachable (Type = 3): generato da un gateway quando un host non è raggiungibile; oppure generato da un host quando si presenta un errore sull indirizzo dell entità di livello superiore a cui trasferire il datagramma Code: 0 = sottorete non raggiungibile 1 = host non raggiungibile 2 = protocollo non disponibile 3 = porta non disponibile 4 = frammentazione necassaria ma il bit Don t Fragment è posto a 1 (settato)

ICMP Alcuni messaggi di errore Time Exceeded (Type = 11): indica il superamento del tempo di attraversamento della rete di un datagramma Code: 0 = generato da un router quando il Time To Live si azzera e il datagramma viene distrutto 1 = generato da un host in attesa dei frammenti di un datagramma da riassemblare quando il Time To Live si azzera Source Quench (Type = 4): I datagrammi arrivano a destinazione con una velocità maggiore di quella necessaria a processarli; l host sorgente deve ridurre la velocità di trasmissione Redirect (Type = 5): generato da un router per indicare all host sorgente una strada migliore per raggiungere la destinazione

ICMP Alcuni messaggi di errore Echo request (Type = 8): inviato per sapere se una destinazione è raggiungibile o meno e il tempo di transito nella rete Echo reply (Type = 0): quando un host invia una richiesta ad un altro host la destinazione deve rispondere immediatamente Additional Fields and Data: Identifier: indica l insieme degli echo appartenenti allo stesso test Sequence Number: indica uno specifico echo all interno di quelli del test Optional Data: utilizzato per spedire dati di verifica

ICMP Comando ping Il comando ping permette di controllare se un host è raggiungibile o meno da una sorgente: 1. La sorgente invia alla destinazione un pacchetto ICMP di tipo echo request ; 2. Se la destinazione è raggiugibile allora questa invia indietro un messaggio ICMP di tipo echo reply ; 3. Se durante il transito del pacchetto ping nella rete si sono verificati degli inconvenienti, vengono spediti indietro verso la sorgente dei messaggi ICMP specifici.

ICMP Comando ping: richiami

ICMP Comando ping: opzioni Dal prompt dei comandi si digita ping /? per ottenere l help del comando

ICMP Comando ping: esempio 1 Il seguente comando permette di vedere se l host 192.168.1.1 è raggiungibile

ping.pcap ICMP Cattura ping: esempio 1

ping.pcap ICMP Comando ping request: dettaglio esempio 1 Internet Control Message Protocol Type: 8 (Echo (ping) request) Code: 0 Checksum: 0x4d5a [correct] Identifier: 0x0001 Sequence number: 1 (0x0001) Sequence number (LE): 256 (0x0100) Data (32 bytes) Dati inviati insieme al comado ping: 0000 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 abcdefghijklmnop 0010 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Data: 6162636465666768696a6b6c6d6e6f707172737475767761... [Length: 32] I dati inviati dal comando ping all host destinazione non sono altro che le lettere dell alfabeto a,b,c,d,e, i cui codici ascii sono rispettivamente 61,62,63,64,65,

ping.pcap ICMP Comando ping reply: dettaglio esempio 1 Internet Control Message Protocol Type: 0 (Echo (ping) reply) Code: 0 Checksum: 0x555a [correct] Identifier: 0x0001 Sequence number: 1 (0x0001) Sequence number (LE): 256 (0x0100) Data (32 bytes) Dati inviati insieme al comado ping: 0000 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 abcdefghijklmnop 0010 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Data: 6162636465666768696a6b6c6d6e6f707172737475767761... [Length: 32] I dati inviati dal comando ping all host destinazione non sono altro che le lettere dell alfabeto a,b,c,d,e, i cui codici ascii sono rispettivamente 61,62,63,64,65,

ICMP Comando ping: esempio 2 Il seguente comando permette di vedere se l host 192.168.1.1 è raggiungibile, inviando un pacchetto lungo 2000 byte (-l 2000) e settando il flag Don t Fragment (-f) per impedire la frammentazione dei pacchetti. In risposta si ha che il comando non viene eseguito perchè il pacchetto da spedire è più grande del MTU (Maximum Transfer Unit Unità massima di trasferimento) della rete ethernet (1500 byte) e andrebbe quindi frammentato: la frammentazione non è però possibile a causa del settaggio del flag Don t Fragment.

ICMP Comando ping: esempio 3 Il seguente comando permette di vedere se l host 192.168.1.1 è raggiungibile, inviando un pacchetto lungo 1472 byte (-l 1472) e settando il flag Don t Fragment (-f) per impedire la frammentazione dei pacchetti; inoltre viene imposto l invio di un solo comando ping (-n 1). Il comando in questione invia il seguente numero di byte sulla rete ethernet II 1472 (dati) + 8 (ICMP Echo header) + 20 (IP header) = 1500 byte Il comando va a buon fine perchè la MTU di una rete ethernet è di 1500 byte.

ping_f.pcap ICMP Cattura ping: esempio 3

ping_f.pcap ICMP Comando ping request: dettaglio esempio 3 Internet Protocol, Src: 192.168.1.100 (192.168.1.100), Dst: 192.168.1.1 (192.168.1.1) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) Total Length: 1500 Identification: 0x01c2 (450) Flags: 0x02 (Don't Fragment) Fragment offset: 0 Time to live: 128 Protocol: ICMP (1) Header checksum: 0x6fa9 [correct] Source: 192.168.1.100 (192.168.1.100) Destination: 192.168.1.1 (192.168.1.1) Internet Control Message Protocol Type: 8 (Echo (ping) request) Code: 0 Checksum: 0x4038 [correct] Identifier: 0x0001 Sequence number: 15 (0x000f) Sequence number (LE): 3840 (0x0f00) Data (1472 bytes) Possiamo notare che anche con il Don t Fragment settato il frame viene comunque inviato alla destinazione; infatti la lunghezza del frame complessivo è pari a: 1472 (dati) + 8 (ICMP Echo header) + 20 (IP header) = 1500 byte La sorgente 192.168.1.100 invia un comando ping - echo request - alla destinazione 192.168.1.1

ping_f.pcap ICMP Comando ping reply: dettaglio esempio 3 Internet Protocol, Src: 192.168.1.1 (192.168.1.1), Dst: 192.168.1.100 (192.168.1.100) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) Total Length: 1500 Identification: 0xc548 (50504) Flags: 0x00 Fragment offset: 0 Time to live: 64 Protocol: ICMP (1) Header checksum: 0x2c23 [correct] Source: 192.168.1.1 (192.168.1.1) Destination: 192.168.1.100 (192.168.1.100) Internet Control Message Protocol Type: 0 (Echo (ping) reply) Code: 0 Checksum: 0x4838 [correct] Identifier: 0x0001 Sequence number: 15 (0x000f) Sequence number (LE): 3840 (0x0f00) Data (1472 bytes) La sorgente 192.168.1.1 invia un comando ping - echo reply - alla destinazione 192.168.1.100, in seguito alla precedente request da parte di 192.168.1.100

ICMP Comando tracert Il comando tracert ( trace route) permette di conoscere il percorso seguito dai pacchetti inviati da una sorgente verso una particolare destinazione: 1. La sorgente invia alla destinazione un insieme di pacchetti ICMP di tipo echo con Time To Live (TTL) progressivo da 1 a 30 2. Ciascun nodo intermedio che vede transitare i pacchetti decrementa TTL 3. Il nodo che trova il TTL a o invia alla sorgente un messaggio ICMP di tipo Time exceeded 4. La sorgente costruisce una lista dei nodi che i pacchetti hanno attraversato fino alla destinazione 5. Sul video si vedranno l IP e il nome DNS dei nodi intermedi attraversati, nonchè il Round Trip Time (RTT)

ICMP Comando tracert tracert invia il primo pacchetto echo con un TTL pari a 1 e aumenta il TTL di 1 in ogni trasmissione successiva, fino alla risposta della destinazione o finché non viene raggiunto il TTL massimo. I messaggi ICMP Time Exceded" che i router intermedi inviano mostrano il percorso. Alcuni router tuttavia rilasciano automaticamente pacchetti con TTL scaduti e tali pacchetti risultano invisibili a TRACERT.

tracert_istitutovolterraelia.pcap ICMP Comando tracert: esempio 1 c:\tracert www.istitutovolterraelia.it Filtro consigliato da applicare al file indicato in alto a destra nella slide: (icmp.type==0) (icmp.type==8)

tracert_istruzione.pcap ICMP Cattura tracert: esempio 2 c:\tracert 89.97.132.192 Filtro consigliato da applicare al file indicato in alto a destra nella slide: (icmp.type==0) (icmp.type==8)

tracert_istruzione2.pcap ICMP Cattura tracert: esempio 3 c:\tracert www.istruzione.it Filtro consigliato da applicare al file indicato in alto a destra nella slide: (icmp.type==0) (icmp.type==8)

tracert_html.pcap ICMP Cattura tracert: esempio 4 c:\tracert www.html.it Filtro consigliato da applicare al file indicato in alto a destra nella slide: (icmp.type==0) (icmp.type==8)

tracert_retenonvalida.pcap ICMP Cattura tracert: esempio 5 È possibile utilizzare tracert per scoprire il punto della rete in cui un pacchetto si è interrotto. Nell'esempio riportato di seguito il gateway predefinito ha rilevato che non esiste alcun percorso valido per l'host in 22.110.0.1. Probabilmente il router ha un problema di configurazione oppure la rete 22.110.0.0 non esiste, riflettendo un indirizzo IP non valido. c:\tracert 22.110.0.1

tracert_retenonvalida.pcap ICMP RTT (Round Trip Time) I comandi ping e tracert forniscono il tempo impiegato da un messaggio per andare da un punto all altro della rete e tornare al punto di partenza, detto Tempo di andata e ritorno (RTT - Round Trip Time). Tale misura può essere utilizzata per analizzare le prestazioni dal punto di vista del ritardo (delay). Strumenti di misura dell RTT ping calcola l RTT rispetto ad una destinazione finale per un messaggio di dimensioni standard (32B o 64B); tracert calcola l RTT per ogni nodo intermedio fino alla destinazione finale per un messaggio di dimensioni standard.

ARP Operazioni del protocollo 1. Il mittente conosce IP address del destinatario; 2. Il protocollo IP chiede al protocollo ARP di creare una query di richiesta per trovare l associazione tra IP logico e fisico, il campo indirizzo fisico destinatario viene posto a 0; 3. Il datagram viene trasferito a livello data link ed inviato in broadcast a tutti gli utenti della rete locale; 4. Alla ricezione da parte degli hosts e routers della rete tutti distruggono il pacchetto tranne l host che avendo riconosciuto il suo IP logico trattiene il pacchetto e ne riempie il campo IP fisico destinatario; 5. Il destinatario quindi risponde alla query con un nuovo pacchetto contenente l informativa, ID fisico, in modalità unicast; 6. Il mittente, che ha completa conoscenza dei dati del destinatario, può ora inviare il pacchetto IP iniziale al destinatario;

Modalità di trasmissione dei pacchetti Unicast: la trasmissione dei pacchetti ha un destinatario ben preciso. Broadcast: la trasmissione dei pacchetti interessa tutti i calcolatori della rete. Multicast: la trasmissione dei pacchetti interessa un gruppo di calcolatori della rete. Anycast: la trasmissione dei pacchetti interessa un determinato host che fa parte di un gruppo di calcolatori della rete.

ARP Alcuni campi Tipo Hardware (HTYPE): 16 bit individua il tipo di rete ( per la Ethernet = 1); Tipo Protocollo (PTYPE): 16 bit individua il tipo di protocollo (IPv4 = 0800base16); Dim. hardware (HLEN): dimensione a 8 bit, fornisce la dimensione in byte dell indirizzo fisico; Dim. protocollo (PLEN): dimensione a 8 bit, fornisce la dimensione in byte dell indirizzo logico; Operazione (OPER): dimensione a 16 bit, vale 1 per la richiesta 2 per la risposta;

bootstrap_protocol.pcap ARP - Cattura

bootstrap_protocol.pcap ARP Dettaglio della cattura: request Address Resolution Protocol (request) Hardware type: Ethernet (0x0001) Protocol type: IP (0x0800) Hardware size: 6 Protocol size: 4 Opcode: request (0x0001) [Is gratuitous: False] Sender MAC address: GemtekTe_af:90:e4 (00:1a:73:af:90:e4) Sender IP address: 192.168.1.100 (192.168.1.100) Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00) Target IP address: 192.168.1.1 (192.168.1.1) Il mittente (sender) conosce l IP del destinatario (targhet); il protocollo IP chiede al protocollo ARP di creare una richiesta da inviare in broadcast a tutte le entità di rete, per trovare l associazione tra IP logico e fisico; il campo indirizzo fisico destinatario viene posto a 0.

bootstrap_protocol.pcap ARP Dettaglio della cattura: replay Address Resolution Protocol (reply) Hardware type: Ethernet (0x0001) Protocol type: IP (0x0800) Hardware size: 6 Protocol size: 4 Opcode: reply (0x0002) [Is gratuitous: False] Sender MAC address: Shenzhen_85:1f:c1 (00:1e:10:85:1f:c1) Sender IP address: 192.168.1.1 (192.168.1.1) Target MAC address: GemtekTe_af:90:e4 (00:1a:73:af:90:e4) Target IP address: 192.168.1.100 (192.168.1.100) Il destinatario risponde alla richiesta in modalità unicast, con un nuovo pacchetto contenente i propri dati: ID fisico. Il mittente, ora ha completa conoscenza dei dati del destinatario, può quindi inviare il pacchetto IP iniziale al destinatario.

IPv4 - Richiami Permette di instradare il pacchetto all interno della rete (livello 3) Vers: versione IPv4 o IPv6 IHL: Lunghezza dell header in parole di 32 bit (5 se non ci sono opzioni) Tipo di servizio: caratterizza affidabilità e velocità richieste Lunghezza totale: header + dati (in byte) Identificazione: tutti i frammenti di uno stesso pacchetto hanno lo stesso valore Offset: indice del frammento nel pacchetto

tcp.pcap IPv4 Cattura pacchetto: esempio 1

tcp.pcap IPv4 Cattura pacchetto: dettaglio esempio 1 Internet Protocol, Src: 192.168.1.100 (192.168.1.100), Dst: 192.168.1.1 (192.168.1.1) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00).....0. = ECN-Capable Transport (ECT): 0......0 = ECN-CE: 0 Total Length: 52 Identification: 0x092e (2350) Flags: 0x02 (Don't Fragment) 0...... = Reserved bit: Not set.1..... = Don't fragment: Set..0.... = More fragments: Not set Fragment offset: 0 Time to live: 128 Protocol: TCP (6) Header checksum: 0x6de0 [correct] Source: 192.168.1.100 (192.168.1.100) Destination: 192.168.1.1 (192.168.1.1)

IPv4 Frammentazione In un collegamento fra un sender ed un receiver il protocollo dello strato di collegamento può variare per ciascun link del percorso La massima quantità di dati che un pacchetto dello strato di collegamento può trasportare è detta MTU (Maximum Transfer Unit) Non tutti i protocolli dello strato di collegamento supportano la stessa MTU Se un router deve inoltrare un datagram IP su di un link con MTU inferiore alla lunghezza del pacchetto sarà necessario frammentare i dati del datagram IP in più datagram IP di dimensioni inferiori Ciascuno di questi datagram più piccoli è detto frammento I frammenti devono essere riassemblati prima di raggiungere lo strato di trasporto della destinazione Per non sovraccaricare i router della rete, il lavoro di riassemblaggio viene svolto dai terminali

ip_fragment.pcap IPv4 Frammentazione Possiamo vedere in questo esempio l utilizzo dei campi: Identificazione e Offset Frammento. Istruzioni per l uso: Lanciare Wireshark; dal prompt dei comandi di Windows digitare c:\ping 192.168.1.1 l 10000, per inviare un pacchetto di lunghezza pari a 10000 bytes alla destinazione 192.168.1.1; siccome la rete che utilizziamo ha un MTU di 1500 il pacchetto viene essere frammentato in diversi frammenti; eseguita questa operazione si ferma la cattura con wireshark e si analizzano i pacchetti catturati con particolare attenzione ai campi identification e fragment offset. Si potrà notare che tutti i frammenti di uno stesso pacchetto hanno lo stesso valore identification e diverso valore per il campo offset.

ip_fragment.pcap IPv4 Cattura frammentazione Identification Fragment Offset

IPv6 - Richiami formato generale degli indirizzi: X:X:X:X:X:X:X:X Ogni campo rappresenta 16 bit Rappresentazione esadecimale es.: 2001:0000:1234:0000:0000:00D0:ABCD:0532 nelle URL gli indirizzi tra parentesi quadre http://[2001:1:4f3a::206:ae14]:80/home.html : usato anche per separare No. porta da URL

IPv6 - Richiami

bootstrap_protocol.pcap IPv6 - Cattura

bootstrap_protocol.pcap IPv6 Dettaglio della cattura Internet Protocol Version 6, Src: fe80::c536:3860:5e9c:656a (fe80::c536:3860:5e9c:656a), Dst: ff02::2 (ff02::2) 0110... = Version: 6... 0000 0000............... = Traffic class: 0x00000000... 0000 00................. = Differentiated Services Field: Default (0x00000000)........0................ = ECN-Capable Transport (ECT): Not set.........0............... = ECN-CE: Not set......... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000 Payload length: 16 Next header: ICMPv6 (0x3a) Hop limit: 255 Source: fe80::c536:3860:5e9c:656a (fe80::c536:3860:5e9c:656a) Destination: ff02::2 (ff02::2) Internet Control Message Protocol v6 Type: 133 (Router solicitation) Code: 0 Checksum: 0xb5e2 [correct] ICMPv6 Option (Source link-layer address)

TCP - Richiami Il protocollo TCP è stato progettato per fornire un flusso di byte affidabile, da sorgente a destinazione, su una rete non affidabile e si occupa di: accettare i dati dal livello applicazione; spezzarli in segmenti (tipicamente di circa 1500 byte) consegnarli al livello network ricevere i segmenti dal livello network rimetterli in ordine, eliminando buchi e doppioni consegnare i dati in ordine al livello applicazione

TCP Creazione di una connessione Per analizzare il protocollo TCP di livello trasporto faremo una cattura dell apertura di una connessione che utilizza il metodo Three-way Handshake (accordo a tre mani), illustrato nella figura seguente.

tcp.pcap TCP Cattura

tcp.pcap TCP Dettaglio della cattura: SYN Transmission Control Protocol, Src Port: 49358 (49358), Dst Port: http (80), Seq: 0, Len: 0 Source port: 49358 (49358) Destination port: http (80) [Stream index: 1] Sequence number: 0 (relative sequence number) Header length: 32 bytes Flags: 0x02 (SYN) 0...... = Congestion Window Reduced (CWR): Not set.0..... = ECN-Echo: Not set..0.... = Urgent: Not set...0... = Acknowledgement: Not set... 0... = Push: Not set....0.. = Reset: Not set.....1. = Syn: Set......0 = Fin: Not set Window size: 8192 Checksum: 0xb80c [validation disabled] Options: (12 bytes) Legenda Sequence number: il numero d ordine del primo byte contenuto nel campo dati Acknowledgment: il numero d ordine del prossimo byte atteso Stream index: numero d ordine dello stream di dati proveniente dal livello applicazione

tcp.pcap TCP Dettaglio della cattura: SYN,ACK Transmission Control Protocol, Src Port: http (80), Dst Port: 49358 (49358), Seq: 0, Ack: 1, Len: 0 Source port: http (80) Destination port: 49358 (49358) [Stream index: 1] Sequence number: 0 (relative sequence number) Acknowledgement number: 1 (relative ack number) Header length: 32 bytes Flags: 0x12 (SYN, ACK) 0...... = Congestion Window Reduced (CWR): Not set.0..... = ECN-Echo: Not set..0.... = Urgent: Not set...1... = Acknowledgement: Set... 0... = Push: Not set....0.. = Reset: Not set.....1. = Syn: Set......0 = Fin: Not set Window size: 5840 Checksum: 0xc579 [validation disabled] Options: (12 bytes) [SEQ/ACK analysis] Legenda Sequence number: il numero d ordine del primo byte contenuto nel campo dati Acknowledgment: il numero d ordine del prossimo byte atteso Stream index: numero d ordine dello stream di dati proveniente dal livello applicazione

tcp.pcap TCP Dettaglio della cattura: ACK Transmission Control Protocol, Src Port: 49358 (49358), Dst Port: http (80), Seq: 1, Ack: 1, Len: 0 Source port: 49358 (49358) Destination port: http (80) [Stream index: 1] Sequence number: 1 (relative sequence number) Acknowledgement number: 1 (relative ack number) Header length: 20 bytes Flags: 0x10 (ACK) 0...... = Congestion Window Reduced (CWR): Not set.0..... = ECN-Echo: Not set..0.... = Urgent: Not set...1... = Acknowledgement: Set... 0... = Push: Not set....0.. = Reset: Not set.....0. = Syn: Not set......0 = Fin: Not set Window size: 17520 (scaled) Checksum: 0x0bf9 [validation disabled] [SEQ/ACK analysis] Legenda Sequence number: il numero d ordine del primo byte contenuto nel campo dati Acknowledgment: il numero d ordine del prossimo byte atteso Stream index: numero d ordine dello stream di dati proveniente dal livello applicazione

tcp.pcap TCP Follow TCP stream Per analizzare l intero contenuto di un determinato stream di dati è possibile utilizzare l opzione Follow TCP Stream (dopo aver selezionato in precedenza dal Packets Pane di Wireshark un pacchetto TCP catturato ) Analyze>>Follow TCP Stream Istruzioni per l uso: dopo aver caricato con Wireshark Il file tcp.pcap introdurre nel text box Filter il seguente filtro: tcp.stream==1; per vedere la schermata qui a fianco, dal menu cliccare su Analyze e poi Follow TCP Stream

tcp.pcap TCP Graph analysis Per analizzare graficamente l intero contenuto di un determinato stream di dati è possibile utilizzare l opzione Flow Graph (dopo aver selezionato in precedenza nel Packets Pane di Wireshark un pacchetto TCP catturato ) Statistics>>Flow Graph Istruzioni per l uso: dopo aver caricato con Wireshark Il file tcp.pcap introdurre nel text box Filter il seguente filtro: tcp.stream==3; per vedere la schermata qui a fianco, dal menu cliccare su Statistics e poi Su Flow Graph

UDP - Richiami Il protocollo UDP fornisce un servizio di trasporto datagram non affidabile; è utilizzato per comunicazioni veloci, per richieste/risposte fra un client e un server, con applicazioni in cui la rapidità di consegna è più importante della sua accuratezza.

bootstrap_protocol.pcap UDP - Cattura

bootstrap_protocol.pcap UDP Dettaglio della cattura User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67) Source port: bootpc (68) Destination port: bootps (67) Length: 308 Checksum: 0x468c [validation disabled]

DHCP Affitto dell IP e formato del pacchetto Il protocollo DHCP (Dinamic Host Configuration Protocol) è progettato per assegnare dinamicamente un indirizzo IP agli host che si connettono alla rete. Il DHCP deve tenere una tabella con l associazione tra indirizzo logico IP e indirizzo fisico MAC, e una tabella con l elenco degli indirizzi IP disponibili per l assegnamento. L indirizzo IP viene assegnato ad un host con un certo tempo di lease entro il quale l host anche ricollegandosi più volte ottiene sempre lo stesso indirizzo.

DHCP - Procedura per l affitto dell IP

bootstrap_protocol.pcap DHCP Cattura

DHCP Dettaglio della cattura: discovery bootstrap_protocol.pcap Bootstrap Protocol Message type: Boot Request (1) Hardware type: Ethernet Hardware address length: 6 Hops: 0 Transaction ID: 0x22c03b5b Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 (0.0.0.0) Your (client) IP address: 0.0.0.0 (0.0.0.0) Next server IP address: 0.0.0.0 (0.0.0.0) Relay agent IP address: 0.0.0.0 (0.0.0.0) Client MAC address: GemtekTe_af:90:e4 (00:1a:73:af:90:e4) Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP Option: (t=53,l=1) DHCP Message Type = DHCP Discover Option: (t=61,l=7) Client identifier Option: (t=12,l=10) Host Name = "PC-Lelio-7" Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0" Option: (t=55,l=12) Parameter Request List End Option Padding

DHCP Dettaglio della cattura: offer bootstrap_protocol.pcap Bootstrap Protocol Message type: Boot Reply (2) Hardware type: Ethernet Hardware address length: 6 Hops: 0 Transaction ID: 0x22c03b5b Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 (0.0.0.0) Your (client) IP address: 192.168.1.100 (192.168.1.100) Next server IP address: 0.0.0.0 (0.0.0.0) Relay agent IP address: 0.0.0.0 (0.0.0.0) Client MAC address: GemtekTe_af:90:e4 (00:1a:73:af:90:e4) Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP Option: (t=53,l=1) DHCP Message Type = DHCP Offer Option: (t=54,l=4) DHCP Server Identifier = 192.168.1.1 Option: (t=51,l=4) IP Address Lease Time = 1 day Option: (t=1,l=4) Subnet Mask = 255.255.255.0 Option: (t=3,l=4) Router = 192.168.1.1 Option: (t=6,l=4) Domain Name Server = 192.168.1.1 End Option Padding

Wireshark DHCP Dettaglio della cattura: request Message type: Boot Request (1) Hardware type: Ethernet Hardware address length: 6 Hops: 0 Transaction ID: 0x22c03b5b Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 (0.0.0.0) Your (client) IP address: 0.0.0.0 (0.0.0.0) Next server IP address: 0.0.0.0 (0.0.0.0) Relay agent IP address: 0.0.0.0 (0.0.0.0) Client MAC address: GemtekTe_af:90:e4 (00:1a:73:af:90:e4) Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP Option: (t=53,l=1) DHCP Message Type = DHCP Request Option: (t=61,l=7) Client identifier Option: (t=50,l=4) Requested IP Address = 192.168.1.100 Option: (t=54,l=4) DHCP Server Identifier = 192.168.1.1 Option: (t=12,l=10) Host Name = "PC-Lelio-7" Option: (t=81,l=13) Client Fully Qualified Domain Name Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0" Option: (t=55,l=12) Parameter Request List End Option bootstrap_protocol.pcap

DHCP Dettaglio della cattura: ack bootstrap_protocol.pcap Bootstrap Protocol Message type: Boot Reply (2) Hardware type: Ethernet Hardware address length: 6 Hops: 0 Transaction ID: 0x22c03b5b Seconds elapsed: 0 Bootp flags: 0x0000 (Unicast) Client IP address: 0.0.0.0 (0.0.0.0) Your (client) IP address: 192.168.1.100 (192.168.1.100) Next server IP address: 0.0.0.0 (0.0.0.0) Relay agent IP address: 0.0.0.0 (0.0.0.0) Client MAC address: GemtekTe_af:90:e4 (00:1a:73:af:90:e4) Client hardware address padding: 00000000000000000000 Server host name not given Boot file name not given Magic cookie: DHCP Option: (t=53,l=1) DHCP Message Type = DHCP ACK Option: (t=54,l=4) DHCP Server Identifier = 192.168.1.1 Option: (t=51,l=4) IP Address Lease Time = 1 day Option: (t=1,l=4) Subnet Mask = 255.255.255.0 Option: (t=3,l=4) Router = 192.168.1.1 Option: (t=6,l=4) Domain Name Server = 192.168.1.1 End Option Padding

HTTP Descrizione e architettura di riferimento Il protocollo di trasferimento del Web è HTTP (HyperText Transfer Protocol). Ogni iterazione consiste in una richiesta da parte del browser al server in formato ASCII, e in una risposta che torna indietro. Basato su una architettura client/server. L esempio seguente ci permette di analizzare con wireshark i messagi che sono generati dal server e dal client, quando quest ultimo richiede la visualizzazione di una pagina Web.

index.html HTTP Pagina Web: index.html Questo esempio ci permette di analizzare con wireshark i messagi che sono generati dal server e dal client quando quest ultimo richiede la visualizzazione di una pagina Web. La pagina in questione è la index.html (presente sul server Web 192.168.1.100) e contiene un immagine e del testo; il codice sorgente della pagina è visibile nella figura a fianco.

HTTP Sequenza

http.pcap HTTP Cattura

Tshark Wireshark testuale dalla riga di comando La versione testuale di Wireshark si chiama TShark. Può essere lanciato il comando tshark dal prompt dei comandi dopo essere entrati nella directory di installazione (quella di Wireshark); oppure è possibile aggiungere nel path (vedi slide successiva) del sistema il percorso della directory di installazione, in modo tale da poter richiamare il comando in qualsiasi directory ci troviamo.

Tshark Inserimento nel Path Da Windows 7 Start>>Pannello di controllo>>sistema seguire i passi 1, 2, 3 ed aggiungere nel Path il percorso della directory di installazione di Wireshark. Fatto ciò, è possibile lanciare il comando tshark da qualsiasi directory ci si trovi.