Wireshark

Analiza przechwytywania pakietów TCP

Analiza przechwytywania pakietów TCP

Co to jest TCP?

TCP (Transmission Control Protocol) to zorientowany na połączenie protokół warstwy transportowej.

Intencja tego artykułu:

Zrozumienie całego TCP nie jest łatwym zadaniem. W tym artykule postaramy się zrozumieć podstawowe wymiany pakietów TCP przez Wireshark. Teorię można przeczytać przez internet. Skupimy się bardziej na analizie przechwytywania pakietów.

Dlaczego TCP jest sławny?

Istnieje wiele powodów, dla których TCP jest tak sławny:

  1. TCP jest protokołem zorientowanym na połączenie, więc niezawodność jest bardzo wysoka.
  2. TCP może sam kontrolować przeciążenie.
  3. TCP może wykryć błąd.
  4. TCP używa protokołu kontroli przepływu.
  5. TCP ma funkcje opóźnienia ACK.
  6. TCP ma selektywną funkcję ACK.
  7. TCP ma funkcję wywoływania systemu Windows w celu poprawy przepustowości.

Jest tak wiele innych funkcji, które sprawiają, że protokół TCP jest tak sławny.

Analiza TCP:

Wykonamy kilka kroków, aby wygenerować ramki TCP.

Krok 1: Prostym sposobem generowania pakietów TCP jest dostęp do dowolnej witryny HTTP. Powodem jest to, że HTTP jest protokołem warstwy aplikacji i używa TCP jako podstawowego protokołu warstwy transportowej.

Aby dowiedzieć się więcej o HTTP, kliknij poniższy link

https://linuxhint.com/http_wireshark/

Krok 2: Uruchom Wireshark.

Krok 3: Otwórz poniższy link w dowolnej przeglądarce.

http://gaia.cs.umass.edu/wireshark-labs/alicja.tekst

Krok 4: Zatrzymaj Wireshark i umieść TCP jako filtr.

Krok 5: ANALIZA

Teraz powinniśmy zobaczyć pakiety uzgadniania trójstronnego TCP. Oto prosty schemat.

Ramka 1: SYN [Synchronizacja]

SYN to pierwszy pakiet przychodzący od klienta do serwera. W naszym przypadku 192.168.1.6 to klient [system, w którym otworzyliśmy przeglądarkę] i gaia.cs.umass.edu jest serwerem.

Oto kilka ważnych pól w ramce SYN

Ramka SYN jest wymagana do wysłania możliwości klienta do serwera.

Ramka 2: SYN+ACK [Synchronizacja + Potwierdzenie]

SYN, ACK to drugi pakiet przychodzący z serwera do klienta.

Oto kilka ważnych pól w ramce SYN, ACK

Ramka SYN, ACK jest wymagana do wysłania możliwości serwera do klienta.

Teraz klient i serwer podzieliły się swoimi możliwościami.

Ramka 3: ACK [Potwierdzenie]

ACK to trzeci pakiet przychodzący od klienta do serwera. Jest to w zasadzie potwierdzenie od klienta do serwera, a także akceptacja możliwości wysyłanych przez serwer.

Oto ważne pola dla ACK.

Sprawdźmy ważne informacje udostępniane między klientem a serwerem:

Klientserwer

Odbierz rozmiar okna: 64240 bajtów                          Odbierz rozmiar okna: 29200 bajtów

Maksymalny rozmiar segmentu: 1460 bajtów                         Maksymalny rozmiar segmentu: 1412 bajtów

WOREK Dozwolony: tak                                                 WOREK Dozwolony: tak

Skala okienna: 8 (pomnóż przez 256)                          Skala okienna: 7 (pomnóż przez 128)

Zauważyliśmy różnice w wartościach. Jeśli klient lub serwer akceptuje możliwości innych osób, uzgadnianie trójstronne jest skuteczne.

Nagłówek TCP:

Oto ważne pola nagłówka TCP:

  1. Port źródłowy (16 bitów): To jest port wysyłający.
Przykład: Port źródłowy: 50026 (50026)
  1. Port docelowy (16 bitów): To jest port odbiorczy.
Przykład: Port docelowy: http (80)
  1. Numer sekwencyjny (32 bity):
Przykład: numer porządkowy: 0    (względny numer porządkowy)
  1. Numer potwierdzenia (32 bity): Jeśli flaga ACK jest ustawiona, to wartością tego pola jest następny numer sekwencyjny, którego oczekuje nadawca ACK.
Przykład: Numer potwierdzenia: 0
  1. Długość nagłówka: Rozmiar nagłówka może się różnić od 20 bajtów do maksymalnie 60 bajtów.
Przykład: 1000… = Długość nagłówka: 32 bajty (8)
  1. Flagi (9 bitów):
Przykład:
… = Zarezerwowane: Nie ustawione
… 0… = Brak: Nie ustawiono
… 0… = Zredukowane okno przeciążenia (CWR): Nie ustawione
… 0… = ECN-Echo: Nie ustawiono
… 0… = Pilne: Nie ustawione
… 0… = Potwierdzenie: Nie ustawiono
… 0… = Naciśnij: Nie ustawiono
… 0… = Reset: Nie ustawiono
… 1. = Syn: Ustaw
… 0 = Fin: Nie ustawiono
  1. Rozmiar okna (16 bitów): To jest rozmiar okna odbioru w bajtach.
Przykład: wartość rozmiaru okna: 64240
  1. Suma kontrolna (16 bitów):

Służy do sprawdzania błędów nagłówka.

Przykład: Suma kontrolna: 0x436f
  1. Pilny wskaźnik (16 bitów):

Jest to przesunięcie od numeru sekwencji wskazujące ostatni pilny bajt danych.

Przykład: wskaźnik pilny: 0
  1. Opcje:
Przykład:
Opcja TCP - Maksymalny rozmiar segmentu: 1460 bajtów
Opcja TCP — brak działania (NOP)
Opcja TCP - Skala okna: 8 (pomnóż przez 256)
Opcja TCP - SACK dozwolony

Obserwacja:

Rozmiar nagłówka TCP w SYN wynosi 32 bajty.

Rozmiar nagłówka TCP dla SYN, ACK to 32 bajty.

Rozmiar nagłówka TCP ACK wynosi 20 bajtów, ponieważ nie ma pól opcji.

Dane TCP:

Oto zrzut ekranu z objaśnieniem danych TCP i TCP ACK. Tutaj możemy zobaczyć funkcję opóźnienia TCP ACK. Serwer wysłał trzy pakiety danych TCP do klienta, a klient wysłał jedno opóźnienie ACK, aby poinformować serwer, że odebrał wszystkie trzy pakiety danych TCP. Dlatego w TCP ACK [Pakiet numer 96 na zrzucie ekranu] widzimy ACK=14121, co oznacza, że ​​klient otrzymał do 14121 bajtów.

Odniesienie:

Aby zapoznać się z podstawową teorią TCP, patrz

https://pl.Wikipedia.org/wiki/Transmission_Control_Protocol

Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...