Przygotowanie środowiska pracy w Wireshark – kolorowanie ramek

Łukasz Kowalski
Łukasz Kowalski Skomentuj

Podczas inwestygacji problemu sieciowego czasem trzeba zejść do poziomu pojedynczych ramek, czyli troubleshooting’u na poziomie warstwy drugiej modelu sieciowego ISO/OSI. W sieciach WLAN jest to podstawa zaawansowanych poszukiwań przyczyny problemu, bez której czasem po prostu nie można zrobić nic. Wireshark jest jednym z narzędzi umożliwiających przeprowadzenie takiego śledztwa.

Zbieranie ruchu w sieci bezprzewodowej

O Wireshark każdy sieciowiec powinien słyszeć, a umiejętność jego obsługi jest pozytywną i przydatną cechą. Samo uruchomienie programu i zebranie jakichś danych nie jest niczym trudnym, ale już zrozumienie tego co pojawiło się jako wynik tej operacji to nie jest bułka z masłem.

Ale zanim w ogóle zaczniemy zbierać ruch to przyjrzyjmy się wymaganiom jakie stawia przed nami świat sieci bezprzewodowych. Zgodnie ze standardem IEEE 802.11 każda stacja bezprzewodowa, która nie transmituje, może nasłuchiwać na wybranym kanale i analizować nagłówki przybywających ramek. Jeśli po sprawdzeniu adresu MAC stacja stwierdzi, że nie jest adresatem danej ramki, to powinna ją natychmiast odrzucić i nie pobierać dalszej zawartości.

Jak to zatem możliwe, że Wireshark potrafi zebrać ruch pomiędzy innymi stacjami bezprzewodowymi, a nie tylko z tej i do tej maszyny na której jest uruchomiony? Jest to możliwe dzięki trybowi Monitor Mode, w jaki można ustawić niektóre bezprzewodowe karty sieciowe. Tryb ten czasem określany jest też mianem RFMON Mode. Dzięki niemu karta bezprzewodowa będzie w stanie zebrać wszystkie ramki 802.11 jakie tylko usłyszy.

Poniżej przedstawiam kilka najważniejszych zasad dotyczących zbierania i analizy ruchu w sieci bezprzewodowej:

  • Bezprzewodowa karta sieciowa działająca w trybie standardowym zbierze wyłącznie ruch z i do maszyny, na której włączony jest Wireshark. Dodatkowo będą to tylko pakiety danych i tym samym nie znajdziemy tam ramek typu Management i Control. Aby było jeszcze ciekawiej nie znajdziemy tam informacji na temat radia, takich jak np. kanał, częstotliwość czy siła sygnału, ponieważ sterownik karty sieciowej przetłumaczy nagłówki 802.11 na podrobione nagłówki Ethernetowe.
  • Tryb Monitor Mode daje dużo więcej możliwości. Przede wszystkim bezprzewodowa karta sieciowa zbierze wszelkie ramki jakie usłyszy, nawet wtedy, gdy wiadomość nie jest wysłana z lub do maszyny, na której włączony jest Wireshark. Ponadto wszelkie ramki typu Data, Management i Control mogą być zebrane i będą zawierać oryginalny nagłówek 802.11 z wszelkimi informacjami na temat transmisji radiowej.
  • Istnieje ryzyko, że po przełączeniu karty sieciowej w tryb Monitor Mode stracimy obecne połączenie z siecią bezprzewodową i nawet nie będziemy w stanie nawiązać nowego połączenia do czasu powrotu do trybu standardowego.
  • Tryby w jakich może działać karta sieciowa i ogólnie zbieranie ruchu są mocno uzależnione od platformy sprzętowej na której jest uruchomiony ten proces, użytego modelu karty sieciowej, jej sterowników, bibliotek z których korzysta Wireshark oraz wielu innych czynników.
  • Może się okazać, że dany sprzęt w ogóle nie nadaje się do zaawansowanego zbierania ruchu.
  • Mac OS i różnego rodzaju dystrybucje Linuxa są dobrym wyborem systemu operacyjnego na którym zamierzamy włączyć zbieranie ruchu.
  • Czasem wymagana jest instalacja dedykowanych sterowników karty sieciowej do poprawnego zbierania ruchu. Pamiętaj, że takie sterowniki mogą z kolei mieć problem z podstawowymi funkcjami wymaganymi do pracy w trybie standardowym, jak np. poprawne wspieranie metody WPA2-Enterprise. W takim przypadku pamiętaj żeby po skończonej inwestygacji przywrócić poprzednie sterowniki.
  • Możliwe jest wybranie konkretnych kanałów z których chcemy zebrać ruch. Jeśli sieć bezprzewodowa nad którą pracujemy korzysta na częstotliwości 2.4 GHz tylko z kanałów 1, 6 i 11, to naturalną rzeczą będzie ustawienie zbierania danych tylko z tych kanałów. Skanowanie nieużywanych kanałów można przeprowadzić co jakiś czas w celu poszukiwania wrogich urządzeń.
  • Karta sieciowa w jednym momencie może skanować tylko jeden kanał, więc oczywiście wybierając więcej kanałów skraca się średni czas przeznaczony na każdy z nich, a w konsekwencji tracimy część danych. Dobrym pomysłem może być ustawienie czasu skanowania na nieużywanych kanałach na 100-200 ms oraz co najmniej kilka sekund na kanałach używanych. Tym sposobem łączymy obie funkcjonalności.
  • Musisz posiadać odpowiednią kartę sieciową do zbierania wymaganego ruchu. Jeśli masz kartę działającą tylko na 2.4 GHz to naturalnie nie zbierzesz ruchu z kanałów na 5 GHz, czyli mówiąc wprost nie będzie Ci dane zobaczyć ramki wysyłane w standardach np. 802.11a i 802.11ac. Podobnie mając kartę działającą w standardzie 802.11n nie będziesz w stanie zebrać ruchu 802.11ac. I na koniec – mając kartę 802.11ac 3×3:2 nie będziesz w stanie poznać całej historii ruchu WLAN generowanego przez urządzenia 802.11ac 3×3:3 z powodu mniejszej liczby wspieranych strumieni przestrzennych (ang. spatial streams).
  • Zbieranie ruchu 802.11 może być zabronione w prawie danego państwa lub regionu, a także w przepisach danej firmy czy organizacji. Zatem zawsze upewnij się jakie są obowiązujące przepisy zanim przystąpisz do pracy.

