tcpick(8)

NAME
tcpick - sniffer tracciatore di connessioni

SYNOPSIS
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 ]

DESCRIZIONE
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.

OPZIONI BASE

-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

VISUALIZZARE I DATI CONTENUTI NEI PACCHETTI
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.

RICOSTRUIRE IL FLUSSO E SALVARLO SU FILE

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)

VISUALIZZARE IL FLUSSO RICOSTRUITO
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.

EXAMPLES

Visualizzare gli stati delle connessioni
    # tcpick -i eth0 -C

Visualizzare il contenuto del pacchetto e una stringa riassuntiva dell'header:
    # tcpick -i eth0 -C -yP -h -a

Visualizzare le email inviate da un utente
    # tcpick -i eth0 -C -bCU -T1 "port 25"

scaricare file in maniera passiva
    # tcpick -i eth0 -wR "port ftp-data"

loggare i dati http in file unici (client e server sono mescolati):
    # tcpick -i eth0 "port 80" -wRub

redirigere la prima connessione verso un software
    # tcpick -i eth0 --pipe client "port 80" | gzip > http_response.gz
    # tcpick -i eth0 --pipe server "port 25" | nc foobar.net 25

MAILING-LIST
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!

TCPICK SUL WEB
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.

AUTORI
Controlla il file AUTHORS.

BACHI

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.

VEDERE ANCHE
Altri simpatici sniffer:
tcpdump, ngrep, tcptrack, ettercap, ethereal, snort

LICENZA

Tcpick e' rilasciato con la licenza GNU GPL. Per ulteriori informazioni leggere il file COPYING (in inglese).

Principio di Shaw:
Fai un programma che anche un idiota puo' usare,
e soltanto un idiota vorra' usarlo.