TCPDUMP Guida per principianti

TCPDUMP Guida per principianti
TCPDUMP è un analizzatore di pacchetti di dati wireless di dati wireless gratuito e open source che funziona sull'interfaccia della riga di comando. È lo strumento CLI più comunemente usato per analizzare il traffico di rete. TCPDump consente agli utenti di vedere, leggere o acquisire il traffico di rete trasmesso su una rete allegata al computer. È utile nell'amministrazione del sistema, monitoraggio del traffico di rete (per problemi o altro).

Inizialmente, è stato scritto nel 1988 da quattro lavoratori del gruppo di ricerca di rete presso Lawrence Berkeley Laboratory in California. Fu organizzato undici anni dopo da Micheal Richardson e Bill Fenner nel 1999, che hanno creato il sito TCPDump. TCPDump funziona su tutti i sistemi operativi simili a Unix. La versione di Windows di TCPDump si chiama Windump e utilizza WinPCap, l'alternativa di Windows per libpcap.

Usa lo snap per installare TCPDump:

$ sudo snap install tcpdump

Usa il tuo gestore pacchetti per installare TCPDump:

$ sudo apt-get Installa tcpdump (Debian/Ubuntu)
$ sudo dnf Installa TCPDump (CentOS/RHEL 6 e 7)
$ sudo yum installa tcpdump (Fedora/CentOS/RHEL 8)

Vediamo usi e output diversi mentre esploriamo TCPDump!

UDP

TCPDump può anche scaricare i pacchetti UDP. Useremo uno strumento NetCAT (NC) per inviare un pacchetto UDP e quindi scaricarlo.

$ echo -n "tcpdumper" | NC -w 1 -u localhost 1337

Nel comando sopra dato, inviamo un pacchetto UDP composto dalla stringa "TCPDUMPER" alla porta UDP 1337 attraverso Localhost. TCPDump cattura il pacchetto inviato sulla porta UDP 1337 e lo visualizzerà.

Ora scaricheremo questo pacchetto usando tcpdump.

$ sudo tcpdump -i lo udp port 1337 -vvv -x

Questo comando catturerà e mostrerà i dati acquisiti dai pacchetti in ASCII e la forma esadecimale.

TCPDUMP: ascolto su LO, EN10MB di tipo link (Ethernet), lunghezza dell'istantanea 262144 byte
04:39:39.072802 IP (TOS 0x0, TTL 64, ID 32650, offset 0, flags [df], proto UDP (17), lunghezza 37)
Localhost.54574> Localhost.1337: [cattivo UDP cksum 0xfe24 -> 0xeac6!] UDP, lunghezza 9
0x0000: 4500 0025 7f8a 4000 4011 BD3B 7f00 0001 E… %… @.@...; ..
0x0010: 7f00 0001 D52E 0539 0011 Fe24 7463 7064… 9… $ TCPD
0x0020: 756d 7065 72 Umper

Come possiamo vedere, il pacchetto è stato inviato alla porta 1337 e la lunghezza era 9 come stringa tcpdumper è 9 byte. Possiamo anche vedere che il pacchetto è stato visualizzato in formato esadecimale.

Dhcp

TCPDump può anche effettuare indagini sui pacchetti DHCP sulla rete. DHCP utilizza la porta UDP n. 67 o 68, quindi definiremo e limiteremo il TCPDump per solo i pacchetti DHCP. Supponiamo che stiamo usando un'interfaccia di rete WiFi.
Il comando usato qui sarà:

$ sudo tcpdump -i wlan0 porta 67 o porta 68 -e -n -vvv
TCPDUMP: ascolto su WLAN0, EN10MB di tipo Link (Ethernet), lunghezza dell'istantanea 262144 byte
03:52:04.004356 00: 11: 22: 33: 44: 55> 00: 11: 22: 33: 44: 66, Ethertype IPv4 (0x0800), lunghezza 342: (TOS 0x0, TTL 64, ID 39781, offset 0, flags [DF ], Proto UDP (17), lunghezza 328)
192.168.10.21.68> 192.168.10.1.67: [UDP SUM OK] BOOTP/DHCP, richiesta da 00: 11: 22: 33: 44: 55, lunghezza 300, XID 0xfeab2d67, flags [nessuno] (0x0000)
Client-IP 192.168.10.16
Client-Ethernet-Address 00: 11: 22: 33: 44: 55
Venditore-RFC1048 Estensioni
Magic Cookie 0x63825363
DHCP-Message (53), lunghezza 1: rilascio
Server-ID (54), lunghezza 4: 192.168.10.1
Hostname (12), lunghezza 6: "Parrot"
Fine (255), lunghezza 0
Pad (0), lunghezza 0, si verifica 42

