Eine Einführung in die Netzwerkkommunikation
Wir haben immer gehört, dass ein Pentester zur Durchführung von Penetrationstests grundlegende Netzwerkkonzepte wie IP-Adressen, klassisches Subnetz, klassenloses Subnetz, Ports und Rundfunknetze kennen muss. Der allererste Grund ist, dass die Aktivitäten, wie z. B. welche Hosts im genehmigten Bereich leben und welche Dienste, Ports und Funktionen offen und reaktionsschnell sind, bestimmen, welche Art von Aktivitäten ein Prüfer bei Penetrationstests ausführen wird. Die Umgebung ändert sich ständig und Systeme werden häufig neu zugewiesen. Daher ist es durchaus möglich, dass alte Sicherheitslücken erneut auftreten. Ohne die guten Kenntnisse beim Scannen eines Netzwerks müssen die ersten Scans möglicherweise erneut durchgeführt werden. In unseren folgenden Abschnitten werden wir die Grundlagen der Netzwerkkommunikation diskutieren.
Referenzmodell
Das Referenzmodell bietet ein weltweit akzeptables Standardisierungsmittel, da sich Benutzer des Computernetzwerks in einem weiten physischen Bereich befinden und ihre Netzwerkgeräte möglicherweise eine heterogene Architektur aufweisen. Um die Kommunikation zwischen heterogenen Geräten zu ermöglichen, benötigen wir ein standardisiertes Modell, dh ein Referenzmodell, das uns eine Möglichkeit bietet, wie diese Geräte kommunizieren können.
Wir haben zwei Referenzmodelle wie das OSI-Modell und das TCP / IP-Referenzmodell. Das OSI-Modell ist jedoch hypothetisch, das TCP / IP jedoch ein praktisches Modell.
OSI-Modell
Das Open System Interface wurde von der International Organization of Standardization (ISO) entwickelt und wird daher auch als ISO-OSI-Modell bezeichnet.
Das OSI-Modell besteht aus sieben Schichten, wie in der folgenden Abbildung dargestellt. Jede Schicht hat eine bestimmte Funktion, jedoch stellt jede Schicht Dienste für die darüber liegende Schicht bereit.
Physikalische Schicht
Die physische Schicht ist für die folgenden Aktivitäten verantwortlich:
Aktivieren, Aufrechterhalten und Deaktivieren der physischen Verbindung.
Definieren der für die Übertragung erforderlichen Spannungen und Datenraten.
Umwandlung digitaler Bits in elektrisches Signal.
Entscheiden, ob die Verbindung Simplex, Halbduplex oder Vollduplex ist.
Datenübertragungsebene
Die Datenverbindungsschicht führt die folgenden Funktionen aus:
Führt eine Synchronisation und Fehlerkontrolle für die Informationen durch, die über die physische Verbindung übertragen werden sollen.
Aktiviert die Fehlererkennung und fügt den zu übertragenden Daten Fehlererkennungsbits hinzu.
Netzwerkschicht
Die Netzwerkschicht führt die folgenden Funktionen aus:
Um die Signale über verschiedene Kanäle zum anderen Ende zu leiten.
Als Netzwerkcontroller fungieren, indem Sie entscheiden, welche Routendaten verwendet werden sollen.
Aufteilen der ausgehenden Nachrichten in Pakete und Zusammenstellen eingehender Pakete zu Nachrichten für höhere Ebenen.
Transportschicht
Die Transportschicht führt die folgenden Funktionen aus:
Es entscheidet, ob die Datenübertragung auf parallelen oder einzelnen Pfaden erfolgen soll.
Es führt Multiplexing durch und teilt die Daten auf.
Es unterteilt die Datengruppen in kleinere Einheiten, damit sie von der Netzwerkschicht effizienter verarbeitet werden.
Die Transportschicht garantiert die Übertragung von Daten von einem Ende zum anderen Ende.
Sitzungsschicht
Die Sitzungsschicht führt die folgenden Funktionen aus:
Verwaltet die Nachrichten und synchronisiert Konversationen zwischen zwei verschiedenen Anwendungen.
Es steuert das An- und Abmelden, die Benutzeridentifikation, die Abrechnung und das Sitzungsmanagement.
Präsentationsfolie
Die Präsentationsebene führt die folgenden Funktionen aus:
Diese Schicht stellt sicher, dass die Informationen in einer solchen Form geliefert werden, dass das empfangende System sie versteht und verwendet.
Anwendungsschicht
Die Anwendungsschicht führt die folgenden Funktionen aus:
Es bietet verschiedene Dienste wie die Manipulation von Informationen auf verschiedene Arten, die erneute Übertragung der Informationsdateien, die Verteilung der Ergebnisse usw.
Die Funktionen wie LOGIN oder Kennwortprüfung werden auch von der Anwendungsschicht ausgeführt.
TCP / IP-Modell
Das TCP / IP-Modell (Transmission Control Protocol und Internet Protocol) ist ein praktisches Modell und wird im Internet verwendet.
Das TCP / IP-Modell kombiniert die beiden Schichten (physische und Datenverbindungsschicht) zu einer Schicht - Host-zu-Netzwerk-Schicht. Das folgende Diagramm zeigt die verschiedenen Schichten des TCP / IP-Modells -
Anwendungsschicht
Diese Schicht ist dieselbe wie die des OSI-Modells und führt die folgenden Funktionen aus:
Es bietet verschiedene Dienste wie die Manipulation von Informationen auf verschiedene Arten, die erneute Übertragung der Informationsdateien, die Verteilung der Ergebnisse usw.
Die Anwendungsschicht führt auch Funktionen wie LOGIN oder Kennwortprüfung aus.
Im Folgenden sind die verschiedenen Protokolle aufgeführt, die in der Anwendungsschicht verwendet werden:
- TELNET
- FTP
- SMTP
- DN
- HTTP
- NNTP
Transportschicht
Es hat die gleichen Funktionen wie die Transportschicht im OSI-Modell. Berücksichtigen Sie die folgenden wichtigen Punkte in Bezug auf die Transportschicht:
Es verwendet das TCP- und UDP-Protokoll für die End-to-End-Übertragung.
TCP ist ein zuverlässiges und verbindungsorientiertes Protokoll.
TCP übernimmt auch die Flusskontrolle.
Das UDP ist nicht zuverlässig und ein Protokoll ohne Verbindung führt keine Flusskontrolle durch.
In dieser Schicht werden TCP / IP- und UDP-Protokolle verwendet.
Internet-Schicht
Die Funktion dieser Schicht besteht darin, dem Host zu ermöglichen, Pakete in das Netzwerk einzufügen und sie dann unabhängig zum Ziel zu bringen. Die Reihenfolge des Empfangs des Pakets kann sich jedoch von der Reihenfolge unterscheiden, in der sie gesendet wurden.
Internet Protocol (IP) wird in der Internetschicht verwendet.
Host-zu-Netzwerk-Schicht
Dies ist die unterste Schicht im TCP / IP-Modell. Der Host muss über ein Protokoll eine Verbindung zum Netzwerk herstellen, damit er IP-Pakete über das Netzwerk senden kann. Dieses Protokoll variiert von Host zu Host und von Netzwerk zu Netzwerk.
Die verschiedenen Protokolle, die in dieser Schicht verwendet werden, sind -
- ARPANET
- SATNET
- LAN
- Paket Radio
Nützliche Architektur
Im Folgenden finden Sie einige nützliche Architekturen, die in der Netzwerkkommunikation verwendet werden:
Die Ethernet-Frame-Architektur
Ein Ingenieur namens Robert Metcalfe erfand 1973 erstmals das unter dem IEEE-Standard 802.3 definierte Ethernet-Netzwerk. Es wurde erstmals zum Verbinden und Senden von Daten zwischen Workstation und Drucker verwendet. Mehr als 80% der LANs verwenden den Ethernet-Standard aufgrund seiner Geschwindigkeit, geringeren Kosten und einfachen Installation. Wenn wir andererseits über Frame sprechen, werden Daten auf dem Weg von Host zu Host übertragen. Ein Frame besteht aus verschiedenen Komponenten wie MAC-Adresse, IP-Header, Start- und Endbegrenzer usw.
Der Ethernet-Frame beginnt mit Präambel und SFD. Der Ethernet-Header enthält sowohl die Quell- als auch die Ziel-MAC-Adresse. Danach ist die Nutzlast des Frames vorhanden. Das letzte Feld ist CRC, mit dem der Fehler erkannt wird. Die grundlegende Ethernet-Rahmenstruktur ist im IEEE 802.3-Standard definiert, der wie folgt erläutert wird:
Das Ethernet-Frame-Format (IEEE 802.3)
Das Ethernet-Paket transportiert einen Ethernet-Frame als Nutzlast. Es folgt eine grafische Darstellung des Ethernet-Frames zusammen mit der Beschreibung jedes Felds -
Feldname | Präambel | SFD (Start des Frame-Trennzeichens) | Ziel-MAC | Quell-MAC | Art | Daten | CRC |
---|---|---|---|---|---|---|---|
Größe (in Bytes) | 7 | 1 | 6 | 6 | 2 | 46-1500 | 4 |
Präambel
Vor einem Ethernet-Frame befindet sich eine Präambel mit einer Größe von 7 Byte, die das empfangende System darüber informiert, dass ein Frame gestartet wird, und es sowohl dem Sender als auch dem Empfänger ermöglicht, eine Bitsynchronisation einzurichten.
SFD (Start des Frame-Trennzeichens)
Dies ist ein 1-Byte-Feld, das angibt, dass das Ziel-MAC-Adressfeld mit dem nächsten Byte beginnt. Manchmal wird das SFD-Feld als Teil der Präambel betrachtet. Aus diesem Grund wird die Präambel vielerorts als 8 Byte betrachtet.
Destination MAC - Dies ist ein 6-Byte-Feld, in dem wir die Adresse des empfangenden Systems haben.
Source MAC - Dies ist ein 6-Byte-Feld, in dem wir die Adresse des sendenden Systems haben.
Type- Es definiert den Protokolltyp innerhalb des Frames. Zum Beispiel IPv4 oder IPv6. Seine Größe beträgt 2 Bytes.
Data- Dies wird auch als Payload bezeichnet und die tatsächlichen Daten werden hier eingefügt. Seine Länge muss zwischen 46-1500 Bytes liegen. Wenn die Länge weniger als 46 Bytes beträgt, werden Füllzeichen hinzugefügt, um die minimal mögliche Länge zu erreichen, dh 46.
CRC (Cyclic Redundancy Check) - Dies ist ein 4-Byte-Feld mit 32-Bit-CRC, mit dem beschädigte Daten erkannt werden können.
Erweitertes Ethernet-Frame-Format (Ethernet II-Frame)
Es folgt eine grafische Darstellung des erweiterten Ethernet-Frames, mit dem eine Nutzlast von mehr als 1500 Byte erzielt werden kann.
Feldname | Ziel-MAC | Quell-MAC | Art | DSAP | SSAP | Strg | Daten | CRC |
---|---|---|---|---|---|---|---|---|
Größe (in Bytes) | 6 | 6 | 2 | 1 | 1 | 1 | > 46 | 4 |
Die Beschreibung der Felder, die sich vom IEEE 802.3-Ethernet-Frame unterscheiden, lautet wie folgt:
DSAP (Destination Service Access Point)
DSAP ist ein 1 Byte langes Feld, das die logischen Adressen der Netzwerkschichtentität darstellt, die die Nachricht empfangen soll.
SSAP (Source Service Access Point)
SSAP ist ein 1 Byte langes Feld, das die logische Adresse der Netzwerkschichtentität darstellt, die die Nachricht erstellt hat.
Strg
Dies ist ein 1-Byte-Steuerfeld.
Die IP-Paketarchitektur
Das Internetprotokoll ist eines der wichtigsten Protokolle in der TCP / IP-Protokollsuite. Dieses Protokoll funktioniert auf der Netzwerkebene des OSI-Modells und auf der Internetebene des TCP / IP-Modells. Somit hat dieses Protokoll die Verantwortung, Hosts anhand ihrer logischen Adressen zu identifizieren und Daten zwischen ihnen über das zugrunde liegende Netzwerk zu leiten. IP bietet einen Mechanismus zur eindeutigen Identifizierung von Hosts anhand eines IP-Adressierungsschemas. IP verwendet Best-Effort-Zustellung, dh es garantiert nicht, dass Pakete an den Zielhost gesendet werden, aber es wird sein Bestes tun, um das Ziel zu erreichen.
In unseren folgenden Abschnitten lernen wir die beiden verschiedenen Versionen von IP kennen.
IPv4
Dies ist das Internetprotokoll Version 4, das eine logische 32-Bit-Adresse verwendet. Es folgt das Diagramm des IPv4-Headers zusammen mit der Beschreibung der Felder -
Ausführung
Dies ist die Version des verwendeten Internetprotokolls. Zum Beispiel IPv4.
IHL
Internet-Header-Länge; Länge des gesamten IP-Headers.
DSCP
Codepunkt für differenzierte Dienste; Dies ist die Art des Dienstes.
ECN
Explizite Überlastungsbenachrichtigung; Es enthält Informationen über die auf der Route festgestellte Überlastung.
Gesamtlänge
Die Länge des gesamten IP-Pakets (einschließlich IP-Header und IP-Payload).
Identifizierung
Wenn das IP-Paket während der Übertragung fragmentiert wird, enthalten alle Fragmente dieselbe Identifikationsnummer.
Flaggen
Wenn das IP-Paket zu groß ist, um von den Netzwerkressourcen verarbeitet zu werden, geben diese "Flags" an, ob sie fragmentiert werden können oder nicht. In diesem 3-Bit-Flag wird das MSB immer auf '0' gesetzt.
Fragmentversatz
Dieser Versatz gibt die genaue Position des Fragments im ursprünglichen IP-Paket an.
Zeit zu leben
Um Schleifen im Netzwerk zu vermeiden, wird jedes Paket mit einem festgelegten TTL-Wert gesendet, der dem Netzwerk mitteilt, wie viele Router (Hops) dieses Paket überqueren kann. Bei jedem Sprung wird sein Wert um eins dekrementiert, und wenn der Wert Null erreicht, wird das Paket verworfen.
Protokoll
Gibt der Netzwerkschicht auf dem Zielhost an, zu welchem Protokoll dieses Paket gehört, dh zum Protokoll der nächsten Ebene. Beispielsweise ist die Protokollnummer von ICMP 1, TCP 6 und UDP 17.
Header-Prüfsumme
In diesem Feld wird der Prüfsummenwert des gesamten Headers beibehalten, um zu überprüfen, ob das Paket fehlerfrei empfangen wurde.
Quelladresse
32-Bit-Adresse des Absenders (oder der Quelle) des Pakets.
Zieladresse
32-Bit-Adresse des Empfängers (oder Ziels) des Pakets.
Optionen
Dies ist ein optionales Feld, das verwendet wird, wenn der Wert von IHL größer als 5 ist. Diese Optionen können Werte für Optionen wie Sicherheit, Route aufzeichnen, Zeitstempel usw. enthalten.
Wenn Sie IPv4 im Detail studieren möchten, klicken Sie bitte auf diesen Link - www.tutorialspoint.com/ipv4/index.htm
IPv6
Das Internetprotokoll Version 6 ist das neueste Kommunikationsprotokoll, das wie sein Vorgänger IPv4 auf der Netzwerkschicht (Schicht 3) arbeitet. Dieses Protokoll bietet nicht nur eine enorme Menge an logischem Adressraum, sondern verfügt auch über zahlreiche Funktionen, die den Mangel an IPv4 beheben. Es folgt das Diagramm des IPv4-Headers zusammen mit der Beschreibung der Felder -
Version (4-Bit)
Es repräsentiert die Version von Internet Protocol - 0110.
Verkehrsklasse (8 Bit)
Diese 8 Bits sind in zwei Teile unterteilt. Die höchstwertigen 6 Bits werden für den Diensttyp verwendet, damit der Router weiß, welche Dienste für dieses Paket bereitgestellt werden sollen. Die niedrigstwertigen 2 Bits werden für die explizite Überlastungsbenachrichtigung (ECN) verwendet.
Flow Label (20 Bit)
Dieses Label wird verwendet, um den sequentiellen Fluss der zu einer Kommunikation gehörenden Pakete aufrechtzuerhalten. Die Quelle kennzeichnet die Sequenz, damit der Router erkennen kann, dass ein bestimmtes Paket zu einem bestimmten Informationsfluss gehört. Dieses Feld verhindert, dass Datenpakete neu angeordnet werden. Es ist für Streaming- / Echtzeitmedien konzipiert.
Nutzlastlänge (16 Bit)
Dieses Feld wird verwendet, um den Routern mitzuteilen, wie viele Informationen ein bestimmtes Paket in seiner Nutzlast enthält. Die Nutzlast besteht aus Erweiterungsheadern und Daten der oberen Schicht. Mit 16 Bit können bis zu 65535 Bytes angezeigt werden; Wenn die Erweiterungsheader jedoch einen Hop-by-Hop-Erweiterungsheader enthalten, kann die Nutzlast 65535 Byte überschreiten, und dieses Feld wird auf 0 gesetzt.
Nächster Header (8 Bit)
In diesem Feld wird entweder der Typ des Erweiterungsheaders angegeben, oder wenn der Erweiterungsheader nicht vorhanden ist, wird die PDU der oberen Schicht angegeben. Die Werte für den Typ der PDU der oberen Schicht sind dieselben wie für IPv4.
Hop Limit (8 Bit)
Dieses Feld wird verwendet, um die Endlosschleife des Pakets zu stoppen. Dies entspricht TTL in IPv4. Der Wert des Felds "Hop Limit" wird beim Passieren einer Verbindung (Router / Hop) um 1 verringert. Wenn das Feld 0 erreicht, wird das Paket verworfen.
Quelladresse (128 Bit)
Dieses Feld gibt die Adresse des Absenders des Pakets an.
Zieladresse (128 Bit)
Dieses Feld enthält die Adresse des beabsichtigten Empfängers des Pakets.
Wenn Sie IPv6 im Detail studieren möchten, lesen Sie bitte diesen Link - www.tutorialspoint.com/ipv6/index.htm
Die TCP-Header-Architektur (Transmission Control Protocol)
Wie wir wissen, ist TCP ein verbindungsorientiertes Protokoll, bei dem vor Beginn der Kommunikation eine Sitzung zwischen zwei Systemen eingerichtet wird. Die Verbindung wird geschlossen, sobald die Kommunikation abgeschlossen ist. TCP verwendet eine Drei-Wege-Handshake-Technik zum Herstellen des Verbindungssockets zwischen zwei Systemen. Drei-Wege-Handshake bedeutet, dass drei Nachrichten - SYN, SYN-ACK und ACK - zwischen zwei Systemen hin und her gesendet werden. Die Arbeitsschritte zwischen zwei Systemen, dem Initiierungs- und dem Zielsystem, sind wie folgt:
Step 1 − Packet with SYN flag set
Zunächst beginnt das System, das versucht, eine Verbindung herzustellen, mit einem Paket, für das das SYN-Flag gesetzt ist.
Step 2 − Packet with SYN-ACK flag set
In diesem Schritt gibt das Zielsystem nun ein Paket mit SYN- und ACK-Flagsätzen zurück.
Step 3 − Packet with ACK flag set
Zuletzt gibt das initiierende System ein Paket mit gesetztem ACK-Flag an das ursprüngliche Zielsystem zurück.
Es folgt das Diagramm des TCP-Headers zusammen mit der Beschreibung der Felder -
Quellport (16 Bit)
Es identifiziert den Quellport des Anwendungsprozesses auf dem sendenden Gerät.
Zielport (16 Bit)
Es identifiziert den Zielport des Anwendungsprozesses auf dem empfangenden Gerät.
Sequenznummer (32 Bit)
Die Sequenznummer der Datenbytes eines Segments in einer Sitzung.
Bestätigungsnummer (32 Bit)
Wenn das ACK-Flag gesetzt ist, enthält diese Nummer die nächste Sequenznummer des erwarteten Datenbytes und dient als Bestätigung der zuvor empfangenen Daten.
Datenversatz (4 Bit)
Dieses Feld impliziert sowohl die Größe des TCP-Headers (32-Bit-Wörter) als auch den Versatz der Daten im aktuellen Paket im gesamten TCP-Segment.
Reserviert (3-Bit)
Reserviert für zukünftige Verwendung und standardmäßig auf Null gesetzt.
Flags (jeweils 1 Bit)
NS - Der Signalisierungsprozess für die explizite Überlastungsbenachrichtigung verwendet dieses Nonce-Summenbit.
CWR - Wenn ein Host ein Paket mit gesetztem ECE-Bit empfängt, setzt er Congestion Windows Reduced, um zu bestätigen, dass ECE empfangen wurde.
ECE - Es hat zwei Bedeutungen -
Wenn das SYN-Bit auf 0 gesetzt ist, bedeutet ECE, dass für das IP-Paket das CE-Bit (Überlastungserfahrung) gesetzt ist.
Wenn das SYN-Bit auf 1 gesetzt ist, bedeutet ECE, dass das Gerät ECT-fähig ist.
URG - Es zeigt an, dass das Feld Dringender Zeiger wichtige Daten enthält und verarbeitet werden sollte.
ACK- Es zeigt an, dass das Bestätigungsfeld eine Bedeutung hat. Wenn ACK auf 0 gelöscht wird, zeigt dies an, dass das Paket keine Bestätigung enthält.
PSH - Wenn diese Option aktiviert ist, wird die empfangende Station aufgefordert, Daten (sobald sie eingehen) an die empfangende Anwendung zu senden, ohne sie zu puffern.
RST - Reset-Flag hat folgende Funktionen:
Es wird verwendet, um eine eingehende Verbindung abzulehnen.
Es wird verwendet, um ein Segment abzulehnen.
Es wird verwendet, um eine Verbindung neu zu starten.
SYN - Mit diesem Flag wird eine Verbindung zwischen Hosts hergestellt.
FIN- Mit diesem Flag wird eine Verbindung freigegeben und danach werden keine Daten mehr ausgetauscht. Da Pakete mit SYN- und FIN-Flags Sequenznummern haben, werden sie in der richtigen Reihenfolge verarbeitet.
Windows-Größe
Dieses Feld wird zur Flusssteuerung zwischen zwei Stationen verwendet und gibt die Puffermenge (in Byte) an, die der Empfänger einem Segment zugewiesen hat, dh wie viele Daten der Empfänger erwartet.
Checksum - Dieses Feld enthält die Prüfsumme der Header-, Daten- und Pseudo-Header.
Urgent Pointer - Es zeigt auf das dringende Datenbyte, wenn das URG-Flag auf 1 gesetzt ist.
Options- Es ermöglicht zusätzliche Optionen, die nicht durch den regulären Header abgedeckt sind. Das Optionsfeld wird immer in 32-Bit-Wörtern beschrieben. Wenn dieses Feld Daten mit weniger als 32 Bit enthält, werden die verbleibenden Bits durch Auffüllen abgedeckt, um die 32-Bit-Grenze zu erreichen.
Wenn Sie TCP im Detail studieren möchten, klicken Sie bitte auf diesen Link - https://www.tutorialspoint.com/data_communication_computer_network/transmission_control_protocol.htm
Die UDP-Header-Architektur (User Datagram Protocol)
UDP ist ein einfaches verbindungsloses Protokoll im Gegensatz zu TCP, einem verbindungsorientierten Protokoll. Es beinhaltet ein Minimum an Kommunikationsmechanismus. In UDP generiert der Empfänger keine Bestätigung des empfangenen Pakets und der Absender wartet wiederum nicht auf eine Bestätigung des gesendeten Pakets. Dieser Mangel macht dieses Protokoll unzuverlässig und erleichtert die Verarbeitung. Es folgt das Diagramm des UDP-Headers zusammen mit der Beschreibung der Felder -
Quellport
Diese 16-Bit-Informationen werden verwendet, um den Quellport des Pakets zu identifizieren.
Zielhafen
Diese 16-Bit-Informationen werden verwendet, um den Dienst auf Anwendungsebene auf dem Zielcomputer zu identifizieren.
Länge
Das Längenfeld gibt die gesamte Länge des UDP-Pakets (einschließlich Header) an. Es ist ein 16-Bit-Feld und der Mindestwert beträgt 8 Byte, dh die Größe des UDP-Headers selbst.
Prüfsumme
In diesem Feld wird der vom Absender vor dem Senden generierte Prüfsummenwert gespeichert. IPv4 hat dieses Feld als optional. Wenn das Prüfsummenfeld keinen Wert enthält, wird es auf 0 gesetzt und alle seine Bits werden auf Null gesetzt.
Informationen zu TCP im Detail finden Sie unter diesem Link - User Datagram Protocol