Terminal pogryzł człowieka: termshark
Dla wielu osób najciekawsze informacje to te, którą mogą podsłuchać ukradkiem. Czy to kwestia adrenaliny czy wychowania – nie wiadomo. Wiadomo jednak, ze kultura zdobywania informacji w nietypowy sposób ma wielowiekową tradycję. A stąd już tylko krok do pomysłu, żeby podglądać pakiety w sieci. I pierwsze co każdemu przychodzi do głowy to tcpdump. Jednak o ile jest to bardzo użyteczne narzędzie, to sposób w jaki prezentuje informacje wymaga niekiedy głębszego skupienia. Dlatego termshark może być nie mniej poręcznym kompanem dającym sporą wiedzę na temat pakietów jakie biegają w monitorowanej przez nas sieci.
Ale nic nie jest takie oczywiste na jakie wygląda. Termshark to eleganckie TUI (tekstowy interfejs) dla innego narzędzia – tshark. Który, jak wiemy, jest tekstowym wcieleniem wielbionego przez rzesze Wireshark. Wszystko to prowadzi jednak do tego samego celu. Za pomocą wspomnianych rozwiązań wyłapiemy z sieci dokładnie takie pakiety o jakie nam chodzi. A to za sprawą możliwości tworzenia rozbudowanych regułek filtrowania tego, co wpadło w sidła zastawione przez program.
Jest zatem termshark. I co dalej? W zasadzie na obecnym etapie rozwoju tego narzędzia musimy pogodzić się z tym, że najwygodniej będzie nim podglądać już wcześniej wygenerowane pliki pcap (zawierające zapis pakietów wyłapanych np. za pomocą tcpdump)…
./termshark -r nazwa-pliku.pcap
… lub podając konkretny interfejs i regułkę filtrowania (składnia jak dla Wireshark, tshark czy tcpdump):
./termshark -i enp0s3 -f "port 53"
Powyższe zadziała też bez dokładnego określania czy chodzi nam o plik czy regułę (-r, -f). Ale lepiej być precyzyjnym, aby na przyszłość uniknąć problemów.
W rezultacie błyśnie, huknie i naszym oczom ukaże się gustowny interfejs rozdzielający terminal na kilka okien. Najciekawsze są oczywiście miejsca, gdzie wyświetla się informacja na temat złapanych pakietów. Tutaj jest bez sensacji – widzimy skąd i dokąd pakiet danego typu się wybierał. Dociekliwi dostrzegą poniżej tej listy szczegółowy rozbiór zaznaczonego (wybranego) pakietu na czynniki pierwsze (ramka, protokół, informacje TCP/UDP) oraz prezentacje danych w HEX oraz ASCII. U samej góry będziemy mieli możliwość doprecyzowania filtrów wyświetlania tego, o co nam chodzi. Uwaga – filtr wyświetlania to nie to samo co filtr pakietów. Tutaj składnia jest taka jak w Wireshark – na szczęście termshark umiejętnie podsuwa nam stosowne podpowiedzi.
I pozornie wszystko wskazuje na to, że to wszystko. Niemniej pewien niuans decydujące o tym, że termshark bardzo ułatwia w trybie tekstowym dostęp do niektórych ciekawych informacji. Całość bowiem reaguje na nasze kliknięcia myszką. I nie chodzi tylko o przyciski funkcyjne, ale i rozwijanie wybranych elementów z informacjami, obsługę szczątkowego menu, wybór ostatnio otwieranych plików pcap, zaznaczanie, kopiowanie. Autor zapewnia, że funkcje programu wzbogacą się też o inne możliwości obsługiwane przez tshark.
Program rezyduje w repozytorium na Githubie, skąd możemy pobrać źródła tego narzędzia. Gdyby ktoś chciał tylko przetestować termshark bez uciekania się do magii kompilowania źródeł, z tego adresu może pozyskać przygotowaną przez autora binarkę dla Linuksa.