DNS

DNS, noto anche come sistema di nomi di dominio, conferma per fornirti ciò che stai cercando abbinando il nome di dominio con l'indirizzo del dominio. Per ispezionare la comunicazione a livello di DNS del tuo dispositivo su Internet, è possibile utilizzare TCPDump nel modo seguente. DNS utilizza la porta 53 UDP per la comunicazione.

$ sudo tcpdump -i wlan0 port UDP 53
TCPDUMP: ascolto su WLAN0, EN10MB di tipo Link (Ethernet), lunghezza dell'istantanea 262144 byte
04:23:48.516616 IP (TOS 0x0, TTL 64, ID 31445, offset 0, flags [df], proto UDP (17), lunghezza 72)
192.168.10.16.45899> uno.uno.uno.uno.Dominio: [UDP Sum OK] 20852+ a? Mozilla.Cloudflare-DNS.com. (44)
04:23:48.551556 IP (TOS 0x0, TTL 60, ID 56385, offset 0, flags [df], proto UDP (17), lunghezza 104)
uno.uno.uno.uno.Dominio> 192.168.10.16.45899: [UDP Sum OK] 20852 Q: A? Mozilla.Cloudflare-DNS.com. 2/0/0 Mozilla.Cloudflare-DNS.com. [24S] A 104.16.249.249, Mozilla.Cloudflare-DNS.com. [24S] A 104.16.248.249 (76)
04:23:48.648477 IP (TOS 0x0, TTL 64, ID 31446, offset 0, flags [df], proto UDP (17), lunghezza 66)
192.168.10.16.34043> uno.uno.uno.uno.Dominio: [UDP Sum OK] 40757+ PTR? 1.1.1.1.in-addr.arpa. (38)
04:23:48.688731 IP (TOS 0x0, TTL 60, ID 56387, offset 0, flags [df], proto UDP (17), lunghezza 95)
uno.uno.uno.uno.Dominio> 192.168.10.16.34043: [Sum UDP OK] 40757 Q: PTR? 1.1.1.1.in-addr.arpa. 1/0/0 1.1.1.1.in-addr.arpa. [26m53s] PTR One.uno.uno.uno. (67)

Arp

Il protocollo di risoluzione dell'indirizzo viene utilizzato per scoprire l'indirizzo dello strato di collegamento, come un indirizzo MAC. È associato a un determinato indirizzo di livello Internet, in genere un indirizzo IPv4.

Stiamo usando TCPDump per acquisire e leggere i dati trasportati nei pacchetti ARP. Il comando è semplice come:

$ sudo tcpdump -i wlan0 arp -vvv
TCPDUMP: ascolto su WLAN0, EN10MB di tipo Link (Ethernet), lunghezza dell'istantanea 262144 byte
03:44:12.023668 ARP, Ethernet (LEN 6), IPv4 (LEN 4), richiesta WHA-HAS 192.168.10.1 Dillo 192.168.10.2, lunghezza 28
03:44:17.140259 ARP, Ethernet (LEN 6), IPv4 (LEN 4), richiesta WHA-HAS 192.168.10.21 Dillo 192.168.10.1, lunghezza 28
03:44:17.140276 ARP, Ethernet (LEN 6), IPv4 (Len 4), Risposta 192.168.10.21 IS-AT 00: 11: 22: 33: 44: 55 (OUI Sconosciuto), lunghezza 28
03:44:42.026393 ARP, Ethernet (LEN 6), IPv4 (LEN 4), richiesta WHA-HAS 192.168.10.1 Dillo 192.168.10.2, lunghezza 28

ICMP

ICMP, noto anche come protocollo di messaggi di controllo Internet, è un protocollo di supporto nella suite del protocollo Internet. ICMP viene utilizzato come protocollo informativo.

Per visualizzare tutti i pacchetti ICMP su un'interfaccia, possiamo usare questo comando:

$ sudo tcpdump icmp -vvv
TCPDUMP: ascolto su WLAN0, EN10MB di tipo Link (Ethernet), lunghezza dell'istantanea 262144 byte
04:26:42.123902 IP (TOS 0x0, TTL 64, ID 14831, offset 0, flags [df], proto ICMP (1), lunghezza 84)
192.168.10.16> 192.168.10.1: richiesta di eco ICMP, ID 47363, SEQ 1, lunghezza 64
04:26:42.128429 IP (TOS 0x0, TTL 64, ID 32915, offset 0, flags [nessuno], Proto ICMP (1), lunghezza 84)
192.168.10.1> 192.168.10.16: ICMP Echo Rispondi, ID 47363, SEQ 1, lunghezza 64
04:26:43.125599 IP (TOS 0x0, TTL 64, ID 14888, offset 0, flags [df], proto ICMP (1), lunghezza 84)
192.168.10.16> 192.168.10.1: richiesta di eco ICMP, ID 47363, SEQ 2, lunghezza 64
04:26:43.128055 IP (TOS 0x0, TTL 64, ID 32916, offset 0, flags [nessuno], Proto ICMP (1), lunghezza 84)
192.168.10.1> 192.168.10.16: ICMP Echo Rispondi, ID 47363, SEQ 2, lunghezza 64

Ntp

NTP è un protocollo di networking progettato specificamente per sincronizzare il tempo su una rete di macchine. Per catturare il traffico su NTP:

$ sudo tcpdump dst port 123
04:31:05.547856 IP (TOS 0x0, TTL 64, ID 34474, offset 0, flags [df], proto UDP (17), lunghezza 76)
192.168.10.16.NTP> time-b-wwv.nist.Gov.NTP: [UDP Sum OK] NTPV4, client, lunghezza 48
Indicatore di salto: clock nonsnchronizzato (192), strato 0 (non specificato), sondaggio 3 (8s), precisione -6
Ritardo radice: 1.000000, dispersione radicale: 1.000000, ID di riferimento: (UNSPEC)
Timestamp di riferimento: 0.000000000
Timestamp originale: 0.000000000
Ricevi timestamp: 0.000000000
TimeStamp di trasmissione: 3825358265.547764155 (2021-03-21T23: 31: 05Z)
Ioriginatore - Ricevi timestamp: 0.000000000
Originatore - Timestamp di trasmissione: 3825358265.547764155 (2021-03-21T23: 31: 05Z)
04:31:05.841696 IP (TOS 0x0, TTL 56, ID 234, offset 0, flags [nessuno], Proto UDP (17), lunghezza 76)
time-b-wwv.nist.Gov.NTP> 192.168.10.16.NTP: [UDP Sum OK] NTPV3, server, lunghezza 48
Indicatore di salto: (0), Stratum 1 (riferimento primario), Sondaggio 13 (8192S), Precision -29
Ritardo radice: 0.000244, dispersione radicale: 0.000488, ID di riferimento: NIST
Timestamp di riferimento: 3825358208.000000000 (2021-03-21T23: 30: 08Z)
Timestamp originale: 3825358265.547764155 (2021-03-21T23: 31: 05Z)
Ricevi timestamp: 3825358275.028660181 (2021-03-21T23: 31: 15Z)
TimeStamp di trasmissione: 3825358275.028661296 (2021-03-21T23: 31: 15Z)
COMPETTORE - Ricevi timestamp: +9.480896026
Originatore - TimeStamp di trasmissione: +9.480897141

Smtp

Il protocollo SMTP o Simple Mail Transfer viene utilizzato principalmente per le e -mail. TCPDump può usarlo per estrarre utili informazioni e -mail. Ad esempio, per estrarre i destinatari/mittenti di posta elettronica:

$ sudo tcpdump -n -l port 25 | Grep -i 'posta da \ | rcpt a'

IPv6

IPv6 è la "prossima generazione" di IP, che fornisce una vasta gamma di indirizzi IP. IPv6 Aiuta a raggiungere la salute a lungo termine di Internet.

Per acquisire il traffico IPv6, utilizzare il filtro IP6 che specifica i protocolli TCP e UDP utilizzando Proto 6 e Proto-17.

