Tshark jest to analizator ruchu sieciowego, pozwala na przechwytywanie pakietów krążących w lokalnej sieci. Jest to wersja Wiresharka pozbawiona wygodnego GUI.
W ostatnim czasie potrzebowałem wydobyć interesujące mnie informacje ze zrzuconych danych pakietowych do plików wygenerowanych przez tsharka. Ze względu na fakt, iż nie były to czyste dane lecz też nagłówki protokołów sieciowych oraz ramki musiałem te dane odpowiednio wyłuskać.
Napisałem do tego celu skrypt w pythonie, który interesujące mnie pakiety wydobył z pliku i zapisał na wyjściu. Widać po kodzie, że pisany był w pewien sposób pod protokół gadu-gadu.
Poniżej przedstawiam przykładowy fragment danych przechwyconych przez tsharka.
- Transmission Control Protocol, Src Port: 6348 (6348), Dst Port: 3Com-nsd (1742), Seq: 96, Ack: 28, Len: 35
- Source port: 6348 (6348)
- Destination port: 3Com-nsd (1742)
- Sequence number: 96 (relative sequence number)
- [Next sequence number: 131 (relative sequence number)]
- Acknowledgement number: 28 (relative ack number)
- Header length: 20 bytes
- Flags: 0x18 (PSH, ACK)
- 0... .... = Congestion Window Reduced (CWR): Not set
- .0.. .... = ECN-Echo: Not set
- ..0. .... = Urgent: Not set
- ...1 .... = Acknowledgment: Set
- .... 1... = Push: Set
- .... .0.. = Reset: Not set
- .... ..0. = Syn: Not set
- .... ...0 = Fin: Not set
- Window size: 65250
- Checksum: 0x14eb [correct]
- [Good Checksum: True]
- [Bad Checksum: False]
- [SEQ/ACK analysis]
- [TCP Analysis Flags]
- [This frame is a (suspected) out-of-order segment]
- Data (35 bytes)
radek@:~/# ./extract.py extract.py <dumped_file> <protocol> <out_file>
Analogicznie do powyższego schematu na wejściu do skryptu podajemy nazwę pliku ze zrzuconymi pakietami, protokół który nas interesuje oraz plik wyjściowy.
Protokołem może być dla przykładu gadugadu lub też numer portu. Przykładowo:
radek@:~/# ./extract.py dumped.dmp gadugadu out.dmp
Skrypt do pobrania poniżej.
karpowicz.net
gmail.com
0 Responses to “Tshark - zrzut pakietów z danymi”