-=TCP - Erklärt=-

Startseite (Kein Menü ???)

Inhaltsverzeichnis:

 


1.0 Inhaltsverzeichnis
2.0 Einführung

3.0 Scanning

3.1 TCP connect scanning
3.2 TCP FIN scanning

3.3 TCP SYN scanning

4.0 Angriffsmöglichkeiten
4.1 TCP-Sequenznummern-Angriff
4.2 TCP-Hijacking

 

2.0 Einführung
Das Transmission Control Protocol, welches im Schichtenmodell direkt über dem Internet Protocol liegt, sorgt für den verlustfreien Datentransfer. So stellt es z. B. durch Prüfsummenbildung und andere Kontrollmechanismen sicher, dass Dateien, die zur schnelleren Übertragung gesplittet wurden, korrekt und vollständig beim Empfänger ankommen. Es bietet also den Komponenten der Anwendungsschicht einen zuverlässigen und verbindungsorientierten Dienst, in dem es eine bidirektionale Verbindung zwischen den Partnern herstellt. Zuverlässig bedeutet dabei, dass gängige Sicherungsverfahren wie Prüfsummenbildung, Quittungen mit Zeitüberwachung, Sliding-Window-Verfahren und Sequenznummernvergabe angewendet werden. Der Verbindungsaufbau erfolgt in Analogie zum herkömmlichen Telefonsystem. Ein Anrufer sendet einen sogenannten Request an einen Server. Dieser sendet ein Replay an den Anrufer zurück, woraufhin der Datenaustausch stattfindet. Dabei wird die Verbindung so lange aufrecht erhalten, bis sie explizit beendet wird. Der hohe Aufwand für dieses Sicherungsverfahren verursacht eine relativ starke Netzbelastung, so dass TCP für Anwendungen wie dem Login auf fremden Rechnern oder dem Dateitransfer, welche eine hohe Übertragungszuverlässigkeit benötigen, benutzt wird.

 

3.0 Scanning
3.1 TCP connect scanning
Dies stellt die normal gebräuchliche Form des TCP-Scannings dar. Dabei wird versucht mit jedem Port des Ziels eine Verbindung aufzubauen. Gelingt dies, wird die Verbindung abgebrochen, und Du erlangst die Erkenntnis, dass der Port offen ist. Andererseits, falls keine Verbindung aufgebaut werden konnte, ist der Port geschlossen.
Der enorme Vorteil eines solchen Scans ist, dass keine Root-Privilegien für einen solchen Scan nötig sind. Als weiteres Plus für diese Methode ist der Vorteil einer enormen Geschwindigkeit.

 

3.2 TCP FIN scanning
Falls nun ein SYN-Scan als nicht heimlich genug eingeschätzt wird, bietet sich ein FIN-Scan an. Viele Firewall-Komponente sind so konfiguriert, dass sie bei SYN-Scanns Alarm auslösen. Anders sieht es da bei FIN-Scans aus. Möglichekit für einen solchen Scan bietet die Fehlimplementation von TCP: Diese Technik basiert darauf, dass offene Ports Deine Pakete ignorieren, und geschlossene jene nicht.
Einen solchen Scan führt man in einer Unix-Umgebung mit dem Befehl "nmap -u" aus, wobei U für "Uriel" steht.

 

3.3 TCP SYN scanning
Diese Scanning-Technik wird auch als "halb offen" bezeichnet, da nicht wirklich eine ganze TCP-Verbindung aufgebaut wird. Als erstes wird ein SYN-Paket an das Ziel geschickt. Ein darauf folgendes SYN/ACK-Paket teilt Dir mit, falls der Port offen ist. Ein RST konfrontiert einem mit einem geschlossenen Port.
Um einen SYN-Scan durchzuführen, braucht man Root-Privilegien auf einem Systemn. Durchgeführt kann ein solcher Scan mit "nmap -s".

 

4.0 Angriffsmöglichkeiten

4.1 TCP-Sequenznummern-Angriff


