Podstawa komunikacji sieciowej

Zawsze słyszeliśmy, że aby przeprowadzić testy penetracyjne, pentester musi być świadomy podstawowych pojęć sieciowych, takich jak adresy IP, klasowe podsieci, bezklasowe podsieci, porty i sieci rozgłoszeniowe. Pierwszym powodem jest to, że czynności, takie jak to, którzy hosty działają w zatwierdzonym zakresie i jakie usługi, porty i funkcje mają otwarte i responsywne, określą, jakie czynności asesor będzie wykonywał w testach penetracyjnych. Środowisko ciągle się zmienia, a systemy są często przenoszone. Dlatego jest całkiem możliwe, że stare luki mogą pojawić się ponownie i bez dobrej wiedzy na temat skanowania sieci może się zdarzyć, że wstępne skanowanie będzie musiało zostać powtórzone. W kolejnych sekcjach omówimy podstawy komunikacji sieciowej.

Model referencyjny

Model referencyjny oferuje sposób standaryzacji, który jest akceptowany na całym świecie, ponieważ ludzie korzystający z sieci komputerowej znajdują się w szerokim zakresie fizycznym, a ich urządzenia sieciowe mogą mieć heterogeniczną architekturę. Aby zapewnić komunikację pomiędzy heterogenicznymi urządzeniami, potrzebujemy ustandaryzowanego modelu, czyli modelu referencyjnego, który zapewni nam sposób, w jaki te urządzenia mogą się komunikować.

Mamy dwa modele referencyjne, takie jak model OSI i model referencyjny TCP / IP. Jednak model OSI jest modelem hipotetycznym, ale TCP / IP jest modelem praktycznym.

Model OSI

Interfejs systemu otwartego został zaprojektowany przez Międzynarodową Organizację Normalizacyjną (ISO) i dlatego jest również nazywany modelem ISO-OSI.

Model OSI składa się z siedmiu warstw, jak pokazano na poniższym diagramie. Każda warstwa ma określoną funkcję, jednak każda warstwa świadczy usługi warstwie powyżej.

Warstwa fizyczna

Warstwa fizyczna jest odpowiedzialna za następujące działania -

  • Aktywacja, utrzymanie i dezaktywacja fizycznego połączenia.

  • Definiowanie napięć i szybkości transmisji danych.

  • Przetwarzanie bitów cyfrowych na sygnał elektryczny.

  • Decydowanie, czy połączenie jest simplex, half-duplex czy full-duplex.

Warstwa łącza danych

Warstwa łącza danych spełnia następujące funkcje -

  • Wykonuje synchronizację i kontrolę błędów informacji, które mają być przesyłane przez łącze fizyczne.

  • Umożliwia wykrywanie błędów i dodaje bity wykrywania błędów do przesyłanych danych.

Warstwa sieci

Warstwa sieciowa spełnia następujące funkcje -

  • Aby skierować sygnały różnymi kanałami na drugi koniec.

  • Aby działać jako kontroler sieci, decydując, jaką trasę mają obrać dane.

  • Dzielenie wychodzących wiadomości na pakiety i łączenie przychodzących pakietów w wiadomości na wyższych poziomach.

Warstwa transportowa

Warstwa transportowa spełnia następujące funkcje -

  • Decyduje, czy transmisja danych ma odbywać się ścieżkami równoległymi czy pojedynczą.

  • Wykonuje multipleksowanie, dzielenie danych.

  • Dzieli grupy danych na mniejsze jednostki, dzięki czemu są one wydajniej obsługiwane przez warstwę sieciową.

Warstwa transportowa gwarantuje transmisję danych z jednego końca do drugiego.

Warstwa sesji

Warstwa sesji spełnia następujące funkcje -

  • Zarządza wiadomościami i synchronizuje konwersacje między dwiema różnymi aplikacjami.

  • Kontroluje logowanie i wylogowywanie, identyfikację użytkownika, rozliczenia i zarządzanie sesjami.

