Pogłębiony samouczek Wireshark

Pogłębiony samouczek Wireshark
Wireshark to open source i bezpłatny narzędzie inspekcji ruchu sieciowego. Uchwyty i wyświetla pakiety w czasie rzeczywistym do analizy offline w formacie odczytującym człowieka z mikroskopijnymi szczegółami. Wymaga to rozsądnej wiedzy na temat podstawowej sieci i jest uważane za niezbędne narzędzie dla administratorów systemów i ekspertów bezpieczeństwa sieci.

Wireshark jest defacto narzędziem do kilku problemów sieciowych, które różnią się od rozwiązywania problemów z siecią, badaniem problemu bezpieczeństwa, kontroli ruchu sieciowego podejrzanego aplikacji, implementacji protokołu debugowania, wraz z celami uczenia się protokołu sieciowego itp.

Projekt Wireshark został zainicjowany w 1998 roku. Dzięki dobrowolnemu wkładowi globalnego eksperta ds. Networkingów nadal aktualizuje nowe technologie i standardy szyfrowania. Dlatego jest to zdecydowanie jedno z najlepszych narzędzi analizatorów pakietów i jest wykorzystywane jako standardowe narzędzie komercyjne przez różne agencje rządowe, instytuty edukacyjne i organizacje non-profit.

Narzędzie Wireshark składa się z bogatego zestawu funkcji. Niektóre z nich są następującymi:

  • Multiplatform: Jest dostępny dla systemów UNIX, Mac i Window.
  • Przechwytuje pakiety z różnych mediów sieciowych, i.mi., Wireless LAN, Ethernet, USB, Bluetooth itp.
  • Otwiera pliki pakietów przechwycone przez inne programy, takie jak Oracle Snoop i Acmsnoop, NMAP, TCPDUMP, Microsoft Network Monitor, Snort i wiele innych.
  • Zapisuje i eksportuje przechwycone dane pakietów w różnych formatach (CSV, XML, PlainText itp.).
  • Zapewnia obsługę opisu protokołów, w tym SSL, WPA/WPA2, IPSEC i wielu innych.
  • Zawiera filtry przechwytywania i wyświetlania.

Jednak Wireshark nie ostrzega cię o żadnej złośliwej aktywności. Pomoże ci to tylko sprawdzić i określić, co dzieje się w Twojej sieci. Ponadto będzie analizował wyłącznie protokół sieciowy i nie będzie wykonywać żadnych innych działań, takich jak wysyłanie/przechwytywanie pakietów.

Ten artykuł zawiera dogłębny samouczek, który zaczyna się od podstaw (i.mi., Filtrowanie, warstwy sieci Wireshark itp.) i zabiera cię w głębokość analizy ruchu.

Filtry Wireshark

Wireshark jest wyposażony w mocne silniki filtrów, filtry przechwytywania i filtry wyświetlacza, aby usunąć szum z sieci lub już przechwycony ruch. Te filtry zawęzą niezarejestrowany ruch i wyświetla tylko pakiety, które chcesz zobaczyć. Ta funkcja pomaga administratorom sieci w rozwiązywaniu problemów.

Przed przejściem do szczegółów filtrów. Jeśli zastanawiasz się, jak przechwytywać ruch sieciowy bez żadnego filtra, możesz nacisnąć Ctrl+E lub przejść do opcji przechwytywania w interfejsie Wireshark i kliknij Start.

Teraz zagłębmy się w dostępne filtry.

Filtr przechwytujący

Wireshark zapewnia wsparcie w zmniejszaniu rozmiaru surowego przechwytywania pakietu, umożliwiając użycie filtra przechwytywania. Ale przechwytuje tylko ruch pakietu, który pasuje do filtra i lekceważy resztę. Ta funkcja pomaga monitorować i analizować ruch określonej aplikacji za pomocą sieci.

Nie myl tego filtra z filtrami wyświetlania. To nie jest filtr wyświetlacza. Ten filtr pojawia się w głównym oknie, które jest potrzebne do ustawienia przed rozpoczęciem przechwytywania pakietu. Ponadto nie można zmodyfikować tego filtra podczas przechwytywania.

