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