tcpick - sniffer tracciatore di connessioni
tcpick [ -a ] [ -n ] [ -C ]
[ -e num ]
[ -i interfaccia | -r file ]
[ -X timeout ]
[ -D ] [ -F1 | -F2 ]
[ -yH | -yP | -yR | -yU | -yx | -yX
]
[ -bH | -bP | -bR | -bU | -bx | -bX
]
[ -wH[ub] | -wP[ub] | -wR[ub] | -wU[ub] ]
[ -v [ verbosity ]] [ -S ] [ -h ]
[ --separator ]
[ -T | -Tf [ n ]]
[ -E | -Ef [ n ]]
[ -Pc | -Ps ]
[ "filter" ]
[ --help ] [ --version ]
tcpick e' uno sniffer con interfaccia testuale basato sulle
celeberrime librerie libpcap. Tra le sue funzioni quelle piu' importanti
sono la capacita' di tracciare flussi di dati trasferiti mediante il
protocollo tcp e la possibilita' di salvare i dati catturati all'interno di
files, oppure di visualizzarli direttamente nel terminale. Puo' essere
utilizzato per il download passivo di file trasferiti via ftp (per l'http e'
neccessaria una ulteriore decodifica a livello applicazione). Tra le
modalita' di visualizzazione dei dati ci sono: esadecimale, esadecimale con
ascii (ovvero il classico hexdump), visualizzazione dei soli caratteri
stampabili, modalita' "raw" ecc. E' disponibile anche una
modalita' a colori per rendere l'output piu' leggibile. Se viene posizionato
su un gateway puo' essere utilizzato per osservare le attivita' degli utenti
di una rete interna. Inoltre e' adatto ad essere utilizzato con strumenti
testuali a riga di comando come grep, sed e awk.
- -i --interface interfaccia di
rete
- ascolta l'interfaccia selezionata, (p.es. ppp0 o eth0). Se
non e' stata impostata l'opzione -i, tcpick selezionera' di default
il primo dispositivo disponibile.
- -r --readfile
- legge i pacchetti da un file generato mediante tcpdump -w invece di
utilizzare un interfaccia di rete ordinaria.
- "filtro"
- E' possibile impostare un filtro come quelli che si possono impostare con
tcpdump(1) Un esauriente lettura della manpage di tcpdump(1)
rendera' chiara la logica di questa opzione.
- -a
- Risolve i nomi degli host invece di mostrare indirizzi ip.
Attenzione: per ogni nuovo indirizzo ip sniffato verra' generata
una richiesta dns! Usare con cautela su dispositivi di rete ad alto
traffico.
- -C --colors
- Usa colori e rende il terminale piu' allegro per aiutarti a leggere
l'output.
- -D n --dirs
n
- Crea directory per salvare le connessioni sniffate. Quando una directory
arriva a contenere n sessioni, una nuova directory viene
creata.
- -e num
- Esce quando num pacchetti sono stati catturati.
- -E n
- Esce quando n connessioni sono state tracciate (ovvero il loro
stato e' "CLOSED")
- -Ef n
- Esce quando le prime n connessioni sono identificate come
"CLOSED"
- -F1 -F2 --filenaming
1|2
- sceglie la tipologia di nome per i file delle sessioni sniffate
-F1 : tcpick_clientip_serverip.side.dat
(side puo' essere clnt, serv o both)
-F2 :
tcpick_connectionnumber_clientip_serverip.side.dat
- -h
- Mostra ip e porta sorgente e destinazione. Mostra i flag TCP come
lettere.
- --help
- Mostra un breve messaggio d'aiuto con il riassunto delle opzioni
disponibili.
- -p
- Non imposta l'interfaccia di rete in modalita' promisqua.
Attenzione pero': l'interfaccia potrebbe essere in modalita' promisqua per
qualche altra ragione.
- -S
- Sopprime la visualizzasione dello stato della connessione.
- --separator
- Aggiunge un separatore ai pacchetti.
- -t
- Visualizza il tempo (timestamp) in questo formato:
ore:minuti:secondi:microsecondi
- -td
- Esattamente come -t con l'aggiunta della data nel formato
giorno-mese-anno
- -T n
- Traccia solo n connessioni. Molto utile per reti ad elevato
traffico. Se n non e' stato specificato, viene impostato a
1.
- -Tf n
- Traccia solo le prime n connessioni; le successive saranno
ignorate. Se n non e' stato specificato, viene impostato a
1.
- -v verbosity
- Opzione che probabilmente verra' rimossa. Imposta il livello di
"verbosita'" Attualmente non ci sono molti messaggi extra da
visualizzare. -v1 e' impostato di default. Impostare la verbosita'
a 0 (-v0) per sopprimere ogni messaggio ad eccezione degli
errori. Non ci sono altri livelli di "verbosita'".
- -X
timeout
- Le connessioni vengono considerate EXPIRED (scadute) quando non
vengono scambiati pacchetti per almeno timeout secondi. Di default
sono 600 secondi.
- --version
- Mostra la versione di tcpick
Queste opzioni hanno come prefisso -y e sono utili per
mostrare in svariati formati il contenuto dei pacchetti (payload), ovvero i
dati che vengono trasferiti a livello applicazione non appena arrivano
all'interfaccia di rete selezionata. Questa opzione non sopprime i pacchetti
tcp duplicati e non c'e' neanche il riordino degli stessi, ma vengono
mostrati "cosi' come sono". Per ottenere un flusso ricostruito e
completamente riconosciuto (esattamente come fa lo stack di rete di un S.O.)
leggi la descrizione del set di opzioni -w e -b.
- -yH
- Visualizza i dati come cifre esadecimali spaziate (per un hexdump vero e
proprio si veda -yx e -yX).
- -yP
- Visualizza i dati contenuti nel pacchetto. Caratteri non stampabili
vengono visualizzati come punti: ".". Il carattere di
nuova riga e le tabulazioni non vengono convertite in punti. Questo e'
probabilmente il modo migliore per vedere con semplicita' richieste HTTP,
comunicazioni IRC, sessioni SMTP eccetera.
- -yR
- Modalita' "raw". Visualizza tutti i caratteri, stampabili e non.
Se qualcosa di binario (o compresso) viene trasferito, l'effetto sara'
probabilmente come visualizzare con "cat" un file
zippato.
- -yx
- Visualizza i dati in un dump esadecimale con 16 bytes per ogni riga.
- -yX
- Visualizza i dati come -yx con l'aggiunta della corrispettiva
stringa ascii nella stessa riga.
- -yU
- Visualizza i dati come -yP, ma i caratteri non stampabili vengono
visualizzati come valori esadecimali racchiusi tra parentesi angolari.
Il prefisso di queste opzioni e' -w. Attivando questa
opzione le sessioni sniffate vengono salvate su file nella directory
corrente.
Il flusso viene ricostruito, riordinato e i pacchetti duplicati
vengono tralasciati. In questo modo e' possibile sniffare interi file
trasmessi via ftp (per fare un esempio) senza corruzione dei dati (si puo'
verificare con md5sum).
Con il flag u dell'opzione -w (p.es. -wRu) i
dati di entrambi client e server verranno salvati su un unico file.
Altrimenti i file saranno due e i flussi ben separati.
Usando il flag addizionale b all'opzione -wu (p.es.
-wPub), nel file sara' scritto questo banner
[client|server] offset prima:offset dopo (lunghezza del
segmento ricostruito)
per distinguere tra dati del client e del server nello stesso
file
Se non viene attribuito nessun flag all'opzione -w i dati
saranno scritti come con -wR.
E' possibile decidere di salvare i dati dei soli client o dei soli
server impostando il flag C (solo dati del client) oppure S
(solo dati del server) all'opzione -w.
- -wR
- Questa e' l'opzione preferita: i dati vengono scritti senza alcun
cambiamento. Utilissima per sniffare dati binari, compressi o criptati.
(-wRC solo il client, -wRS solo il server)
- -wP
- Caratteri stampabili vengono scritti come punti.
(-wPC solo il client, -wPS solo il server)
- -wU
- Caratteri non stampabili vengono scritti come esadecimali tra parentesi
angolari.
(-wPC solo il client, -wPS solo il server)
- -wH
- Il flusso e' scritto sotto forma di esadecimali spaziati
(-wHC solo il client, -wHS solo il server)
Il prefisso per queste opzioni e' -b. Questo set di opzioni
e' molto utile nell'intento di redirigere il flusso sniffato verso un'altro
programma tramite il pipe, e non ci dovrebbe essere corruzione dei dati.
Naturalmente il piu' utile e' -bR per utilizzare i dati cosi' come
sono (raw). Una funzionalita' molto utile e' C (visualizza solo il
client) e S (visualizza solo il server). p.es.: -bRC mostrera'
in formato "raw" solo i dati dal client.
I flag del set di opzioni -b sono molto simili a
-y:
- -bH esadecimale
spaziato
- (-bHC solo il client, -bHS solo il server)
- -bP caratteri non
stampabili visualizzati come punti
- (-bPC solo il client, -bPS solo il server)
- -bR modalita'
raw
- (-bRC solo il client, -bRS solo il server)
- -bU caratteri non
stampabili come esadecimali tra parentesi
- angolari. (-bUC solo il client, -bUS solo il server)
- -bx hexdump
- (-bxC solo il client, -bxS solo il server)
- -bU hexdump +
ascii
- (-bXC solo il client, -bXS solo il server)
- -PC --pipe client
- E' un alias di -bRC -S -v0 -Tf1 -Ef1. Con questa opzione puoi
tracciare la prima connessione (-T1) e i dati vengono visualizzato
come "raw". Solo i dati che provengono dal client vengono
scritti sullo stdout. Tutti i messaggi vengono soppressi, ad eccezione
degli errori (-S -v0). L'intenzione di questa opzione alias e' di
riassumere l'intento di scaricare per intero un flusso di dati di una
sessione tcp.
- -PS --pipe server
- E' un alias di -bRS -S -v0 -Tf1 -Ef1.
Indirizzo: <tcpick-project[a]lists.sourceforge.net>
Archivio:
http://sourceforge.net/mailarchive/forum.php?forum=tcpick-project
Iscrizione: http://lists.sourceforge.net/lists/listinfo/tcpick-project
Se hai qualche nuova idea, patch, richiesta di funzionalita' o semplicemente
necesiti di aiuto, scrivi in mailing-list!
La home-page di tcpick e': http://tcpick.sf.net.
La pagina di progetto invece e' qui':
http://sourceforge.net/projects/tcpick kindly hosted by the
sourceforge team.
Controlla il file AUTHORS.
Bachi? Ci sono bachi? Beh, tcpick non e' certo un software
perfetto, e se hai qualche problema controlla il file KNOWN-BUGS.
Sembra che su alcune versioni di MacOSX capiti un Segmentation Fault e ci
siano problemi nel tracciamento delle connessioni.
Se trovi bachi, scrivi alla mailing-list.
Altri simpatici sniffer:
tcpdump, ngrep, tcptrack, ettercap, ethereal, snort
Tcpick e' rilasciato con la licenza GNU GPL. Per ulteriori
informazioni leggere il file COPYING (in inglese).
Fai un programma che anche un idiota puo' usare,
e soltanto un idiota vorra' usarlo.