# » course » networking-fundamentals » Topic.12
Podstawy analizy ruchu sieciowego (WireShark)
Program WireShark (dawniej Ethereal) służy do analizy ruchu sieciowego. Jest to popularny sniffer dostępny bezpłatnie na wiele systemów operacyjnych. Sniffer to narzędzie pozwalające przechwytywać pakiety, analizować wydajność sieci, testować ją, budować raporty oraz wykonywać szereg innych, niezwykle przydatnych dla administratora, zadań.
Analizatory sieciowe umożliwiają dokładną analizę przesyłanych danych w podsieci, do której jest podłączony komputer z odpowiednim programem. Można dzięki temu uzyskać informacje o rodzaju usług i protokołach wykorzystywanych w sieci, adresach komputerów z którymi się łączą użytkownicy danej podsieci, treści przesyłanych danych, itd. Umożliwia to lepsze zrozumienie działania sieci, ułatwia ewentualną lokalizację błędów lub intruzów, daje informacje służące do poprawy działania sieci lub jej modernizacji.
Sniffery są też jednymi z ulubionych narzędzi sieciowych włamywaczy. W sieci lokalnej, poprzez odpowiednią manipulację jej infrastrukturą, np. za pomocą ARP poisoningu, pozwalają przechwytywać pakiety innych użytkowników i w ten sposób ich podsłuchiwać.
Filtrowanie danych
- Jeśli zależy nam na tym, alby filtrować komputer po adresie IP, w pole filtru wpisujemy:
ip.addr == 1.2.3.4 - Jeśli zależy nam na odszukaniu hosta po adresie fizycznym MAC, to wpisujemy:
eth.addr == 11:22:ff:ff:22:11 - Jeśli szukamy kilku komputerów, możemy posłużyć się spójnikiem or:
eth.addr == 11:22:ff:ff:22:11 or eth.addr == 11:33:ff:ff:33:11 - Aby zastosować wykluczenie – czyli wszystkie adresy poza określonym, dodajemy z przodu wykrzyknik:
!(ip.addr == 1.2.3.4) - Analiza ruchu na porcie 80:
tcp.port == 80 - Dedykowany filtr do analizy protokołu http:
http
http.host == www.onet.pl
Więcej informacji o filtrze http pod adresem: www.wireshark.org/docs/dfref/h/http.html - Transmisja HTTPS:
ssl - Transmisja FTP:
ftp or ftp-data - Przechwytywanie hasła w czystym FTP:
ftp.request.command == „USER” or ftp.request.command == „PASS” - Poczta elektroniczna:
smtp and pop3 - Jeśli chcemy odfiltrowywać wstępnie tylko źródłowe adresy e-mail, z których wysyłane są wiadomości stosujemy filtr:
smtp.req.command == „MAIL” and smtp.req.parameter contains „FROM” - Jeśli zaś interesują nas odbiorcy wiadomości, możemy ustawić filtr:
smtp.req.command == „RCPT” - Aby odfiltrowywać jedynie wiadomości, wpisujemy jako filtr:
pop.response.indicator == „+OK” and pop.response.description contains „octets” - Jeśli zainteresowani jesteśmy przechwyceniem jawnego hasła, stosujemy:
pop.request.command == „PASS”
Pełna dokumentacja filtrów dostępna jest pod adresem: https://www.wireshark.org/docs/dfref/
Przykład filtrowania danych w programie Wireshark
- Główne okno programu. Wybieramy z listy dostępnych w systemie kart sieciowych tą przy pomocy której chcemy przechwytywać ruch

- Program automatycznie zacznie pokazywać przechwycone dane pokazując numer kolejny, czas, źródło, cel transmisji, protokół, długość (wielkość) i dodatkowe informacje. Tak długo jak nie zatrzymamy przechwytywania program będzie pobierał i pokazywał nowe pakiety.

- Po wpisaniu w okno filtru frazy: ssl program pokaże tylko ruch zaszyfrowany. W tym przypadku jest to TLSv1.2.

- Po wpisaniu w okno filtru frazy: ftp program nic nie pokazał. Nie było w tym czasie transmisji z użyciem tego protokołu.

- Po wpisaniu w okno filtru frazy: dns uzyskujemy inny widok ruchu sieciowego związanego tym razem z protokołem DNS.

- Po wpisaniu w okno filtru frazy: http możemy zobaczyć niezaszyfrowaną transmisję przy użyciu protokołu HTTPv1.1.
Analizowanie pojedynczego pakietu nie daje wglądu w całość transmisji, która z pewnością była pofragmentowana i przesyłana za pomocą wielu pakietów. Możemy "poskładać" transmisję wybierając z menu kontekstowego opcję Podążaj a następnie Strumień TCP lub Strumień HTTP w zależności od rodzaju protokołu jaki chcemy podejrzeć.
- Program złoży z pakietów transmisję pokazując: żądanie od klienta (czerwone) i odpowiedź od serwera (niebieskie).

- Widać wyraźnie nagłówki żądania i odpowiedzi oraz przesyłane dane.

- Wynik działania programu możemy zapisać do późniejszej analizy.

- Po ponownym uruchomieniu programów na liście ostatnio zapisanych przechwytywań widać zapisany uprzednio plik. Kilka minut analizy pozwoliło wytworzyć plik o rozmiarze 17 MB.

- Po otworzeniu mamy te same dane jak przed zapisaniem z tą różnicą, że nie pojawiają się nowe dane, program działa w trybie offline.

Sieci Komputerowe
poziom podstawowy
Sieci komputerowe
poziom zaawansowany
- Serwer Windows - Przygotowanie maszyny wirtualnej dla systemu Windows Server (wirtualizacja sieci)
- Serwer Windows - Instalacja i konfiguracja systemu Windows Server
- Serwer Windows - Serwer DNS w sieci lokalnej w oparciu o system Windows Server (DNS)
- Serwer Windows - Zapora sieciowa w systemie Windows Serwer (Firewall)
- Serwer Windows - Kontroler domeny w oparciu o Windows Server (AD DS)
- Serwer Windows - Tworzenie zespołu kart sieciowych (NIC Teaming) w systemie Windows Server (NIC Teaming)
Sieci komputerowe
poziom profesjonalny
- Serwer Linux - Przygotowanie maszyny wirtualnej (wirtualizacja sieci)
- Serwer Linux - Instalacja systemu
- Serwer Linux - Konfiguracja sieci
- Serwer Linux - Instalacja i konfiguracja SSH
- Serwer Linux - DHCP, dynamiczna konfiguracja adresacji hostów w sieci
- Serwer Linux - DNS, serwer nazw domenowych
- Serwer Linux - Serwer plików (FTP)