Ein Angriff auf den Schultern von TCP ist ein sogenannter TCP-Sequenznummern-Angriff. Um einen solchen Angriff auszuüben, muss man sich des Wissens des IP-Spoofings aneignen, und jenes auch in der Praxis einsetzen können. Desweiteren ist das Verständnis eines TCP-Handshakes von un-schätzbarem Wert.
Ein TCP-Handshake bei einem Verbindungsaufbau lauft wie folgt ab:

Client an Server: SYN(Client-Sequenznummer)
Server an Client: SYN(Server-Sequenznummer) & ACK(Client-Sequenznummer + 1)
Client an Server: ACK(Server-Sequenznummer + 1)

Erst nach diesem Abklatsch ist eine TCP-Verbindung erfolgreich aufgebaut, und kann benutzt werden. Die dafür notwendigen Sequenznummern werden jedoch nach keinem offiziellen Schema ermittelt. In den meisten Implementationen wird der Zähler einfach periodisch, meist nach einer Sekunde, um einen konstanten Wert, zum Beispiel 64, erhöht. Dasselbe geschieht natürlich bei jedem neuen Verbindungsaufbau. Bei mehrfachem Verbindungsaufbau zu einem zugelassenen Port kann man den eingesetzten Algorithmus zur Sequenznummerngeneration herausfinden.

Eine potentielle Angriffsmöglichkeit besteht nun darin, einen (Einwegs-)Verbindungsaufbau mittels vorhergesagten Sequenznummern aufzubauen. Sobald diese Aktion erfolgreich durchgeführt werden konnte, beginnt der Angreifer einen weiteren Verbindungsaufbau, der angeblich von einer internen Station kommt. In meinem Beispiel nenne ich diese interne Station "A". Das Handshake-Paket des Servers (SYN & ACK) kommt nicht beim Angreifer an, sondern geht in den Weiten des LAN-Nirwanas verloren, da der ei-gentliche interne Rechner A keine TCP-Verbindung aufbauen wollte. Der Angreifer ist jedoch mittels des Vorhersagens der Sequenznummern in der Lage, dieses absichtlich verlorengegangene Paket zu bestäti-gen, wodurch eine Einwegverbindung in das von Firewall-Komponenten geschützte Netz aufgebaut werden konnte. Dadurch kann der Angreifer beliebige Operationen im internen Netz durchführen, kommt jedoch nie in den Genuss seiner Ergebnisse. Der Server glaubt während des ganzen Treibens an eine bestehende Verbindung mit der reel existierenden, sich im LAN befindenden Station A. Der Angreifer kann seine Aktion noch perfektionieren, indem er durch SYN-Flooding den wahren Rechner A maltretiert, wodurch die verlorengegangenen Pakete des angegriffenen Servers nie entdeckt werden können.

Abhilfe kann die Unterdrückung von IP-Spoofing in Form von Input-Filterung bei den Firewall-Komponenten sein. Authentifikation sollte eigentlich eh nie mittels der IP-Adresse im Header, sondern durch ein auf zum Beispiel Einmalpasswörter aufgebautes kryptografisches System sein.

 

4.2 TCP-Hijacking

Damit wird die Kunst bezeichnet, eine TCP/IP-Verbindung, speziell die von One-Time-Passwortschemata, bei denen nur einmal nach einem Passwort gefragt wird, aus den Händen eines Clients zu reissen. Dabei wird durch das Ausnutzen der Eigenschaft von TCP/IP, dass die Datenpakete durchnummeriert werden, nach erfolgreicher Authentifizierung die Verbindung "gestohlen". Jemand, der in der Mitte der Verbindung nun entsprechend manipulierte Pakete an beide an der Verbindung beteiligten Parteien sendet, kann beiden Rechnern vormachen, er sei der jeweils andere, und übernimmt damit die Kontrolle über die Verbindung. Dies wird auch Man-in-the-Middle-Attacke genannt. Unter Umständen genügt es auch, parallel zu einem anderen Rechner im Netz zu sein, um einen Versuch zur Übernahme der Verbindung durchzuführen.



Startseite (Kein Menü ???)