Port scanning

Port scanning

Ein Portscanner ist eine Software, mit der überprüft werden kann, welche Dienste ein mit TCP/IP oder UDP arbeitendes System anbietet. Der Portscanner nimmt dem Anwender dabei die Arbeit ab, das Antwortverhalten eines Systems selbst mit einem Sniffer zu untersuchen und zu interpretieren.

Oft bieten Portscanner auch Zusatzfunktionen wie Betriebssystem- und Diensterkennung an, obwohl sie nichts mit dem eigentlichen Portscannen zu tun haben.

Inhaltsverzeichnis

Funktionsweise

TCP connect() Scan

Diese ist die einfachste Scanmethode. Der Portscanner nutzt den connect() Systemaufruf für den Portscan. Den eigentlichen Verbindungsaufbau übernimmt dann das Betriebssystem. Falls der Systemaufruf erfolgreich war, ist der Port offen. Die Verbindung wird dann sofort mit close() wieder geschlossen. Konnte die Verbindung nicht aufgebaut werden, ist der Port geschlossen.

Vorteilhaft bei dieser Methode ist die sehr einfache Programmierung. Da der connect() Befehl auf fast jedem System zur Verfügung steht, ist ein connect() Portscanner sehr portabel. Spezielle Rechte sind meist nicht erforderlich. Da die Verbindung bei Erfolg komplett aufgebaut wird, erscheint sie meistens in den Logdateien der Dienste.

TCP SYN Scan

Beim TCP SYN Scan wird ein TCP-Paket mit SYN-Flag an den Ziel-Host gesendet, um einen Verbindungsversuch vorzutäuschen. Die Antwort des Hosts gibt Aufschluss über den Port: Sendet er ein SYN/ACK-Paket, den zweiten Teil des Drei-Wege-Handshakes von TCP, akzeptiert der Port Verbindungen und ist daher offen. Der Quell-Host antwortet dann in der Regel mit einem RST-Paket, um die Verbindung wieder abzubauen (dies geschieht meist allerdings nicht durch den Portscanner, sondern durch das Betriebssystem, da offiziell kein Verbindungsversuch unternommen wurde). Sendet der Host ein RST-Paket, ist der Port geschlossen. Sendet der Ziel-Host überhaupt kein Paket, ist ein Paketfilter vorgeschaltet.

Dieser Art von Scan wird auch Stealth-Scan genannt, da der TCP/IP Stack bei nicht vollständig zustandegekommenen Verbindungen den zugehörigen Dienst nicht informiert. Dieser erzeugt daher auch keine Log-Daten für versuchte Verbindungsaufbauten, bzw.bekommt vom Scan überhaupt nichts mit. Aus Anwendungssicht ist der SYN-Scan daher unsichtbar. Dies gilt aber nicht für die Netzwerkebene: Firewalls oder IDS Systeme erkennen diese Art von Scan natürlich dennoch.

Auf den meisten Quell-Systemen sind außerdem Systemverwalterrechte notwendig, weil TCP-Pakete vom Portscanner handgefertigt werden müssen.

TCP SYN Scans lassen sich für Denial of Service-Attacken in Form von SYN-Flood nutzen.

TCP FIN/Xmas/Null Scan

Diese Methoden bauen keine Verbindung auf, sondern untersuchen das Verhalten auf Folgepakete. Falls ein Port offen ist, sollten die Folgepakete ignoriert werden, da sie nicht zu einer bestehenden Verbindung gehören. Ist der Port geschlossen, sollte ein Reset-Paket gesendet werden.

Welche Flags genau gesetzt werden hängt vom Scantyp ab:

Typ Flags
FIN FIN
Xmas FIN,URG,PUSH
Null (keine)

TCP Idlescan

Dieser Scan wird über einen Mittelsmann, der als Zombie bezeichnet wird, ausgeführt. Der Idlescan ist zurzeit die einzig bekannte Scanmethode, bei der der gescannte Host keine Rückschlüsse auf den scannenden Host ziehen kann, da er nur Pakete des Zombies zu sehen glaubt.

Zombiehost