Warstwa prezentacji

Warstwa prezentacji spełnia następujące funkcje -

  • Ta warstwa zapewnia, że ​​informacja jest dostarczana w takiej formie, aby system odbierający ją zrozumiał i wykorzystał.

Warstwa aplikacji

Warstwa aplikacji spełnia następujące funkcje -

  • Zapewnia różne usługi, takie jak manipulowanie informacjami na kilka sposobów, ponowne przesyłanie plików z informacjami, rozpowszechnianie wyników itp.

  • Funkcje takie jak LOGIN czy sprawdzanie hasła są również wykonywane przez warstwę aplikacji.

Model TCP / IP

Model protokołu kontroli transmisji i protokołu internetowego (TCP / IP) jest modelem praktycznym i jest używany w Internecie.

Model TCP / IP łączy dwie warstwy (warstwę fizyczną i warstwę łącza danych) w jedną warstwę - warstwę host-sieć. Poniższy diagram przedstawia różne warstwy modelu TCP / IP -

Warstwa aplikacji

Ta warstwa jest taka sama jak w modelu OSI i spełnia następujące funkcje -

  • Zapewnia różne usługi, takie jak manipulowanie informacjami na kilka sposobów, ponowne przesyłanie plików z informacjami, rozpowszechnianie wyników itp.

  • Warstwa aplikacji pełni również takie funkcje, jak LOGOWANIE czy sprawdzanie hasła.

  • Poniżej przedstawiono różne protokoły używane w warstwie aplikacji -

    • TELNET
    • FTP
    • SMTP
    • DN
    • HTTP
    • NNTP

Warstwa transportowa

Wykonuje te same funkcje, co warstwa transportowa w modelu OSI. Rozważ następujące ważne punkty związane z warstwą transportową -

  • Wykorzystuje protokoły TCP i UDP do transmisji od końca do końca.

  • TCP to niezawodny i zorientowany na połączenie protokół.

  • TCP obsługuje również kontrolę przepływu.

  • UDP nie jest niezawodny, a protokół bez połączenia nie wykonuje kontroli przepływu.

  • W tej warstwie wykorzystywane są protokoły TCP / IP i UDP.

Warstwa internetowa

Zadaniem tej warstwy jest umożliwienie hostowi wstawiania pakietów do sieci, a następnie samodzielnego przemieszczania się do miejsca docelowego. Jednak kolejność odbierania pakietów może różnić się od kolejności ich wysłania.

Protokół internetowy (IP) jest używany w warstwie internetowej.

Warstwa host-sieć

To najniższa warstwa w modelu TCP / IP. Host musi łączyć się z siecią przy użyciu jakiegoś protokołu, aby mógł przesyłać przez nią pakiety IP. Ten protokół różni się w zależności od hosta i sieci.

Różne protokoły używane w tej warstwie to -

  • ARPANET
  • SATNET
  • LAN
  • Pakiet radiowy

Przydatna architektura

Oto kilka przydatnych architektur, które są używane w komunikacji sieciowej -

Architektura ramek Ethernet

Inżynier Robert Metcalfe jako pierwszy wynalazł sieć Ethernet, zdefiniowaną w standardzie IEEE 802.3, w 1973 roku. Po raz pierwszy została ona użyta do łączenia i przesyłania danych między stacją roboczą a drukarką. Ponad 80% sieci LAN wykorzystuje standard Ethernet ze względu na szybkość, niższy koszt i łatwość instalacji. Z drugiej strony, jeśli mówimy o ramce, dane są przesyłane od hosta do hosta. Ramka składa się z różnych elementów, takich jak adres MAC, nagłówek IP, ogranicznik początku i końca itp.

Ramka Ethernet zaczyna się od preambuły i SFD. Nagłówek Ethernet zawiera zarówno źródłowy, jak i docelowy adres MAC, po którym znajduje się ładunek ramki. Ostatnim polem jest CRC, które służy do wykrywania błędu. Podstawowa struktura ramki Ethernet jest zdefiniowana w standardzie IEEE 802.3, który wyjaśniono poniżej -

