Tutorial approfondito di Wireshark

Tutorial approfondito di Wireshark
Wireshark è uno strumento di ispezione del traffico di rete open source e gratuito. Cattura e visualizza i pacchetti in tempo reale per l'analisi offline in un formato leggibile dall'uomo con dettagli microscopici. Richiede una solida conoscenza del networking di base ed è considerato uno strumento essenziale per gli amministratori di sistema ed esperti di sicurezza della rete.

Wireshark è lo strumento di riferimento Defacto per diversi problemi di rete che variano rispetto alla risoluzione dei problemi di rete, all'esame dei problemi di sicurezza, all'ispezione del traffico di rete di un'applicazione sospetta, alle implementazioni del protocollo di debug, insieme agli scopi di apprendimento del protocollo di rete, ecc.

Il progetto Wireshark è stato avviato nel 1998. Grazie al contributo volontario dell'esperto di networking globale, continua a fare aggiornamenti per le nuove tecnologie e gli standard di crittografia. Quindi, è di gran lunga uno dei migliori strumenti di analizzatore di pacchetti ed è utilizzato come strumento commerciale standard da varie agenzie governative, istituti educativi e organizzazioni senza scopo di lucro.

Lo strumento Wireshark è composto da un ricco set di funzionalità. Alcuni di loro sono i seguenti:

  • Multiplatform: è disponibile per i sistemi UNIX, MAC e Window.
  • Cattura i pacchetti da vari media di rete, i.e., LAN wireless, Ethernet, USB, Bluetooth, ecc.
  • Apre i file di pacchetti catturati da altri programmi come Oracle Snoop e AtmsNoop, NMAP, TCPDump, Microsoft Network Monitor, Snort e molti altri.
  • Risparmia e esporta i dati di pacchetti catturati in vari formati (CSV, XML, testo in chiaro, ecc.).
  • Fornisce supporto di descrizione per protocolli tra cui SSL, WPA/WPA2, IPSEC e molti altri.
  • Include i filtri di acquisizione e visualizzazione.

Tuttavia, Wireshark non ti avvertirà di alcuna attività dannosa. Ti aiuterà solo a ispezionare e identificare ciò che sta accadendo sulla tua rete. Inoltre, analizzerà solo il protocollo/attività di rete e non eseguirà alcuna altra attività come l'invio/intercettazione dei pacchetti.

Questo articolo fornisce un tutorial approfondito che inizia con le basi (i.e., Filtro, livelli di rete Wireshark, ecc.) e ti porta nella profondità dell'analisi del traffico.

Filtri Wireshark

WireShark viene fornito con potenti motori a filtro, filtri di acquisizione e filtri di visualizzazione, per rimuovere il rumore dalla rete o traffico già catturato. Questi filtri restringono il traffico non richiesto e visualizzano solo i pacchetti che si desidera vedere. Questa funzionalità aiuta gli amministratori di rete a risolvere i problemi ai problemi.

Prima di entrare nei dettagli dei filtri. Nel caso in cui ti stia chiedendo come acquisire il traffico di rete senza alcun filtro, è possibile premere Ctrl+E o andare all'opzione di acquisizione sull'interfaccia WireShark e fare clic su Start.

Ora, scaviamo in profondità nei filtri disponibili.

Filtro di acquisizione

Wireshark fornisce supporto per ridurre le dimensioni di una cattura di pacchetti grezzi consentendo di utilizzare un filtro di acquisizione. Ma cattura solo il traffico dei pacchetti che corrisponde al filtro e ne ignora il resto. Questa funzione ti aiuta a monitorare e analizzare il traffico di un'applicazione specifica utilizzando la rete.

Non confondere questo filtro con i filtri di visualizzazione. Non è un filtro del display. Questo filtro appare nella finestra principale necessaria da impostare prima di avviare l'acquisizione dei pacchetti. Inoltre, non è possibile modificare questo filtro durante l'acquisizione.

Puoi andare al Catturare Opzione dell'interfaccia e selezionare Filtri di acquisizione.

Ti verrà richiesto una finestra, come mostrato nell'istantanea. È possibile scegliere qualsiasi filtro dall'elenco dei filtri o aggiungere/creare un nuovo filtro facendo clic su + pulsante.

Esempi dell'elenco dei filtri di acquisizione utili:

  • host ip_address - cattura il traffico, solo tra l'indirizzo IP comunicante specifico
  • Net 192.168.0.0/24 - cattura il traffico tra intervalli di indirizzo IP/CIDRS
  • Porta 53 - cattura il traffico DNS
  • TCP Portrange 2051-3502 - cattura il traffico TCP dall'intervallo di porte 2051-3502
  • Porta non 22 e non 21 - Cattura tutto il traffico tranne SSH e FTP

Visualizza filtro

I filtri di visualizzazione consentono di nascondere alcuni pacchetti dal traffico di rete già catturato. Questi filtri possono essere aggiunti sopra l'elenco acquisito e possono essere modificati al volo. Ora puoi controllare e restringere i pacchetti su cui si desidera concentrarti nascondendo i pacchetti non necessari.