Um als Zombiehost für den Idlescan geeignet zu sein, muss er Bedingungen erfüllen:

  1. Der Zombiehost muss eine Verbindung zum Ziel aufbauen können
  2. Die IPID (IP Identification Number, ein Teil des IP-Headers) muss für den Portscanner vorhersehbar sein.

Die Vorhersagbarkeit der IPID ergibt sich einerseits aus der Tatsache, dass die meisten Betriebssysteme für die IPID einen systemglobalen Zähler einsetzen, der immer dann wenn das System ein selbst erzeugtes Paket versendet, um einen bestimmten Wert erhöht wird. Die Werte sind je nach Betriebssystem unterschiedlich und typischerweise 1, 4 oder 8. Zudem ist für die Vorhersagbarkeit wichtig, dass der Zombie selbst im Betrieb idealerweise keine der IPID verändernden Pakete generiert, das System also "Idle" ist - daher der Begriff Idle-Scan.

Überraschenderweise eignen sich Router recht gut als Zombies, da diese normalerweise Pakete nur durchleiten (wobei sich deren IPID nicht ändert), aber nicht selbst am Netzwerkverkehr teilnehmen.

Ablauf

Für den eigentlichen Scan braucht der Portscanner die aktuelle IPID des Zombies. Um die IPID herauszufinden, wird z.B. einfach eine TCP Verbindungsanfrage (SYN) an ihn geschickt. Der Zombie antwortet SYN|ACK oder RST, das Anwortpaket enthält die aktuelle IPID (2).

Für den eigentlichen Portscan schickt der Angreifer ein gespooftes SYN Paket an das Ziel (3). Als Quell-IP-Adresse setzt der Angreifer die IP-Adresse des Zombiehosts. Falls der Port offen ist, sendet das Ziel ein SYN|ACK Paket an den Zombie (4a). Da er keine Verbindung geöffnet hat, schickt der Zombie ein RST Paket an das Ziel (4a). Nehmen wir an der Zombie inkrementiert die IPID immer um den Wert eins gilt: dieses Reset wird mit einer IPID + 1 an das Ziel gesendet. Ist der Port geschlossen, sendet das Ziel ein RST Paket an den Zombie (4b). Dieses Paket wird vom Zombie einfach ignoriert. Nun fragt der Angreifer in gleicher Weise wie zu Begin nach der aktuellen IPID (5). Ist die IPID um 2 gestiegen, ist der Port offen. Ist die IPID nur um 1 höher, ist der Port geschlossen (6).

Schematische Darstellung

UDP Scan

Ein direkter Scan von UDP Ports ist nicht möglich, da das Protokoll verbindungslos arbeitet. Über einen Umweg ist ein Scan trotzdem möglich. Dazu wird ein leeres UDP Paket an den entsprechenden Port geschickt. Kommt ebenfalls ein UDP-Paket zurück, ist der Port offen. Kommt keine Antwort, ist der Port entweder offen oder gefiltert. Wird eine "Port Unreachable" Fehlermeldung empfangen, ist der Port geschlossen. Auf den meisten Systemen ist die Ausgabe von ICMP-Fehlermeldungen gedrosselt, um einen Denial of Service Angriff zu verhindern. Daher sind UDP Scans meistens zeitaufwendig.

FTP-Bounce Scan

Bei einem FTP-Bounce Scan benötigt der Angreifer einen FTP Server, der den PORT Befehl zulässt. Über den PORT Befehl kann der Angreifer die IP Adresse des Opfers und einen zu überprüfenden Port übergeben. Kann der FTP Server mit den übergebenen Daten eine Verbindung etablieren, so läuft ein Dienst auf dem Port, was der Server dem Angreifer bekanntgibt. Diese Spielart von FTP war ursprünglich dazu gedacht, Dateien zwischen Servern bequem kopieren zu können. Der Angreifer bleibt dabei unsichtbar für das Opfer, da nie eine direkte Verbindung zwischen Opfer und Angreifer aufgebaut werden muss.

Zusatzfunktionen

