
Wireshark, all'attacco della rete con lo squalo
I pirati informatici lo usano per preparare le loro incursioni, gli amministratori per difendersi. Noi vi mostriamo come fanno
(pagina 1 di 5)
Wireshark (noto in precedenza come Ethereal) consente di analizzare
la struttura di una rete a caccia di eventuali errori di
configurazione.
Permette anche di eseguire il debug di un protocollo
in fase di sviluppo, così come osservare e “registrare” tutto il
traffico che attraversa la rete. L’interfaccia grafica e un evoluto
sistema di filtri, consentono di isolare, ricostruire ed esaminare ogni
sessione di comunicazione
per cui esiste un dissector. Wireshark, inoltre, è in grado di
identificare agevolmente
molti tipi di incapsulamento e di isolare e visualizzare tutti i campi
di cui è composto ogni pacchetto di rete. Inoltre, funziona da
packet-sniffer, in modo simile a tcpdump. I tipi di rete supportati non
si limitano al solo protocollo
Ethernet, ma spaziano verso infrastrutture diverse come FDDI, PPP,
Token Ring, IEEE802.11 e IP over ATM. C’è da dire che, in realtà,
Wireshark non contiene al suo interno codice per la cattura dei dati,
infatti, l’acquisizione
viene delegata alle note librerie Pcap, pertanto potremo installare
questo pacchetto su tutti i sistemi operativi compatibili con le
librerie libpcap. Proprio
a causa delle numerose dipendenze, per l’installazione consigliamo di
utilizzare il packet manager della nostra distribuzione: sudo apt-get
install wireshark su Debian/Ubuntu; emerge wireshark su Gentoo; yum
install wireshark su RedHat/Fedora. A installazione terminata è
sufficiente eseguire sudo wireshark. I privilegi di root sono necessari
per impostare la scheda di rete in modalità promiscua.
La vera forza sono i filtri
I filtri BPF (acronimo di Berkeley
Packet Filter) sono la tecnologia che rende Wireshark un tool così
potente e versatile. Il BPF, a differenza
di quanto si creda comunemente, è un autentico micro-linguaggio di
programmazione (con tanto di istruzioni
mnemoniche in Assembly!) che viene compilato ed eseguito a runtime sui
pacchetti che vengono intercettati da tool come tcpdump e Wireshark.
Tali filtri, importanti quando si ha la necessità
di isolare soltanto una parte dei pacchetti che sono stati catturati,
e su una rete a 100Mbit possono essercene centinaia di migliaia al
secondo, vengono compilati in modo da avere le migliori prestazioni
possibili quando si sta facendo una cattura in tempo reale. Il loro
utilizzo
è semplice e si basa soltanto sulla conoscenza del nome dei campi di
ogni singolo protocollo. Facciamo un esempio: se desideriamo
visualizzare
soltanto i pacchetti ICMP, non dovremmo far altro che scrivere nel
campo Filter della finestra principale di Wireshark la parola chiave
icmp. Se vogliamo evidenziare tutti i pacchetti che vengono o vanno
verso un determinato IP, diciamo 1.2.3.4, il filtro relativo sarà:
ip.dst == 1.2.3.4 || ip.src == 1.2.3.4. Che tradotto significa:
visualizza soltanto
quei pacchetti in cui il campo di destinazione (ip.dst) o (||) il campo
sorgente (ip.src) del protocollo IP corrispondano (==) a 1.2.3.4. Altri
esempi li vedremo in seguito.
Modalità promiscua
La scheda di rete intercetta tutto il traffico
Una
scheda di rete, normalmente, riceve solo i pacchetti ad essa destinati
e ignora gli altri, mentre, impostandola in modalità promiscua,
“intercetta” tutto il traffico che attraversa la rete. Sebbene lo
sniffing sia un’attività passiva, è possibile identificare una scheda
di rete impostata in modalità promiscua. L’”ascolto” di tutto il
traffico è un’attività che richiede molte risorse, per cui è
sufficiente saturare la rete con dati casuali, per poi misurare la
latenza delle risposte che si ottengono dal PC da controllare. Se il
tempo di risposta è molto lungo, nel caso di rete satura, allora si
desume che la scheda lavora in modalità promiscua.
Scoprire la password di una sessione FTP
Intercettata la connessione tra un client e un server possiamo scoprire i dati di accesso all’account