È possibile aggiungere filtri nella barra degli strumenti del filtro di visualizzazione proprio sopra il primo riquadro contenente informazioni sui pacchetti. Questo filtro può essere utilizzato per visualizzare i pacchetti in base a protocollo, indirizzo IP di origine, indirizzo IP di destinazione, porte, valore e informazioni dei campi, confronto tra campi e molto altro.

Giusto! È possibile creare una combinazione di filtri usando operatori logici come ==.!=, ||, &&, ecc.

Di seguito sono riportati alcuni esempi di filtri di visualizzazione di un singolo protocollo TCP e un filtro di combinazione:

Livelli di rete in Wireshark

Oltre all'ispezione dei pacchetti, Wireshark presenta livelli OSI che aiutano nel processo di risoluzione dei problemi. Wireshark mostra gli strati in ordine inverso, come ad esempio:

  1. Strato fisico
  2. Livello di collegamento dati
  3. Livello di rete
  4. Strato di trasporto
  5. Livello dell'applicazione

Si noti che Wireshark non mostra sempre il livello fisico. Ora scaviamo in ogni livello per comprendere l'aspetto importante dell'analisi dei pacchetti e ciò che ogni livello presenta in Wireshark.

Strato fisico

Il livello fisico, come mostrato nella seguente istantanea, presenta il riepilogo fisico del frame, come le informazioni sull'hardware. Come amministratore di rete, generalmente non si estraggono informazioni da questo livello.

Livello di collegamento dati

Il prossimo livello di collegamento dati contiene l'indirizzo della scheda di rete di origine e di destinazione. È relativamente semplice in quanto fornisce solo il telaio dal laptop al router o il fotogramma adiacente successivo nel mezzo fisico.

Livello di rete

Il livello di rete presenta indirizzi IP di origine e destinazione, versione IP, lunghezza dell'intestazione, lunghezza totale dei pacchetti e carichi di altre informazioni.

Strato di trasporto

In questo livello, Wireshark visualizza informazioni sul livello di trasporto, che consiste nella porta SRC, dalla porta DST, dalla lunghezza dell'intestazione e dal numero di sequenza che cambia per ciascun pacchetto.

Livello dell'applicazione

Nel livello finale, puoi vedere quale tipo di dati viene inviato sul mezzo e quale applicazione viene utilizzata, come FTP, HTTP, SSH, ecc.

Analisi del traffico

Analisi del traffico ICMP

ICMP viene utilizzato per il report e il test degli errori determinando se i dati raggiungono la destinazione prevista in tempo o meno. Ping Utility utilizza i messaggi ICMP per testare la velocità della connessione tra i dispositivi e segnalare quanto tempo impiega il pacchetto per raggiungere la sua destinazione, quindi torna indietro.

Il ping utilizza il messaggio ICMP_ECHO_REQUEST sul dispositivo sulla rete e il dispositivo risponde tramite Messaggio ICMP_ECHO_Reply. Per catturare i pacchetti su Wireshark, avviare la funzione di acquisizione di Wireshark, aprire il terminale ed eseguire il seguente comando:

Ubuntu $ Ubuntu: ~ $ ping Google.com

Utilizzo Ctrl+c Per terminare il processo di acquisizione dei pacchetti in Wireshark. Nell'istantanea seguente, puoi notare il Pacchetto ICMP inviato = pacchetto ICMP ricevuto con perdita di pacchetti 0%.

Nel riquadro di acquisizione Wireshark, selezionare il primo pacchetto ICMP_ECHO_REQUEST e osservare i dettagli aprendo il riquadro di Wireshark centrale.

Nel livello di rete, puoi notare la fonte Src Come il mio IP_ADDRESS, mentre la destinazione DST ip_address è di Google Server, mentre il livello IP menziona il protocollo per essere ICMP.

Ora, ingrandiamo i dettagli del pacchetto ICMP espandendo il protocollo di messaggi di controllo Internet e decodifica le caselle evidenziate nell'istantanea seguente:

  • Tipo: campo a 08 bit impostato su 8 significa messaggio di richiesta eco
  • Codice: sempre zero per i pacchetti ICMP
  • checksum: 0x46c8
  • Numero identificatore (BE): 19797
  • Numero identificatore (Le): 21837
  • Numero di sequenza (BE): 1
  • Numero di sequenza (Le): 256

L'identificatore e i numeri di sequenza sono abbinati per aiutare a identificare le risposte alle richieste di eco. Allo stesso modo, prima della trasmissione dei pacchetti, il checksum viene calcolato e aggiunto al campo da confrontare con il checksum nel pacchetto di dati ricevuto.

Ora, nel pacchetto di risposta ICMP, nota il livello IPv4. Gli indirizzi di origine e di destinazione sono stati scambiati.

Nel livello ICMP, verificare e confrontare i seguenti campi importanti:

  • Tipo: campo a 08 bit impostato su 0 significa messaggio di risposta eco
  • Codice: sempre 0 per i pacchetti ICMP
  • checksum: 0x46c8
  • Numero identificatore (BE): 19797
  • Numero identificatore (Le): 21837
  • Numero di sequenza (BE): 1
  • Numero di sequenza (Le): 256