Die o. g. Zusatzfunktionen wie OS-Fingerprinting (Erkennen des Betriebssystems) und Dienst-Erkennung, für die z. B. der Portscanner nmap bekannt ist, sind streng genommen keine Portscans mehr und ihr Einsatz kann nicht nur aufgrund eines nicht ganz auszuschließenden Absturzrisikos beim Ziel problematisch sein.

Rechtliche Aspekte

Die Legalität von Portscans ist nicht unumstritten, da sie als erste Instanz eines Eindringversuches gewertet werden können. In jedem Fall ist eine Benutzung auf eigenen Systemen legal. Unklarer ist die Rechtslage bei Portscans gegen fremde Systeme und Netzwerke. Da beispielsweise empfindliche Computer durch viele Verbindungsanfragen gestört werden können, kann dies als Angriff auf die Verfügbarkeit eines Systems gewertet und durch § 303b StGB (Computersabotage) bestraft werden. Das SANS-Institut bestätigt in einer Veröffentlichung ebenfalls den Zwiespalt von Portscans[1].

Portscanner werden jedoch aktuell nicht als Computerprogramm zum Ausspähen von Daten nach § 202c StGB (Hackerparagraf) angesehen, da sie keine Sicherheitsmechanismen umgehen oder Daten abfangen.

Bekannte Portscanner

  • Nmap (Unix/Windows)
  • Scanmetender (Windows und GNU/Linux)
  • Superscan (Windows)
  • Unicornscan (Unix)
  • nhs nohack scanner (Windows)

Weblinks

Weblinks zu Herstellerseiten bekannter Portscanner:

Online-Portscan für die eigene IP-Adresse:

Siehe auch

Einzelnachweise

  1. The Ethics and Legality of Port Scanning (Englisch)

Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Port-Scanning — Ein Portscanner ist eine Software, mit der überprüft werden kann, welche Dienste ein mit TCP/IP oder UDP arbeitendes System anbietet. Der Portscanner nimmt dem Anwender dabei die Arbeit ab, das Antwortverhalten eines Systems selbst mit einem… …   Deutsch Wikipedia

  • Port scanner — A port scanner is a piece of software designed to search a network host for open ports. This is often used by administrators to check the security of their networks and by crackers to compromise it.To portscan a host is to scan for listening… …   Wikipedia

  • Port scanner — Balayage de port En informatique, le balayage de port (appelé portscan en anglais) est une technique pour rechercher les ports ouverts sur un serveur d un réseau. Cette technique est utilisée par les administrateurs des systèmes informatiques… …   Wikipédia en Français

  • Port number — In computer networking, a port is an application specific or process specific software construct serving as a communications endpoint in a computer s host operating system. A port is associated with an IP address of the host, as well as the type… …   Wikipedia

  • Port knocking — In networking, port knocking is a method of externally opening ports on a firewall by generating a connection attempt on a set of prespecified closed ports. Once a correct sequence of connection attempts is received, the firewall rules are… …   Wikipedia

  • Balayage de port — En informatique, le balayage de port (port scanning en anglais) est une technique servant à rechercher les ports ouverts sur un serveur de réseau. Cette technique est utilisée par les administrateurs des systèmes informatiques pour contrôler la… …   Wikipédia en Français

  • Balayage De Port — En informatique, le balayage de port (appelé portscan en anglais) est une technique pour rechercher les ports ouverts sur un serveur d un réseau. Cette technique est utilisée par les administrateurs des systèmes informatiques pour contrôler la… …   Wikipédia en Français

  • Open port — In security parlance, the term open port is used to mean a TCP/IP port number that is configured to accept packets. In contrast, a port which ignores all packets directed at it is commonly referred to as a closed port .[1] Ports are an integral… …   Wikipedia

  • TCP and UDP port — In computer networking, a port is an application specific or process specific software construct serving as a communications endpoint used by Transport Layer protocols of the Internet Protocol Suite such as Transmission Control Protocol (TCP) and …   Wikipedia

  • Underwater Port Security System — See UIS and IAS for other meanings of these initials. : For other diver detector sonars, see .UPSS stands for Underwater Port Security System, developed for the United States Coast Guard and the MSST (= Maritime Safety and Security Teams) as an… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”