TCP-Protokoll

tcpUntrennbar mit dem IP-Protokoll (Layer 3) verbunden ist das TCP-Protokoll (Layer 4). Es wird sogar im Namen von IP genannt. TCP, als bekanntestes Protokoll der IP-Protokoll-Familie ist also auf der Transportschicht angesiedelt. Es ist ein verbindungsorientiertes Protokoll. Das heißt für die Datenübertragung mittels des TCP-Protokolls muss ein Verbindungsaufbau von Gegenstelle zu Gegenstelle erfolgen. Dieser Verbindungsaufbau geht nach dem 3-Way-Handshake Verfahren vonstatten.

Grundsätzlich werden TCP Verbindungen mittels der Kommunikationports initiiert. Es stehen für diese Ports 2 Byte (16 bit) zur Verfügung. Dies wären demnach 65,536 Ports (0-65,635), welche für die Datenübertragung zur Verfügung stehen. Die ersten 1024 Ports, also 0-1023 sind die „Well Known Ports“. Diese Ports werden auch die privilegierten Ports genannt. Dies sind grundsätzlich die Ports, auf denen die Dienste laufen, die nur vom Benutzer root ausgeführt werden können. (Wir erinnern uns: das Internet ist ausschließlich einer Erfindung der UNIX Welt.)

Die Ports 1,024-65,535 sind die unprivilegierten Highports, die grundsätzlich nur für Verbindungsaufbauten verwendet werden. Allerdings sind die Grenzen fließend. Es gibt durchaus Dienste, welche die Highports zur Kommunikation verwenden. Das Beste Beispiel hierfür ist das Programm webmin, welches auf Port 10,000 seinen Dienst überträgt.

Diese Well-Known-Portliste wird von IANA gepflegt und ist grundsätzlich auf allen Systemen als Datei Namens „Services“ zu finden. Bei UNIX-Systemen ist es unter /etc/services/ und unter Windows unter C:\Windows\System32\drivers\etc\services\ zu finden.

In dieser Datei ist zu sehen, welcher Dienst welchen Kommunikationsport benutzt. Zu beachten ist, dass meist zwei Protokolle (TCP und UDP) angegeben sind. Dies liegt daran, dass beide Basisprotokolle, nämlich TCP und UDP für den genannten Dienst zur Verfügung stehen. Wir erinnern uns: Dienste, also auch Client-Programme, laufen immer auf Application Layer 7.

[pageview url=“http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml“ title=“Die Service-Liste bei iana.org“ scrolling=“yes“]

 

Die wichtigsten Dienste für unsere bescheidenen Zwecke:

Zweck Dienst Port Protokoll
Web http 80 tcp
Web https 443 tcp
Email smtp 25 tcp
Email pop3 110 tcp
Email imap 143 tcp
adminstration remote ssh 22 tcp
adminstration remote telnet 23 tcp
Zeitservice ntp 123 UDP
Zeitservice DNS 53 UDP (tcp)
File ftp 21 tcp
File ftp-data 20 tcp

 

Interessante Ports für Microsoft

Zweck Port Protokoll
Microsoft DS 445 tcp
NetBIOS 137-139

 

Besondere Ports

Zweck Port Protokoll
webmin 10,000 tcp
teamspeak 9,987 UDP Kommunikation
teamspeak 30,033 tcp File Transfer

 

Die Ports sind notwendig um den Verbindungsaufbau vorzugsweise des TCP-Protokolls zu initiieren. Es handelt sich um den Three-Way-Handshake. Schematisch betrachtet könnte etwa so aussehen:

Quelle: http://wiki.hping.org/122

Quelle: Link

Der Client benutzt für den Verbindungsaufbau zum Server einen unprivilegierten Highport. Dieser ist völlig wahlfrei und unvorhersehbar.

Der Port mit der IP-Adresse bildet den Verbindungs-Socket. Mit diesem Port baut nun der Client eine Verbindung auf den Port 80 (privilegiert) des Servers die Verbindung auf.

Grundsätzlich müsste im Webbrowser der Zielport definiert werden, jedoch ist im Browser hinterlegt, dass es sich bei http Verbidungen um den Zielport 80 handelt.

