Jeśli znasz wroga i znasz siebie, nie musisz obawiać się wyniku stu bitew.
– Sun Tzu
Jeśli tcpdump jest jak stetoskop (szybki, niezawodny, słyszy wszystko), to tshark jest jak rezonans magnetyczny z opcją eksportu do Excela. Pozwala nie tylko zajrzeć w głąb pakietu, ale też rozebrać go na czynniki pierwsze i sformatować wynik tak, jak tego potrzebujesz.
Czym jest TShark?
TShark to terminalowy odpowiednik Wiresharka. Korzystają z tej samej biblioteki do dissekcji (analizy) pakietów. Oznacza to, że każdy filtr, który znasz z Wiresharka (http.request.method == "POST"), zadziała tutaj.
Dlaczego TShark?
- Automatyzacja: Możesz wrzucić go w crona, skrypt bashowy lub potok danych.
- Precyzja: Wyciągasz konkretne pola (np. tylko adresy URL) zamiast całych surowych pakietów.
- Headless: Działa tam, gdzie nie ma X Window System / Wayland.
Instalacja
Często jest w pakiecie z Wiresharkiem, ale warto się upewnić.
Debian / Ubuntu / Kali
sudo apt update
sudo apt install tsharkWażne: Podczas instalacji zostaniesz zapytany, czy użytkownicy inni niż root mogą przechwytywać pakiety. Dla bezpieczeństwa i wygody warto dodać swojego użytkownika do grupy wireshark.
sudo usermod -aG wireshark $USER (wymaga przelogowania)
RHEL / CentOS / Fedora
sudo dnf install wireshark-climacOS
brew install wiresharkPodstawowe użycie
Sprawdź dostępne interfejsy:
tshark -DNasłuchiwanie na konkretnym interfejsie (np. 1):
tshark -i 1Ale uwaga! TShark domyślnie “wypluwa” zdekodowane informacje na ekran, co przy dużym ruchu zaleje Twój terminal. Siła TSharka leży w filtrowaniu.
Dwa światy filtrów
To najważniejsza koncepcja do zrozumienia w ekosystemie Wiresharka/TSharka.
1. Capture Filters (Filtry przechwytywania) -f
Działają przed zapisaniem pakietu. Odrzucają śmieci na wejściu. Używają składni BPF (tak jak tcpdump). Są szybkie.
# Łap tylko ruch na porcie 80
tshark -f "port 80"
# Łap tylko ruch hosta 192.168.1.5
tshark -f "host 192.168.1.5"2. Display Filters (Filtry wyświetlania) -Y
Działają na przechwyconych pakietach. Są wolniejsze, ale mają dostęp do pełnej struktury protokołów (ponad 200,000 pól). To te same filtry, które wpisujesz w pasek na górze Wiresharka.
# Pokaż tylko żądania HTTP POST
tshark -Y "http.request.method == POST"
# Pokaż pakiety z błędnym sumą kontrolną TCP
tshark -Y "tcp.checksum.status == Bad"Pro Tip: Jeśli analizujesz duży plik pcap, używaj -2 (two-pass analysis). TShark przejdzie przez plik dwa razy – raz, żeby zbudować kontekst (np. fragmentację IP), a drugi raz, żeby nałożyć filtry. To niezbędne dla poprawności niektórych statystyk.
Potęga formatowania: -T fields
To jest “killer feature” TSharka. Zamiast oglądać szum, wyciągnij tylko to, co Cię interesuje.
Składnia: -T fields -e [nazwa_pola] -e [nazwa_pola2]
Przykład 1: Wyciągnij odwiedzane domeny (DNS)
tshark -i eth0 -f "udp port 53" -Y "dns.flags.response == 0" -T fields -e dns.qry.namePrzykład 2: Zrób listę User-Agent z ruchu HTTP
tshark -r traffic.pcap -Y "http.request" -T fields -e http.user_agent | sort | uniq -cPrzykład 3: JSON dla programistów
Chcesz obrobić dane w Pythonie lub jq?
tshark -r traffic.pcap -T json | jq .(O jq będzie osobny odcinek!)
Statystyki w terminalu
TShark potrafi generować raporty bez konieczności ręcznego liczenia.
Hierarchia protokołów (co lata w sieci?):
tshark -r traffic.pcap -q -z io,phsLista konwersacji IP:
tshark -r traffic.pcap -q -z conv,ip(Flaga -q ucisza wypisywanie każdego pakietu, zostawiając tylko wynik statystyk)
Bufor kołowy (Ring Buffer)
Nie chcesz zapchać dysku? Użyj bufora kołowego. TShark będzie pisał do X plików, a po zapełnieniu najstarszego – nadpisze go.
# Trzymaj 10 plików, każdy po 100MB
tshark -i eth0 -b filesize:100000 -b files:10 -w capture.pcapIdealne do łapania rzadkich błędów (“zostaw na noc, rano sprawdzimy”).
TShark vs Tcpdump
| Cecha | Tcpdump | TShark |
|---|---|---|
| Zastosowanie | Szybkie zbieranie, prosta analiza | Głęboka analiza, ekstrakcja danych |
| Zasoby | Lekki, działa na tosterze | Cięższy, zjada RAM przy dużych plikach |
| Rozumienie protokołów | Podstawowe (nagłówki) | Pełne (payload, L7) |
| Wyjście | Tekstowe, surowe | Fields, JSON, XML, ElasticSearch |
Aspekty prawne
PAMIĘTAJ: Podsłuchiwanie sieci, do której nie masz uprawnień, jest nielegalne. TShark widzi wszystko – w tym hasła przesyłane otwartym tekstem (HTTP, Telnet, FTP) oraz treść maili. Używaj go tylko do:
- Debugowania własnych aplikacji
- Analizy własnej sieci
- Audytów bezpieczeństwa, na które masz zgodę
Podsumowanie praktyczne
TShark to narzędzie dla tych, którzy wiedzą, czego szukają. Jeśli tcpdump służy do tego, żeby nagrać wszystko “jak leci”, to tshark służy do tego, żeby z tego nagrania wyciąć precyzyjnie te 3 pakiety, które dowodzą włamania.
Twoja ścieżka rozwoju w serii “Wróćmy do podstaw”:
netcat- nawiązywanie połączeń (aktywne)tcpdump- nagrywanie ruchu (pasywne, szybkie)tshark- analiza i ekstrakcja danych (pasywne, dokładne)
W następnym odcinku: lsof/fuser – czyli jak sprawdzić, który proces na Twoim systemie generuje ten podejrzany ruch, który właśnie wykryłeś TSharkiem.
Przydatne zasoby
Podsumowanie
TShark to narzędzie, które wybacza mniej niż Wireshark, ale oferuje znacznie więcej w zamian. Pozwala na automatyzację procesów, które wcześniej wymagały godzin żmudnej pracy, a jego zdolność do ekstrakcji konkretnych pól czyni go niezastąpionym w rękach analityka bezpieczeństwa.
Kluczowe punkty do zapamiętania
- Odróżniaj filtr przechwytywania (
-f) od filtra wyświetlania (-Y) - Używaj
-T fields, aby wyciągać tylko potrzebne dane - Pamiętaj o
-2przy skomplikowanych filtrach na plikach pcap - JSON to Twój przyjaciel, jeśli planujesz dalszą obróbkę danych skryptami
- Zawsze działaj zgodnie z prawem i etyką
Materiały dostępne również na wrocmy-do-podstaw/tshark
Cheatsheet można podejrzeć na cheatsheet/tshark