tcpsmash v.0.1alpha

Stato
Discussione chiusa ad ulteriori risposte.

imported_BlackLight

Utente Silver
16 Agosto 2007
211
8
1
98
Ho appena pubblicato la prima release di tcpsmash, un packet sniffer per il protocollo TCP che ho creato per sistemi Unix in C grazie alle librerie PCAP e che è un po' un'estensione del classico tcpdump. Tra le funzionalità che offre, c'è quella del logging dei pacchetti su file o su stdout, modalità di cattura promiscua o non, impostazione di un filtro sui pacchetti da catturare, visualizzazione delle interfacce disponibili sul sistema, cattura dei pacchetti in transito su una sola interfaccia o su tutte le interfacce e prelevamento delle informazioni dai pacchetti catturati (quali IP di destinazione/sorgente, porta di destinazione/sorgente, protocollo usato, ora di cattura).

I sorgenti dell'applicazione sono scaricabili dal mio sito: http://blacklight.gotdns.org/soft.php

Buon divertimento.
 
Rilasciata la nuova versione del mio packet sniffer. Fra le migliorie introdotte:

- Corretto un bug per la visualizzazione della porta sorgente nel caso di pacchetti TCP, dovuto all'endianness scorretta (un ntohs dimenticato nel sorgente)
- Corretto finalmente il bug per la visualizzazione corretta di IP sorgente e destinazione per le richieste e le risposte ARP e RARP
- Maggiore stabilità. Il programma non crasha più con alcuni pacchetti ARP inviati come in passato

Ovviamente di mezzo, dalla 0.1alpha dell'anno scorso, ci sono state moltissime migliorie ed estensioni. Ora supporto tranquillamente anche analisi e sniffing di pacchetti UDP, ICMP, ARP e RARP.

Se usate questo sniffer, siete invitati a fare l'upgrade alla versione più recente da qui:
http://blacklight.gotdns.org/prog/tcpsmash/
 
Rilasciata la versione 0.2.4. La novità grossa è nella gestione più snella e leggibile dei contenuti dei pacchetti. È stata rimossa l'opzione --hex: ora tutti i pacchetti vengono stampati nello stile 'tcpdump -X', ovvero a gruppi di 16 byte. Tali gruppetti vengono stampati in formato esadecimale e, a fianco, in formato ASCII leggibile, in modo da avere a disposizione in modo leggibile le informazioni in entrambi i modi.
Il link da cui scaricare la nuova versione è sempre lo stesso.
 
Rilasciate un bel po' di release intanto, e molte le migliorie introdotte (ormai lo sniffer in quanto a funzionalità ha quasi surclassato tcpdump...).
Dal ChangeLog:

---- 0.2.8 Version:

- Support for Jamfile (now using jam instead of make for building tcpsmash is
strongly suggested)

- Regex support for -C option. Now you can both apply a normal filter to your
packets (i.e. -C "password: ") than an advanced filter using regular
expressions embraced by /expression/ (i.e. -C "/password:\s*[a-z]+/")

- Support for TCP flags improved. Now for each sniffed TCP packet are shown
its flags in an easy-to-manage way

- Support for any kind of interface now (eth, wifi, ppp, pppoe, pppoa,
tokenring...). I'm not sure tcpsmash will be working on each of them, so if
you've got a network device using those interfaces, test it on your own and
report me any kind of bug ^^

- Support for IGMP protocol

---- 0.2.7.2 Version:

- Added -C option, that allows you to print only packets containing a "string" inside of any part of them (headers, application layer...)

- Makefile was made cleaner (the executable is copied inside /usr/bin and not /usr/local/bin by default, /usr/man and /usr/man/man7 directories are created if not already there)


---- 0.2.7.1 Version:

- Support for 64 bit architecture added


---- 0.2.7 Version:

- Fixed a memory leak problem in pack_handle() function

- Added IP checksum support. The sniffer now always warns you if the checksum of an IP packet sniffed is correct or not

- Improved management and recognition of application layer protocols

- You can now count the number of packets sniffed, and, using -c option, stop the sniffer after sniffing "n" packets

- Automatic IP address resolving. When possible, the hostname is displayed instead of numerical IP address

- "Quick" view added (-q option). Using this option you can have a less detailed and tcpdump-like view of sniffed packets


---- 0.2.6 Version:

Lots of improvements made:

- A MAN page(7) was made

- Full logfile support. Now you can write binary packet dump on a logfile using -w option, and read the info saved the whenever you like using -F option

- More clear output format with coloured text

- Improved support for more protocols

Per il download:
http://blacklight.gotdns.org/prog/tcpsmash/
 
Rilasciata la versione 0.3, disponibile sempre su http://blacklight.gotdns.org/prog/tcpsmash .
La novità più grande introdotta: finalmente una versione più o meno stabile di nctcpsmash, un front end pseudo-grafico sviluppato con le ncurses per tcpsmash. Qualche screenshot:







Fra le features:

- Possibilità di salvare il traffico sniffato su un file di log (comando w) da esaminare in seguito utilizzando tcpsmash o nctcpsmash stesso (opzione -F)

- Possibilità di visualizzare tutti i pacchetti associati ad una sessione TCP a cui appartiene un certo pacchetto (comando t), in modo da isolare e visualizzare con calma solo una particolare sessione

- Possibilità di effettuare ricerche di testo all'interno dei pacchetti (comando / ), o cercando direttamente stringhe, oppure usando regex (il cui contenuto andrà incluso fra / e / )

- Possibilità di filtrare il traffico usando filtri BPF (opzione -f), ad esempio -f "host 192.168.1.1 and not arp and not port 80"

- Possibilità di interrompere lo sniffing (comando s) in qualsiasi momento per poi riprenderlo (comando r)

Per maggiori informazioni:

- man tcpsmash
- man nctcpsmash
- tcpsmash -h | nctcpsmash -h
- file README

Buon sniffing a tutti ^^
 
Rilasciata la 0.3.1. Ho implementato il garbage collector, in modo da ridurre al massimo qualsiasi memory leak nell'applicazione (e quindi libgc è una dipendenza dell'applicazione, se si vuole disabilitare il supporto per gc si può sempre, comunque, fare il build via `make HAS_GC= LDGC='), migliorato Makefile e Jamfile, e fixato un piccolo bug nella gestione dell'ARP, per cui dopo aver analizzato un pacchetto ARP l'analisi del pacchetto continuava come se fosse un normale pacchetto IP. Il link per il download è sempre lo stesso (ora raggiungibile anche via http://blacklight.gotdns.org/#project ), e ho aggiornato anche il GIT su http://github.com/BlackLight/tcpsmash (è consigliato, se possibile, scaricare l'ultima release di tcpsmash sempre da git, usando `git clone git://github.com/BlackLight/tcpsmash.git').
 
Rilasciata la versione 0.3.2, già scaricabile dal solito link o dal repository GIT.
La maggiore novità introdotta è la fusione fra TCPsmash e il preesistente ARPsmash. L'obiettivo è far diventare TCPsmash una suite completa per lo sniffing, fondendole anche un componente che faccia ARP poisoning e attacchi man-in-the-middle in rete locale. Ora è possibile già al momento del build usare arpsmash come eseguibile a sé stante (per il solo ARP poisoning), oppure sfruttare gli eseguibili stessi di tcpsmash e nctcpsmash per fare al volo sia packet sniffing che ARP poisoning. Esempio:

Codice:
nctcpsmash -i eth0 -1 192.168.1.1 -2 192.168.1.2 -f "not arp"

snifferà tutto il traffico di rete (tranne quello ARP, per evitare di essere sommersi dalla valanga di ARP reply generate da ARPsmash), e in parallelo farà anche poisoning e MITM fra 192.168.1.1 e 192.168.1.2. Quando l'eseguibile viene chiuso poi il segnale di chiusura viene intercettato da ARPsmash, che provvederà a fare il re-ARPing degli host avvelenati.

Fra gli altri cambiamenti,

- Jamfile non più supportato (tornerò a mettere a disposizione un Jamfile per il build solo quando quei deficienti degli sviluppatori si decideranno a scrivere un minimo di documentazione decente, fino ad allora non posso brancolare nel buio per esempi già pronti, e fino ad allora, per quanto sia figo, non potrà mai soppiantare un buon caro Makefile)

- Documentazione completa sul sorgente, disponibile sia in formato HTML che LaTeX nella directory doc/ e generata via Doxygen.

ChangeLog completo della nuova release:

Codice:
---- 0.3.2 Version:

- ARPsmash project has been merged into TCPsmash, and improved itself. Now you
can use the coolest packet sniffer also for doing man-in-the-middle attacks on
a local network by ARP poisoning.
You can use ARPsmash to make ARP poisoning both by its stand-alone executable
file, and using TCPsmash or NCtcpsmash, by using -1 and -2 options to identify
target hosts to poison.

- A little bug in NCtcpsmash, that caused a program crash when pressing any key
and no packet had been sniffed yet, has been fixed too.

- Jamfile support removed. Now build and install TCPsmash suite only using
Makefile. I'm going to include support for building and installation through
Jamfile only when it will become more documented. Currently, it's a real mess
a such powerful tool has no good documentation at all around the web.

- Complete source documentation added in doc/ directory, generated via Doxygen
both in HTML and LaTeX format.
 
nctcpsmash -i eth0 -1 192.168.1.1 -2 192.168.1.2 -f "not arp"

&

re-ARPing degli host avvelenati

è una figata! questo programma mi sta diventando m00lto utile..g00d!"
 
Stato
Discussione chiusa ad ulteriori risposte.