Der Verbindungsaufbau des Clients wird durch das Status-bit/Status-Flag SYN (Synchronize) ausgedrückt. Wenn der Server den Verbindungswunsch akzeptiert, sendet er das SYN-Flag mit gesetztem ACK-Flag (Acknowledge) an den vom Client ausgewählten Highport zurück. Sämtliche weiteren Datenpakete tragen nun als Kennzeichen der etablierten Verbindung das ACK-Flag. Der Three-Way-Handshake ist damit vollzogen. Bei der Dateiübertragung wird weiterhin eine zufällig generierte Sequence Number immer um eins erhöht.

Quelle: Link

Quelle: Link

Natürlich erfordert ein Verbindungsaufbau auch einen korrekten Verbindungsabbau. Beim TCP/IP Protokoll erfolgt dieser durch ein sogenanntes beidseitiges schließen. Dieses könnte etwa so aussehen:

In diesem Fall wird der Verbindungsabbau-Wunsch vom Client durch ein gesetztes FIN-Flag (FIN = Finalize) gekennzeichnet. Der Server akzeptiert diesen Verbindungsabbau mit einem gesetzten ACK-Flag, der nun wiederum vom Client durch ein gesetztes ACK-Flag akzeptiert werden muss. Ist die Prozedur durchlaufen, ist das beidseitige schließen der Verbindung vollzogen. Dieser Vorgang kann durch Programme wie Netzwerksniffer oder Portscanner sichtbar gemacht werden. Bekannte Programme sind beispielsweise Wireshark, nmap oder Cain & Abel.

Laden Sie nun das Programm Wireshark herunter, installieren sie es und verfolgen einen Verbindungsaufbau zu einem Server ihrer Wahl. Legen Sie ihr Augenmerk besonders auf die Flags, Source- und Destination-IP und Sequence Numbers. Beachten Sie, dass bei der Abfrage von unverschlüsselten Mail-Servern, das Passwort im Header als Klartext zu sehen ist.

Bitte unbedingt auch in Hinblick auf die IHK Prüfung gut studieren und vor allem die IP-Header genauestens lernen!!!

Eine Besonderheit ist der Promiscous-Mode. Dieser Modus muss von der Netzwerkkarte unterstützt werden. Ist dies möglich ist, so können alle Netzwerkpakete eines Subnets abgefangen und analysiert werden. Ohne den Prosmiscous-Mode können nur die Netzwerkpakete des eigenen Hosts abgefangen werden.

Eine weitere Möglichkeit das Netzwerk zu testen ist ein Portscanner. Der bekannteste aus der Open Source Welt ist nmap (mit grafischer Oberfläche zenmap genannt). Mit Portscannern kann man keine Netzwerkpakete mitschneiden wie etwa bei Wireshark, sondern selbst welche erzeugen. In der Regel versucht man mit Portscannern herauszufinden, auf welchen Ports eines Serves sich Dienste wie http, smtp, pop3, etc. angeboten werden. Auch Firewalls werden gerne damit geprüft, um zu sehen welche Ports geöffnet sind und welche welche Ports eventuell noch geschlossen werden sollten.

Es ist nämich so, dass ein Server der Dienste anbieten soll, auch die entsprechenden Ports geöffnet haben muss. Ein Client hingegen hat in der Regel nur die Ports offen, auf denen er einen Verbindungswunsch zu einem Server initiiert hat. Eine Ausnahme bilden hier Computerspiele, die diverse Ports an der Firewall geöffnet haben müssen.

Installieren Sie nun einen lizenzfreien Portscanner wie LANGuard oder nmap und scannen Sie ihren Bankrouter auf offene Ports. Führen Sie den Portscan in Verbindung mit Ihrem Netzwerksniffer durch um die Pakete zu untersuchen.

Ports und deren Ge-/Mißbrauch

UPD 1025 Microsoft Dienste / Schadprogramme

UDP 1029 Trojaner

Alos: wo kommt das Zeug her???

 

IP-Header mit gesetzten bits

Quelle: http://ssfnet.org/Exchange/tcp/Graphics/tcpHeader1.gif

Quelle: http://ssfnet.org/Exchange/tcp/Graphics/tcpHeader1.gif

 

http://foren6.files.wordpress.com/2011/04/ip-header-v41.png

http://foren6.files.wordpress.com/2011/04/ip-header-v41.png

 

[pageview url=“http://blog.simon-duerr.de/2013/10/729/“ title=“Simons NotizBlog“ scrolling=“yes“]

Print Friendly, PDF & Email

Schreibe einen Kommentar