Format ramki Ethernet (IEEE 802.3)

Pakiet Ethernet przenosi ramkę Ethernet jako swój ładunek. Poniżej przedstawiono graficzną reprezentację ramki Ethernet wraz z opisem każdego pola -

Nazwa pola Preambuła SFD (początek ogranicznika ramki) Docelowy adres MAC Źródłowy adres MAC Rodzaj Dane CRC
Rozmiar (w bajtach) 7 1 6 6 2 46-1500 4

Preambuła

Ramka Ethernet jest poprzedzona preambułą o rozmiarze 7 bajtów, która informuje system odbierający, że ramka się rozpoczyna i umożliwia nadawcy i odbiorcy ustanowienie synchronizacji bitowej.

SFD (początek ogranicznika ramki)

Jest to 1-bajtowe pole używane do oznaczenia, że ​​pole docelowego adresu MAC zaczyna się od następnego bajtu. Czasami pole SFD jest uważane za część Preambuły. Dlatego w wielu miejscach preambuła jest uważana za 8 bajtów.

  • Destination MAC - To jest 6-bajtowe pole, w którym mamy adres systemu odbierającego.

  • Source MAC - To jest 6-bajtowe pole, w którym mamy adres systemu wysyłającego.

  • Type- Określa rodzaj protokołu wewnątrz ramki. Na przykład IPv4 lub IPv6. Jego rozmiar to 2 bajty.

  • Data- Nazywa się to również ładunkiem i tutaj wstawiane są rzeczywiste dane. Jego długość musi wynosić od 46 do 1500 bajtów. Jeśli długość jest mniejsza niż 46 bajtów, wówczas dodawane jest wypełnienie 0, aby osiągnąć minimalną możliwą długość, tj. 46.

  • CRC (Cyclic Redundancy Check) - Jest to 4-bajtowe pole zawierające 32-bitowe CRC, które umożliwia wykrycie uszkodzonych danych.

Format rozszerzonej ramki Ethernet (ramka Ethernet II)

Poniżej znajduje się graficzna reprezentacja rozszerzonej ramki Ethernet, za pomocą której możemy uzyskać ładunek większy niż 1500 bajtów -

Nazwa pola Docelowy adres MAC Źródłowy adres MAC Rodzaj DSAP SSAP Ctrl Dane CRC
Rozmiar (w bajtach) 6 6 2 1 1 1 > 46 4

Opis pól, które różnią się od ramki Ethernet IEEE 802.3, jest następujący:

DSAP (punkt dostępu do usługi docelowej)

DSAP to 1-bajtowe pole, które reprezentuje adresy logiczne jednostki warstwy sieciowej, która ma odebrać wiadomość.

SSAP (punkt dostępu do usługi źródłowej)

SSAP to jednobajtowe pole, które reprezentuje adres logiczny jednostki warstwy sieciowej, która utworzyła wiadomość.

Ctrl

To jest 1-bajtowe pole kontrolne.

Architektura pakietów IP

Protokół internetowy jest jednym z głównych protokołów w zestawie protokołów TCP / IP. Protokół ten działa w warstwie sieciowej modelu OSI oraz w warstwie internetowej modelu TCP / IP. W związku z tym protokół ten jest odpowiedzialny za identyfikację hostów na podstawie ich adresów logicznych i kierowanie danych między nimi w podstawowej sieci. IP zapewnia mechanizm unikalnej identyfikacji hostów według schematu adresowania IP. Protokół IP wykorzystuje dostarczanie z największą starannością, tj. Nie gwarantuje, że pakiety zostaną dostarczone do docelowego hosta, ale zrobi wszystko, co w jego mocy, aby dotrzeć do celu.

W kolejnych sekcjach dowiemy się o dwóch różnych wersjach protokołu IP.

IPv4