Możesz iść do Schwytać opcja interfejsu i wybierz Zdobyt filtry.

Zostaniesz poproszony o okno, jak pokazano w migawce. Możesz wybrać dowolny filtr z listy filtrów lub dodać/utworzyć nowy filtr, klikając + przycisk.

Przykłady listy pomocnych filtrów przechwytywania:

  • host ip_address - przechwytuje ruch, tylko między konkretnym komunikacyjnym adresem IP
  • Net 192.168.0.0/24 - przechwytuje ruch między zakresami adresów IP/CIDR
  • Port 53 - przechwytuje ruch DNS
  • TCP Portrange 2051-3502 - przechwytuje ruch TCP z zakresu portów 2051-3502
  • Port nie 22, a nie 21 - Uchwyć cały ruch z wyjątkiem SSH i FTP

Filtr wyświetlania

Filtry wyświetlacza pozwalają ukryć niektóre pakiety przed uchwyconym ruchem sieciowym. Te filtry można dodać powyżej przechwyconej listy i mogą być modyfikowane w locie. Możesz teraz kontrolować i zawęzić pakiety, na których chcesz się skoncentrować, ukrywając niepotrzebne pakiety.

Możesz dodać filtry na pasku narzędzi filtra wyświetlania tuż nad pierwszym okienkiem zawierającym informacje o pakiecie. Ten filtr może być używany do wyświetlania pakietów na podstawie protokołu, adresu IP źródłowego, adresu IP docelowego, portów, wartości i informacji pól, porównanie pól i wiele więcej.

Zgadza się! Możesz zbudować kombinację filtrów za pomocą operatorów logicznych, takich jak ==.!=, ||, &&, itp.

Niektóre przykłady filtrów wyświetlania pojedynczego protokołu TCP i filtra kombinacyjnego pokazano poniżej:

Warstwy sieciowe w Wireshark

Oprócz kontroli pakietów, Wireshark przedstawia warstwy OSI, które pomaga w procesie rozwiązywania problemów. Wireshark pokazuje warstwy w odwrotnej kolejności, takie jak:

  1. Warstwa fizyczna
  2. Warstwa łącza danych
  3. Warstwa sieci
  4. Warstwa transportowa
  5. Warstwa aplikacji

Zauważ, że Wireshark nie zawsze pokazuje warstwę fizyczną. Teraz kopiemy każdą warstwę, aby zrozumieć ważny aspekt analizy pakietów i to, co każda warstwa przedstawia w Wireshark.

Warstwa fizyczna

Warstwa fizyczna, jak pokazano w poniższej migawce, przedstawia fizyczne podsumowanie ramki, takie jak informacje o sprzęcie. Jako administrator sieci, na ogół nie wydobywasz informacji z tej warstwy.

Warstwa łącza danych

Następna warstwa linków danych zawiera adres karty sieciowej i docelowej. Jest to stosunkowo proste, ponieważ dostarcza tylko ramkę od laptopa do routera lub następnej sąsiedniej ramki w medium fizycznym.

Warstwa sieci

Warstwa sieciowa przedstawia źródłowe i docelowe adresy IP, wersję IP, długość nagłówka, całkowitą długość pakietu i ładunki innych informacji.

Warstwa transportowa

W tej warstwie Wireshark wyświetla informacje o warstwie transportowej, która składa się z portu SRC, portu DST, długości nagłówka i numeru sekwencji, które zmieniają się dla każdego pakietu.

Warstwa aplikacji

W końcowej warstwie możesz zobaczyć, jaki rodzaj danych jest wysyłany na medium i jakiej aplikacji jest używana, na przykład FTP, HTTP, SSH itp.

Analiza ruchu

Analiza ruchu ICMP

ICMP służy do raportowania i testowania błędów, określając, czy dane docierają do zamierzonego miejsca docelowego na czas, czy nie. Ping narzędzie używa komunikatów ICMP do przetestowania prędkości połączenia między urządzeniami i zgłoszenia, ile czasu zajmuje pakiet, aby dotrzeć do miejsca docelowego, a następnie wrócić.