$ sudo tcpdump -n -i qualsiasi ip6 -vvv
TCPDUMP: tipo di collegamento dati Linux_Sll2
TCPDUMP: ascolto su qualsiasi, Linux_Sll2 di tipo collegamento (Linux Cooked V2), lunghezza dell'istantanea 262144 byte
04:34:31.847359 LO in IP6 (FlowLabel 0xc7cb6, Hlim 64, UDP successivo UDP (17) Lunghezza del carico utile: 40) ::.49395> :: 1.49395: [cattivo UDP cksum 0x003b -> 0x3587!] UDP, lunghezza 32
04:34:31.859082 LO in IP6 (FlowLabel 0xc7cb6, Hlim 64, UDP successivo UDP (17) Lunghezza del carico utile: 32) ::.49395> :: 1.49395: [cattivo UDP cksum 0x0033 -> 0xeaef!] UDP, lunghezza 24
04:34:31.860361 LO in IP6 (FlowLabel 0xc7cb6, Hlim 64, UDP successivo UDP (17) Lunghezza del carico utile: 40) ::.49395> :: 1.49395: [cattivo UDP cksum 0x003b -> 0x7267!] UDP, lunghezza 32
04:34:31.871100 LO in IP6 (FlowLabel 0xc7cb6, Hlim 64, UDP successivo UDP (17) Lunghezza del carico utile: 944) ::.49395> :: 1.49395: [cattivo UDP cksum 0x03c3 -> 0xf890!] UDP, lunghezza 936
4 pacchetti catturati
12 pacchetti ricevuti tramite filtro
0 pacchetti lasciati cadere da kernel

Il '-c 4' fornisce un numero di pacchetti solo fino a 4 pacchetti. Possiamo specificare il numero di pacchetti su N e catturare n pacchetti.

Http

Il protocollo di trasferimento ipertestuale viene utilizzato per il trasferimento di dati da un server Web a un browser per visualizzare le pagine Web. HTTP utilizza la comunicazione del modulo TCP. In particolare, viene utilizzata la porta TCP 80.

Per stampare tutti i pacchetti HTTP IPv4 da e verso la porta 80:

TCPDUMP: ascolto su WLAN0, EN10MB di tipo Link (Ethernet), lunghezza dell'istantanea 262144 byte
03:36:00.602104 IP (TOS 0x0, TTL 64, ID 722, offset 0, flags [df], proto TCP (6), lunghezza 60)
192.168.10.21.33586> 192.168.10.1.HTTP: Flags [S], cksum 0xa22b (corretto), SEQ 2736960993, Win 64240, Opzioni [MSS 1460, Sackok, TS Val 389882294 ECR 0, NOP, Wscale 10], lunghezza 0
03:36:00.604830 IP (TOS 0x0, TTL 64, ID 0, Offset 0, Flags [DF], Proto TCP (6), lunghezza 60)
192.168.10.1.http> 192.168.10.21.33586: bandiere [s.], cksum 0x2dcc (corretto), SEQ 4089727666, ACK 2736960994, Win 14480, Opzioni [MSS 1460, Sackok, TS Val 30996070 ECR 389882294, NOP, WScale 3], lunghezza 0
03:36:00.604893 IP (TOS 0x0, TTL 64, ID 723, offset 0, flags [df], proto TCP (6), lunghezza 52)
192.168.10.21.33586> 192.168.10.1.http: bandiere [.], cksum 0x94e2 (corretto), seq 1, Ack 1, win 63, opzioni [NOP, NOP, TS VAL 389882297 ECR 30996070], lunghezza 0
03:36:00.605054 IP (TOS 0x0, TTL 64, ID 724, offset 0, flags [df], proto TCP (6), lunghezza 481)

Richieste HTTP ..