Puoi notare che la risposta ICMP fa eco allo stesso checksum, identificatore e numero di sequenza.

Analisi del traffico HTTP

HTTP è un protocollo di livello per l'applicazione di trasferimento ipertestuale. Viene utilizzato dal World Wide Web e definisce le regole quando il client/server HTTP trasmette/riceve comandi HTTP. I metodi HTTP più comunemente usati Ae post e ottengono:

INVIARE: Questo metodo viene utilizzato per inviare in modo sicuro informazioni riservate al server che non appare nell'URL.

OTTENERE: Questo metodo viene generalmente utilizzato per recuperare i dati dalla barra degli indirizzi da un server Web.

Prima di scavare più a fondo nell'analisi dei pacchetti HTTP, dimostreremo brevemente il TCP a tre vie di Wireshark.

TCP a tre vie di mano

In una stretta di mano a tre, il client avvia una connessione inviando un pacchetto syn e ricevendo una risposta di syn-adck dal server, che è riconosciuta dal client. Utilizzeremo il comando NMAP TCP Connect Scan per illustrare Handshake TCP tra client e server.

Ubuntu $ Ubuntu: ~ $ nmap -st Google.com

Nel riquadro di acquisizione dei pacchetti Wireshark, scorrere verso la parte superiore della finestra per notare vari manuali a tre vie stabiliti in base a determinate porte.

Usa il TCP.porta == 80 Filtro per vedere se la connessione è stabilita tramite la porta 80. Puoi notare la mano a tre vie completa, io.e., Syn, Syn-Ack, E Ack, Evidenziato nella parte superiore dell'istantanea, illustrando una connessione affidabile.

Analisi dei pacchetti HTTP

Per l'analisi dei pacchetti HTTP, vai al browser e incolla l'URL della documentazione WireShark: http: // www.wafflemaker.com e scarica la guida dell'utente pdf. Nel frattempo, Wireshark deve catturare tutti i pacchetti.

Applica un filtro HTTP e cerca il Http get Richiesta inviata al server dal client. Per visualizzare un pacchetto HTTP, selezionarlo ed espandere il livello dell'applicazione nel riquadro centrale. Ci possono essere molte intestazioni in una richiesta, a seconda del sito Web e del browser. Analizzeremo le intestazioni presenti nella nostra richiesta nell'istantanea seguente.

  • Metodo di richiesta: Il metodo della richiesta HTTP è GET
  • Ospite: Identifica il nome del server
  • Utente-agente: informa il tipo di browser lato client
  • Accetta, accetta-codifica, accetta in lingua: Informa il server sul tipo di file, codifica accettata sul lato client, i.e., gzip, ecc., e la lingua accettata
  • Cache-Control: mostra come vengono memorizzate le informazioni richieste
  • Pragma: mostra il nome e i valori del cookie che il browser detiene per il sito Web
  • Connessione: Intestazione che controlla se la connessione rimane aperta dopo la transazione

Nel Http ok Pacchetto dal server a client, osservando le informazioni nel livello del protocollo di trasferimento ipertestuale "200 OK". Queste informazioni indicano un normale trasferimento riuscito. Nel pacchetto HTTP OK, puoi osservare diverse intestazioni rispetto al Http get pacchetto. Queste intestazioni contengono informazioni sul contenuto richiesto.

  • Versione di risposta: informa sulla versione HTTP
  • Codice di stato, frase di risposta: inviato dal server
  • Data: Il tempo in cui il server ha ricevuto il pacchetto HTTP
  • Server: Dettagli del server (Nginx, Apache, ecc.)
  • Tipo di contenuto: Tipo di contenuto (JSON, TXT/HTML, ecc.)
  • Lunghezza del contenuto: durata totale del contenuto; Il nostro file è 39696 byte

In questa sezione, hai imparato come funziona HTTP e cosa succede ogni volta che richiediamo contenuti sul Web.

Conclusione

Wireshark è lo strumento più popolare e potente della rete sniffer e analisi. È ampiamente utilizzato nelle attività di analisi dei pacchetti quotidiane in varie organizzazioni e istituti. In questo articolo, abbiamo studiato alcuni argomenti da principiante a medio livello di Wireshark in Ubuntu. Abbiamo imparato il tipo di filtri offerti da Wireshark per l'analisi dei pacchetti. Abbiamo coperto il modello di livello di rete in Wireshark ed eseguito analisi dei pacchetti ICMP e HTTP approfonditi.

Tuttavia, apprendere e comprendere vari aspetti di questo strumento è un lungo viaggio difficile. Quindi, ci sono molte altre lezioni e tutorial online disponibili per aiutarti in argomenti specifici di Wireshark. È possibile seguire la Guida per l'utente ufficiale disponibile sul sito Web Wireshark. Inoltre, una volta che hai costruito la comprensione di base dell'analisi del protocollo, si consiglia anche di utilizzare uno strumento come Varonis che ti indica la potenziale minaccia e quindi utilizzare Wireshark per indagare per una migliore comprensione.