To jest protokół internetowy w wersji 4, który używa 32-bitowego adresu logicznego. Poniżej znajduje się schemat nagłówka IPv4 wraz z opisem pól -

Wersja

To jest wersja używanego protokołu internetowego; na przykład IPv4.

MPH

Długość nagłówka internetowego; długość całego nagłówka IP.

DSCP

Punkt kodowy usług zróżnicowanych; to jest typ usługi.

ECN

Jawne powiadomienie o zatorach; zawiera informacje o zatorach widocznych na trasie.

Długość całkowita

Długość całego pakietu IP (w tym nagłówek IP i ładunek IP).

Identyfikacja

Jeśli pakiet IP jest pofragmentowany podczas transmisji, wszystkie fragmenty zawierają ten sam numer identyfikacyjny.

Flagi

Zgodnie z wymaganiami zasobów sieciowych, jeśli pakiet IP jest zbyt duży, aby go obsłużyć, te „flagi” wskazują, czy mogą być pofragmentowane, czy nie. W tej 3-bitowej fladze MSB jest zawsze ustawione na „0”.

Przesunięcie fragmentu

To przesunięcie określa dokładną pozycję fragmentu w oryginalnym pakiecie IP.

Czas żyć

Aby uniknąć zapętlenia w sieci, każdy pakiet jest wysyłany z pewną ustawioną wartością TTL, która informuje sieć, ile routerów (przeskoków) może przekroczyć ten pakiet. Przy każdym przeskoku jego wartość jest zmniejszana o jeden, a gdy wartość osiągnie zero, pakiet jest odrzucany.

Protokół

Informuje warstwę sieciową na hoście docelowym, do którego protokołu należy ten pakiet, tj. Protokół następnego poziomu. Na przykład numer protokołu ICMP to 1, TCP to 6, a UDP to 17.

Suma kontrolna nagłówka

Pole to służy do przechowywania wartości sumy kontrolnej całego nagłówka, która jest następnie używana do sprawdzenia, czy pakiet został odebrany bez błędów.

Adres źródłowy

32-bitowy adres nadawcy (lub źródła) pakietu.

Adres przeznaczenia

32-bitowy adres odbiorcy (lub przeznaczenia) pakietu.

Opcje

Jest to pole opcjonalne, które jest używane, jeśli wartość MPH jest większa niż 5. Te opcje mogą zawierać wartości opcji, takich jak Bezpieczeństwo, Trasa rekordu, Znacznik czasu itp.

Jeśli chcesz szczegółowo zapoznać się z IPv4, skorzystaj z tego łącza - www.tutorialspoint.com/ipv4/index.htm

IPv6

Protokół internetowy w wersji 6 jest najnowszym protokołem komunikacyjnym, który jako jego poprzednik IPv4 działa w warstwie sieci (Layer-3). Oprócz oferowania ogromnej ilości logicznej przestrzeni adresowej, protokół ten ma wiele funkcji, które rozwiązują wady protokołu IPv4. Poniżej znajduje się schemat nagłówka IPv4 wraz z opisem pól -

Wersja (4 bity)

Reprezentuje wersję protokołu internetowego - 0110.

Klasa ruchu (8-bitów)

Te 8 bitów jest podzielonych na dwie części. 6 najbardziej znaczących bitów jest używanych dla typu usługi, aby router wiedział, jakie usługi powinny być dostarczone do tego pakietu. Najmniej znaczące 2 bity są używane dla Explicit Congestion Notification (ECN).

Etykieta przepływu (20 bitów)

Ta etykieta jest używana do utrzymania sekwencyjnego przepływu pakietów należących do komunikacji. Źródło oznacza sekwencję, aby pomóc routerowi określić, czy dany pakiet należy do określonego przepływu informacji. To pole pomaga uniknąć zmiany kolejności pakietów danych. Jest przeznaczony do przesyłania strumieniowego / mediów w czasie rzeczywistym.

Długość ładunku (16 bitów)

