Tcpdump è uno strumento di sniffing particolarmente flessibile e diffuso nel mondo Linux. E' simile a snoop, più diffuso su Solaris, e permette di analizzare il tipo di pacchetti che passano per l'interfaccia di rete specificata.
Va sottolineato che tcpdump NON visualizza il contenuto dei pacchetti ma solo le loro intestazioni (protocollo, IP sorgente, destinazione, porte ecc.) per cui si presta bene alla diagnostica di problemi di networking ma non ad una attività di cracking.
INSTALLAZIONE
Per funzionare tcpdump richiede le librerie libpcap che possono essere scaricate dal sito ufficiale di tcpdump.
La procedura di installazione, sia per libpcap che tcpdump è quella standard (./configure ; make ; make install
). Per il corretto funzionamento su diversi Unix flavour sono necessari alcuni specifici adattamenti. Su Linux, per esempio, il kernel deve essere compilato con la funzione packet socket (CONFIG_PACKET=y
) e tcpdump deve essere lanciato da root.
USO
Tcpdump prevede numerose e flessibili opzioni per definire quali pacchetti sniffare e come farlo.
Il suo output dipende dal protocollo e viene visualizzata una riga per ogni datalink frame intercettato.
Il man ufficiale è dettagliato e ben documentato, riportiamo qui alcune opzioni interessanti.
tcpdump
- Senza opzioni tcpdump visualizza a schermo tutti i pacchetti che passano sull'interfaccia predefinita (di solito eth0)
tcpdump -i ppp0 -c 50
- Visualizza 50 pacchetti (-c 50) sull'interfaccia ppp0 (-i ppp0) e poi esce.
tcpdump -l | tee sniff.log
- Mentre visualizza i pacchetti li mette in un buffer (-l) che viene scritto sul file sniff.log.
tcpdump -e -n
- Visualizza gli indirizzi del data link (-e) e non prova a fare un DNS reverse lookup (-n) velocizzando l'output.
Le regole per identificare il tipo di pacchetto da visualizzare sono molto flessibili e adattabili a diverse necessità. Vediamo alcuni esempi
tcpdump port 80
- Visualizza solo i pacchetti che hanno come sorgente o destinazione la porta 80 (port 80).
tcpdump host 192.168.0.150
- Visualizza solo i pacchetti che hanno come IP sorgente o destinazione 192.168.0.150.
tcpdump host 10.0.0.150 and not port 22
- Visualizza solo i pacchetti relativi all'host 10.0.0.150 che non usino la porta ssh (and not port 22).
tcpdump net 10.0.0.0/24 and port 22
- Visualizza tutti i pacchetti per la rete 10.0.0.0/24 relativi al protocollo ssh (and port 22)
Teoria e pratica sulla subdola arte dello sniffing. Anti-sniffer tools. Arp spoofing e tecniche di prevenzione.