192.168.10.21.33586> 192.168.10.1.http: flags [p.], cksum 0x9e5d (corretto), seq 1: 430, ACK 1, win 63, opzioni [NOP, NOP, TS VAL 389882297 ECR 30996070], lunghezza 429: HTTP, lunghezza: 429: 429
Get / http / 1.1
Ospite: 192.168.10.1
Utente-agente: Mozilla/5.0 (Windows NT 10.0; RV: 78.0) Gecko/20100101 Firefox/78.0
Accetta: testo/html, applicazione/xhtml+xml, applicazione/xml; q = 0.9, immagine/webp,*/*; q = 0.8
Accettazione: en-us, en; q = 0.5
Accettazione: gzip, deflate
DNT: 1
Connessione: Keep-Alive
Cookie: _TestCookiesupport = 1; SID = C7CCFA31CFE06065717D24FB544A5CD588760F0CDC5AE2739E746F84C469B5FD
Richieste di insecura upgrade: 1

E anche le risposte vengono catturate

192.168.10.1.http> 192.168.10.21.33586: bandiere [P.], cksum 0x84f8 (corretto), seq 1: 523, ACK 430, vinci 1944, opzioni [NOP, NOP, TS VAL 30996179 ECR 389882297], lunghezza 522: http, lunghezza: 522
Http/1.1 200 OK
Server: ZTE Web Server 1.0 ZTE Corp 2015.
Accetta-range: byte
Connessione: chiudere
X-Frame-Options: Sameorigin
Cache-Control: no-cache, no-store
Lunghezza del contenuto: 138098
Set-cookie: _testcookiesupport = 1; Percorso =/; Httponly
Content-Type: text/html; chatset = UTF-8
Opzioni di tipo X-Content: Nosniff
Content-Security-Policy: Telaio-Ancelles 'auto' 'non sicuro in linea' 'non sicuro-eval'; dati 'self' IMG-Src:;
X-XSS-Protezione: 1; modalità = blocco
Set-cookie: sid =; scade = thu, 01-Jan-1970 00:00:00 GMT; Path =/; Httponly

TCP

Per catturare pacchetti solo TCP, questo comando farà tutto il bene:

$ sudo tcpdump -i wlan0 tcp
TCPDUMP: ascolto su WLAN0, EN10MB di tipo Link (Ethernet), lunghezza dell'istantanea 262144 byte
04:35:48.892037 IP (TOS 0x0, TTL 60, ID 23987, offset 0, flags [nessuno], Proto TCP (6), lunghezza 104)
TL-in-F189.1e100.netto.https> 192.168.10.16.50272: bandiere [P.], cksum 0xc924 (corretto), seq 1377740065: 1377740117, ACK 1546363399, Win 300, opzioni [NOP, NOP, TS VAL 13149401 ECR 3051434098], lunghezza 52
04:35:48.892080 IP (TOS 0x0, TTL 64, ID 20577, offset 0, flags [df], proto TCP (6), lunghezza 52)
192.168.10.16.50272> TL-in-F189.1e100.netto.Https: Flags [.], cksum 0xf898 (corretto), seq 1, ACK 52, win 63, opzioni [NOP, NOP, TS VAL 3051461952 ECR 13149401], lunghezza 0
04:35:50.199754 IP (TOS 0x0, TTL 64, ID 20578, Offset 0, Flags [DF], Proto TCP (6), lunghezza 88)
192.168.10.16.50272> TL-in-F189.1e100.netto.https: flags [p.], cksum 0x2531 (corretto), seq 1:37, ACK 52, vinci 63, opzioni [NOP, NOP, TS VAL 3051463260 ECR 13149401], lunghezza 36
04:35:50.199809 IP (TOS 0x0, TTL 64, ID 7014, Offset 0, Flags [DF], Proto TCP (6), lunghezza 88)
192.168.10.16.50434> HKG12S18-in-F14.1e100.netto.https: flags [p.], cksum 0xb21e (corretto), SEQ 328391782: 328391818, ACK 3599854191, Win 63, Opzioni [NOP, NOP, TS VAL 3656137742 ECR 2564108387], lunghezza 36
4 pacchetti catturati
4 pacchetti ricevuti tramite filtro
0 pacchetti lasciati cadere da kernel

Normalmente l'acquisizione di pacchetti TCP comporta molto traffico; È possibile specificare in dettaglio i tuoi requisiti aggiungendo filtri alla cattura, come ad esempio:

Porta
Specifica la porta per monitorare

$ sudo tcpdump -i wlan0 tcp port 2222

IP di origine
Per visualizzare i pacchetti da una fonte specificata

$ sudo tcpdump -i wlan0 tcp src 192.168.10.2

IP di destinazione
Per visualizzare i pacchetti a una destinazione specificata

$ sudo tcpdump -i wlan0 tcp dst 192.168.10.2

Salvare l'acquisizione di pacchetti in file

Per salvare l'acquisizione dei pacchetti per l'analisi in seguito, possiamo utilizzare l'opzione -w di TCPDump che richiede un parametro di nome file. Questi file vengono salvati in un formato file PCAP (Packet Capture), che può essere utilizzato per salvare o inviare acquisizioni di pacchetti.

Per esempio:

$ sudo tcpdump -w /catturato.PCAP

Possiamo aggiungere filtri se vogliamo catturare pacchetti TCP, UDP o ICMP, ecc.

Leggere l'acquisizione dei pacchetti dai file

Sfortunatamente, non è possibile leggere il file salvato tramite comandi comuni "Read File" come Cat, ecc. L'output è quasi incomprensibile ed è difficile dire cosa c'è nel file. '-r' viene utilizzato per leggere i pacchetti salvati nel .File PCAP, archiviato in precedenza da '-w' o altro software che memorizza PCAPS:

$ sudo tcpdump -r /output.PCAP

Questo stampa i dati raccolti dai pacchetti acquisiti sulla schermata del terminale in un formato leggibile.

TCPDUMP cheatsheet

TCPDump può essere usato con altri comandi Linux come Grep, SED, ecc., Per estrarre informazioni utili. Ecco alcune combinazioni utili e parole chiave amalgamate in uso con TCPDump per ottenere informazioni preziose.

Estrai agenti utente HTTP:

$ sudo tcpdump -n | grep "agente utente:"

Gli URL richiesti su HTTP possono essere monitorati utilizzando TCPDump come:

$ sudo tcpdump -v -n | egrep -i "post / | get / | host:"

Puoi anche Estrai le password HTTP nelle richieste di post

$ sudo tcpdump -nn -l | egrep -i "post /| pwd = | passwd = | password = | host:"

I cookie sul server o sul lato client possono essere estratti utilizzando:

$ sudo tcpdump -n | egrep -i 'set -cookie | host: | cookie:'

Acquisire richieste e risposte DNS utilizzando:

$ sudo tcpdump -i wlp58s0 -s0 porta 53

Stampa tutte le password di testo in semplice:

$ sudo tcpdump porta http o porta ftp o porta smtp o porta imap o porta pop3 o porta telnet -l -a | egrep -i -b5 'pass = | pwd = | log = | login = | user = | utente | nome utente = | pw = | passw = | passwd = | password = | pass: | utente: | nome utente: | password: | Accedi: | Pass '

Filtri TCPDump comuni

  • -UN Mostra pacchetti in formato ASCII.
  • -C Numero di pacchetti da catturare.
  • -contare Stampa il conteggio dei pacchetti solo quando si legge un file catturato.
  • -e Stampa indirizzi Mac e intestazioni a livello di collegamento.
  • -h o -help Stampa la versione e le informazioni sull'utilizzo.
  • -versione Mostra solo le informazioni sulla versione.
  • -io Specificare l'interfaccia di rete su cui l'acquisizione.
  • -K Impedire i tentativi di verificare i checksum di qualsiasi pacchetto. Aggiunge velocità.
  • -M Specificare il modulo da utilizzare.
  • -N Non convertire gli indirizzi (io.e., indirizzi host, numeri di porta, ecc.) ai nomi.
  • -numero Stampa un numero di pacchetto opzionale all'inizio di ogni riga.
  • -P Vietare l'interfaccia di entrare in modalità promiscua.
  • -Q Scegli la direzione per catturare i pacchetti. Inviare o ricevere.
  • -Q Output silenzioso/rapido. Stampa meno informazioni. Le output sono più brevi.
  • -R Utilizzato per leggere i pacchetti da un PCAP .
  • -T Non stampare un timestamp su ogni linea di scarico.
  • -v Stampa ulteriori informazioni sull'output.
  • -w Scrivi i pacchetti RAW da archiviare.
  • -X Stampa output ASCII.
  • -X Stampa ASCII con esadecimale.
  • -Elenco interfacce Mostra tutte le interfacce di rete disponibili in cui i pacchetti possono essere acquisiti da TCPDump.

Cessazione

TCPDump è stato uno strumento molto utilizzato utilizzato nella ricerca e nelle applicazioni di sicurezza/networking. L'unico inconveniente TCPDump non ha "nessuna GUI", ma è troppo bello per essere tenuto fuori dai migliori grafici. Come scrive Daniel Miessler, “Analizzatori di protocollo come Wireshark è fantastico, ma se vuoi veramente padroneggiare pacchetti-FU, devi diventare uno con TCPDump prima."