To pole służy do informowania routerów, ile informacji zawiera dany pakiet w swoim ładunku. Ładunek składa się z nagłówków rozszerzeń i danych górnej warstwy. Przy 16 bitach można wskazać do 65535 bajtów; ale jeśli nagłówki rozszerzeń zawierają nagłówek rozszerzenia przeskoku po przeskoku, wówczas ładunek może przekroczyć 65535 bajtów, a to pole jest ustawione na 0.

Następny nagłówek (8-bitowy)

Albo to pole jest używane do wskazania typu nagłówka rozszerzenia, albo jeśli nagłówek rozszerzenia nie jest obecny, oznacza to jednostkę PDU górnej warstwy. Wartości typu jednostki PDU górnej warstwy są takie same, jak w przypadku protokołu IPv4.

Limit przeskoków (8 bitów)

To pole jest używane do zatrzymywania pakietów w nieskończonej pętli w sieci. To jest to samo, co TTL w IPv4. Wartość pola Limit przeskoków jest zmniejszana o 1, gdy przechodzi przez łącze (router / przeskok). Gdy pole osiągnie 0, pakiet jest odrzucany.

Adres źródłowy (128 bitów)

To pole wskazuje adres nadawcy pakietu.

Adres docelowy (128 bitów)

To pole zawiera adres zamierzonego odbiorcy pakietu.

Jeśli chcesz szczegółowo zapoznać się z IPv6, skorzystaj z tego łącza - www.tutorialspoint.com/ipv6/index.htm

Architektura nagłówka TCP (Transmission Control Protocol)

Jak wiemy, TCP jest protokołem połączeniowym, w którym sesja między dwoma systemami jest ustanawiana przed rozpoczęciem komunikacji. Połączenie zostanie zamknięte po zakończeniu komunikacji. Protokół TCP wykorzystuje technikę uzgadniania trójetapowego do ustanowienia gniazda połączenia między dwoma systemami. Uzgadnianie trójetapowe oznacza, że ​​trzy komunikaty - SYN, SYN-ACK i ACK, są przesyłane tam i z powrotem między dwoma systemami. Etapy pracy między dwoma systemami, systemem inicjującym i docelowym, są następujące:

Step 1 − Packet with SYN flag set

Przede wszystkim system, który próbuje zainicjować połączenie, uruchamia się pakietem, który ma ustawioną flagę SYN.

Step 2 − Packet with SYN-ACK flag set

Teraz w tym kroku system docelowy zwraca pakiet z ustawionymi flagami SYN i ACK.

Step 3 − Packet with ACK flag set

W końcu system inicjujący zwróci pakiet do pierwotnego systemu docelowego z ustawioną flagą ACK.

Poniżej znajduje się schemat nagłówka TCP wraz z opisem pól -

Port źródłowy (16-bitowy)

Identyfikuje port źródłowy procesu aplikacji na urządzeniu wysyłającym.

Port docelowy (16-bitowy)

Identyfikuje port docelowy procesu aplikacji na urządzeniu odbierającym.

Numer sekwencyjny (32 bity)

Numer kolejny bajtów danych segmentu w sesji.

Numer potwierdzenia (32 bity)

Gdy flaga ACK jest ustawiona, liczba ta zawiera następny numer sekwencji oczekiwanego bajtu danych i działa jako potwierdzenie wcześniej odebranych danych.

Przesunięcie danych (4 bity)

To pole określa zarówno rozmiar nagłówka TCP (słowa 32-bitowe), jak i przesunięcie danych w bieżącym pakiecie w całym segmencie TCP.

Zarezerwowane (3 bity)

Zarezerwowane do użytku w przyszłości i domyślnie ustawione na zero.