Ping używa komunikatu ICMP_ECHO_REQUEST do urządzenia w sieci, a urządzenie odpowiada komunikatem ICMP_echo_reply. Aby przechwytywać pakiety na Wireshark, rozpocznij funkcję przechwytywania Wireshark, otwórz terminal i uruchom następujące polecenie:

Ubuntu $ Ubuntu: ~ $ ping Google.com

Używać Ctrl+c Aby zakończyć proces przechwytywania pakietów w Wireshark. W poniższej migawce można zauważyć Pakiet ICMP Send = ICMP Packet Otrzymane z 0% utraty pakietu.

W okienku przechwytywania Wireshark wybierz pierwszy pakiet ICMP_ECHO_REQUEST i obserwuj szczegóły, otwierając panela środkowego WIRSHARK.

W warstwie sieci można zauważyć źródło Src Jako mój ip_adress, podczas gdy cel Dst IP_ADDRESS jest z serwera Google, podczas gdy warstwa IP wspomina o protokole jako ICMP.

Teraz powiększamy szczegóły pakietu ICMP, rozszerzając protokół komunikatu sterowania Internetem i dekodujemy podświetlone pola w migawce poniżej:

  • Typ: 08-bitowy ustawiony na 8 oznacza komunikat o żądanie echo
  • Kod: Zawsze zero dla pakietów ICMP
  • Suma kontrolna: 0x46c8
  • Numer identyfikatora (BE): 19797
  • Numer identyfikatora (LE): 21837
  • Numer sekwencji (BE): 1
  • Numer sekwencji (LE): 256

Identyfikator i numery sekwencji są dopasowane, aby pomóc w identyfikacji odpowiedzi na echo żądań. Podobnie, przed transmisją pakietu, suma kontrolna jest obliczana i dodawana do pola, aby porównać z sumą kontrolną w odebranym pakiecie danych.

Teraz, w pakiecie odpowiedzi ICMP, zauważ warstwę IPv4. Adresy źródłowe i docelowe zostały zamienione.

W warstwie ICMP sprawdź i porównaj następujące ważne pola:

  • Typ: 08-bitowe ustawione na 0 oznacza echo odpowiedzi
  • Kod: Zawsze 0 dla pakietów ICMP
  • Suma kontrolna: 0x46c8
  • Numer identyfikatora (BE): 19797
  • Numer identyfikatora (LE): 21837
  • Numer sekwencji (BE): 1
  • Numer sekwencji (LE): 256

Możesz zauważyć, że odpowiedź ICMP przypomina tę samą kontrolę kontrolną, identyfikator i numer sekwencji.

Analiza ruchu HTTP

HTTP to protokół warstwy przesyłania hipertekstów. Jest używany przez World Wide Web i definiuje reguły, gdy klient/serwer HTTP przesyła/odbiera polecenia HTTP. Najczęściej stosowane metody HTTP AE Post i uzyskaj:

POST: Ta metoda służy do bezpiecznego wysyłania poufnych informacji do serwera, który nie pojawia się w adresie URL.

DOSTAWAĆ: Ta metoda jest zwykle używana do pobierania danych z paska adresu z serwera internetowego.

Zanim zagłębimy się głębiej w analizę pakietów HTTP, najpierw krótko zademonstrujemy trójdrożny uścisk TCP w Wireshark.

TCP TREATWAY HAND HAND SHAKE

W trójstronnym uścisku dłoni klient inicjuje połączenie, wysyłając pakiet SYN i otrzymując odpowiedź SYN-ACK z serwera, który jest potwierdzony przez klienta. Użyjemy polecenia NMAP TCP Connect Scan, aby zilustrować uścisk dłoni TCP między klientem a serwerem.

Ubuntu $ ubuntu: ~ $ nmap -st Google.com