Jeśli chcesz dogłębnie poznać wszelkie szczegóły techniczne to zachęcam do zapoznania się z Wiki Wireshark dla sieci WLAN.

Kolorowanie ramek w Wireshark

Niezwykle przydatną funkcjonalnością jest kolorowanie ramek ukrywające się w Wireshark pod opcją o nazwie Coloring Rules. Najlepiej będzie jak po prostu pokażę Ci stan początkowy i efekt po nałożeniu kolorów. Jako przykład użyję jedną z próbek ruchu dostępnych na stronie Wireshark, a dokładniej mówiąc plik „Network_Join_Nokia_Mobile.pcap”.

Domyślnie Wireshark koloruje wszystkie typy ramek używając jednego koloru. A w zasadzie to nie koloruje bo wszystkie są białe, co może jednak zależeć od wybranej skórki programu. Wygląda to tak:

Przykładowa próbka ruchu przed kolorowaniem.
Przykładowa próbka ruchu przed kolorowaniem.

A taki efekt osiągniemy po włączeniu kolorowania:

Ta sama próbka ruchu co powyżej - tym razem po zastosowaniu reguł kolorowania.
Ta sama próbka ruchu co powyżej – tym razem po zastosowaniu reguł kolorowania.

Czyż nie jest pięknie? Zebrany ruch od razu staje się bardziej przejrzysty i można wyrobić sobie nawyki w rozpoznawaniu komunikacji po kolorach, co pozwoli szybciej i lepiej zrozumieć to, co udało się zebrać podczas nasłuchiwania.

Poniżej znajduje się krótka instrukcja:

Włącz program Wireshark, idź do View > Coloring Rules:

Przejście do konfiguracji reguł kolorowania.
Przejście do konfiguracji reguł kolorowania.

W oknie Coloring Rules kliknij Import i wybierz pobrany plik konfiguracyjny:

Okno z regułami kolorowania przed zaimportowaniem pliku konfiguracyjnego.
Okno z regułami kolorowania przed zaimportowaniem pliku konfiguracyjnego.

Kliknij OK w celu potwierdzenia zmian:

Okno z regułami kolorowania po zaimportowaniu pliku konfiguracyjnego.
Okno z regułami kolorowania po zaimportowaniu pliku konfiguracyjnego.

Włącz kolorowanie poprzez View > Colorize Packet List lub odpowiadający skrót na pasku narzędzi:

Włączenie kolorowania ramek.
Włączenie kolorowania ramek.

I to tyle!
Reguły kolorowania tworzy się korzystając z filtrów ramek. W tym przypadku po znalezieniu ramki 802.11 o zadanym podtypie wskazuję kolor tła, jaki ma być przypisany do wszystkich wystąpień takiej ramki. Dla przykładu ramki Beacon można wyfiltrować w następujący sposób:

wlan.fc.type_subtype == 8
TAGI:
Zostaw komentarz
Otrzymuj powiadomienia z tej dyskusji
Powiadom mnie o
guest

0 - Ilość komentarzy
Inline Feedbacks
View all comments