Flagi (1-bitowe każda)

  • NS - Proces sygnalizacji jawnego powiadomienia o zatorach wykorzystuje ten bit sumy nonce.

  • CWR - Gdy host odbiera pakiet z ustawionym bitem ECE, ustawia opcję Congestion Windows Reduced na potwierdzenie odebrania ECE.

  • ECE - Ma dwa znaczenia -

    • Jeśli bit SYN ma wartość 0, wtedy ECE oznacza, że ​​pakiet IP ma ustawiony bit CE (doświadczenie przeciążenia).

    • Jeśli bit SYN jest ustawiony na 1, ECE oznacza, że ​​urządzenie obsługuje ECT.

  • URG - Wskazuje, że pole Urgent Pointer zawiera znaczące dane i powinno zostać przetworzone.

  • ACK- Wskazuje, że pole potwierdzenia ma znaczenie. Jeśli ACK jest zerowane, oznacza to, że pakiet nie zawiera żadnego potwierdzenia.

  • PSH - Po ustawieniu jest to żądanie do stacji odbiorczej wysłania danych PUSH (jak tylko nadejdą) do aplikacji odbierającej bez ich buforowania.

  • RST - Flaga resetowania ma następujące funkcje -

    • Służy do odrzucania połączenia przychodzącego.

    • Służy do odrzucania segmentu.

    • Służy do ponownego uruchomienia połączenia.

  • SYN - Ta flaga służy do ustanowienia połączenia między hostami.

  • FIN- Ta flaga służy do zwalniania połączenia i nie ma już więcej danych. Ponieważ pakiety z flagami SYN i FIN mają numery sekwencyjne, są przetwarzane we właściwej kolejności.

Rozmiar systemu Windows

To pole jest używane do sterowania przepływem między dwiema stacjami i wskazuje ilość bufora (w bajtach), który odbiornik zaalokował dla segmentu, tj. Ile danych oczekuje odbiornik.

  • Checksum - To pole zawiera sumę kontrolną nagłówka, danych i pseudo nagłówków.

  • Urgent Pointer - Wskazuje na pilny bajt danych, jeśli flaga URG jest ustawiona na 1.

  • Options- Ułatwia dodatkowe opcje, które nie są objęte zwykłym nagłówkiem. Pole opcji jest zawsze opisane słowami 32-bitowymi. Jeśli to pole zawiera dane mniejsze niż 32-bitowe, wypełnienie jest używane do pokrycia pozostałych bitów w celu osiągnięcia granicy 32-bitowej.

Jeśli chcesz szczegółowo zapoznać się z TCP, skorzystaj z tego linku - https://www.tutorialspoint.com/data_communication_computer_network/transmission_control_protocol.htm

Architektura nagłówka UDP (User Datagram Protocol)

UDP jest prostym protokołem bezpołączeniowym, w przeciwieństwie do TCP, protokołu zorientowanego na połączenie. Obejmuje minimalną ilość mechanizmu komunikacyjnego. W UDP odbiorca nie generuje potwierdzenia odebrania pakietu, az kolei nadawca nie czeka na potwierdzenie wysłania pakietu. Ta wada sprawia, że ​​ten protokół jest zawodny, a także łatwiejszy w przetwarzaniu. Poniżej znajduje się schemat nagłówka UDP wraz z opisem pól -

Port źródłowy

Te 16-bitowe informacje są używane do identyfikacji portu źródłowego pakietu.

Port docelowy

Te 16-bitowe informacje są używane do identyfikacji usługi na poziomie aplikacji na komputerze docelowym.

Długość

Pole długości określa całą długość pakietu UDP (łącznie z nagłówkiem). Jest to pole 16-bitowe, a minimalna wartość to 8 bajtów, czyli rozmiar samego nagłówka UDP.

Suma kontrolna

W tym polu przechowywana jest suma kontrolna wygenerowana przez nadawcę przed wysłaniem. IPv4 ma to pole jako opcjonalne, więc jeśli pole sumy kontrolnej nie zawiera żadnej wartości, przyjmuje wartość 0, a wszystkie jego bity są ustawiane na zero.

Aby szczegółowo zapoznać się z protokołem TCP, skorzystaj z tego łącza - protokół datagramów użytkownika