W okienku przechwytywania pakietu Wireshark przewiń na górę okna, aby zauważyć różne trzydroundowe uściski ustalone na podstawie konkretnych portów.

Użyj TCP.port == 80 Filtr, aby sprawdzić, czy połączenie jest ustanowione za pomocą portu 80. Możesz zauważyć kompletny trójdrożny uścisk ręki, ja.mi., Syn, Syn-ACK, I Ack, Podświetlone u góry migawki, ilustrujące niezawodne połączenie.

Analiza pakietów HTTP

W celu analizy pakietów HTTP przejdź do przeglądarki i wklej URL dokumentacji Wireshark: http: // www.gofrownica.com i pobierz przewodnik użytkownika pdf. W międzyczasie Wireshark musi przechwytywać wszystkie pakiety.

Zastosuj filtr HTTP i poszukaj HTTP GET żądanie wysłane do serwera przez klienta. Aby wyświetlić pakiet HTTP, wybierz go i rozwinąć warstwę aplikacji w środkowym okienku. Na żądanie może być wiele nagłówków, w zależności od strony internetowej i przeglądarki. Przeanalizujemy nagłówki obecne w naszym żądaniu w poniższej migawce.

  • Metoda żądania: Metoda żądania HTTP jest
  • Gospodarz: identyfikuje nazwę serwera
  • Agent użytkownika: informuje o typach przeglądarki po stronie klienta
  • Zaakceptuj, akceptuj, akceptuj language: informuje serwer o typu pliku, akceptowany kodowanie po stronie klienta, i.mi., GZIP itp., i zaakceptowany język
  • Kontrola pamięci podręcznej: pokazuje, w jaki sposób wymagane informacje są buforowane
  • Pragma: pokazuje nazwę i wartości pliku cookie, które przeglądarka posiada dla strony internetowej
  • Połączenie: nagłówek, który kontroluje, czy połączenie pozostaje otwarte po transakcji

w Http ok Pakiet z serwera do klienta, obserwowanie informacji w warstwie protokołu przesyłania hipertexta pokazuje „200 OK". Ta informacja wskazuje normalne pomyślne przeniesienie. W pakiecie HTTP OK możesz obserwować różne nagłówki w porównaniu z HTTP GET paczka. Te nagłówki zawierają informacje o żądanej treści.

  • Wersja odpowiedzi: informuje o wersji HTTP
  • Kod stanu, wyrażenie odpowiedzi: Wysłane przez serwer
  • Data: czas, w którym serwer otrzymał HTTP, zdobądź pakiet
  • Serwer: Szczegóły serwera (Nginx, Apache itp.)
  • Typ zawartości: Rodzaj treści (JSON, TXT/HTML itp.)
  • Długość treści: Całkowita długość treści; Nasz plik to 39696 bajtów

W tej sekcji dowiedziałeś się, jak działa HTTP i co się stanie, gdy zażądamy treści w Internecie.

Wniosek

Wireshark jest najpopularniejszym i potężnym narzędziem sniffer i analizy sieciowej. Jest szeroko stosowany w codziennych zadaniach analizy pakietów w różnych organizacjach i instytutach. W tym artykule studiowaliśmy niektóre tematy dla początkujących do średniego poziomu Wireshark w Ubuntu. Nauczyliśmy się rodzaju filtrów oferowanych przez Wireshark do analizy pakietów. Omówiliśmy model warstwy sieciowej w Wireshark i przeprowadziliśmy dogłębną analizę pakietów ICMP i HTTP.

Jednak uczenie się i zrozumienie różnych aspektów tego narzędzia to długa ciężka podróż. Dlatego dostępnych jest wiele innych wykładów online i samouczków, które pomogą Ci w określonych tematach Wireshark. Możesz śledzić oficjalny przewodnik użytkownika dostępny na stronie internetowej Wireshark. Ponadto, po zbudowaniu podstawowego zrozumienia analizy protokołu, zaleca się również użycie narzędzia takiego jak Varonis, które wskazuje na potencjalne zagrożenie, a następnie użyć Wireshark do badania w celu lepszego zrozumienia.