Was ist Port-Scanning?

Ports haben einen großen Anteil daran, dass Datenpakete ihren Weg zum erwünschten Ziel finden. Sie dienen als Schnittstelle zwischen Rechnern und Systemdiensten bzw. Programmen und werden von den Netzwerkprotokollen TCP und UDP verwendet. In Kombination mit der IP-Adresse weiß das Betriebssystem durch die Port-Angabe nicht nur, an welchen Zielcomputer es den Datenstrom senden, sondern auch, an welche Anwendung es die Pakete übergeben soll.

Was ist Port-Scanning?

Betriebssysteme nutzen Ports, um ein- und ausgehende Datenpakete an die richtigen Anwendungen weiterleiten zu können. Somit dienen Ports als eine vom Betriebssystem verwaltete Schnittstelle zwischen laufenden Programmen und dem Internet. Damit eine Anwendung über einen Port kommunizieren kann, muss dieser zuerst geöffnet, also freigeschaltet, werden. Dies bringt allerdings eine Problematik mit sich: Jeder offene Port ist ein potenzieller Zugang für Angreifende, wenn die jeweilige Anwendung Sicherheitslücken aufweist. Um das Risiko eines Angriffs zu minimieren, sollten Sie stets im Blick haben, welche Ports auf Ihrem System geöffnet sind und welche Anwendungen dahinterstecken.

Unter dem Begriff Port-Scanning versteht man den gezielten Vorgang, offene Ports eines Computersystems mithilfe spezieller Tools zu überprüfen. Um einen solchen Scan durchzuführen, müssen Sie nicht auf dem Zielsystem angemeldet, sondern nur mit diesem verbunden sein – z. B. über ein lokales Netzwerk oder über das Internet. Mithilfe des Port-Scanners schicken Sie testweise spezielle Datenpakete an die unterschiedlichen Ports und erhalten entsprechende Antworten oder Fehlermeldungen, die das Tool analysiert und auswertet. Abhängig vom Funktionsumfang des verwendeten Scanning-Programms bekommen Sie auf diese Weise nicht nur Informationen darüber, welche Ports geöffnet bzw. geschlossen sind, sondern auch welche Dienste bzw. Anwendungen die jeweiligen Ports nutzen.

Port-Scanning stellt für Systemadministrierende ein sehr effizientes Mittel dar, um den Datenverkehr in einem Netzwerk zu überwachen. So können eventuelle Schwachstellen herausgefiltert und die Angriffsfläche des Systems reduziert werden. In einigen Fällen lassen sich so auch konkrete Netzwerkprobleme lösen. Zudem haben die Tools keinerlei spürbaren Einfluss auf die Leistungsfähigkeit der untersuchten Systeme – sie können also für solche Sicherheitsmaßnahmen bedenkenlos eingesetzt werden.

Auch auf dem Heim-PC hat Port-Scanning durchaus Sinn: Sobald Sie Anwendungen nutzen, die einen Internetanschluss erfordern, werden automatisch auch Ports geöffnet – insofern Ihre Firewall dies nicht verhindert. Ein Port-Scan hilft Ihnen, die Übersicht zu bewahren und zeigt Ihnen nicht mehr benötigte Ports auf, die Sie in der Folge schließen können, um das Sicherheitsrisiko zu minimieren.

MyDefender von IONOS

Cyber Security aus Deutschland!

Schützen Sie alle Geräte mit intelligenten Analyse-Tools und automatischen Backups vor Ransomware, Viren und Datenverlust.

Voll skalierbar
Sicher
Automatisiert

Wie genau funktioniert Port-Scanning?

Port-Scanner offerieren standardmäßig verschiedene Methoden, wobei sich der Großteil um das verbindungsorientierte Protokoll TCP dreht. Um die grundsätzlichen Vorgänge während des Port-Scannings nachzuvollziehen, ist es daher hilfreich, einen kurzen Blick auf den allgemeinen TCP-Verbindungsaufbau zu werfen:

  • Im Rahmen des auch als Drei-Wege-Handshake bezeichneten Prozesses schickt zunächst der Client ein SYN-Paket (synchronize = „synchronisieren“) an den entsprechenden Ziel-Port.
  • Erreicht er auf diese Weise eine Anwendung, erhält der Client ein kombiniertes SYN/ACK-Paket (synchronize acknowledge = „Synchronisieren bestätigen“) zurück, das die Verbindungsaufnahme bestätigt.
  • Der Client sendet im dritten und letzten Schritt ein ACK-Paket (acknowledge = „bestätigen“) zurück, woraufhin die Verbindung hergestellt ist und der Datenaustausch beginnen kann.

Wird ein geschlossener Port kontaktiert, erhält der Client im zweiten Schritt ein RST-Paket (reset = „zurücksetzen“) als Antwort, woraufhin der Handshake abgebrochen wird.

Da es sehr aufwendig und sehr komplex wäre, Daten mit den verschiedenartigen Anwendungen auszutauschen, ist Port-Scanning lediglich auf einfache Verbindungsversuche beschränkt, wie die im Folgenden präsentierten gängigen Scan-Methoden zeigen.

TCP-SYN-Scan

Beim TCP-SYN-Scan spricht man häufig auch von einem halboffenen Portscan, da er nicht darauf abzielt, eine vollständige TCP-Verbindung aufzubauen. Bei dieser Methode schickt der Port-Scanner gewöhnliche SYN-Pakete an die einzelnen Ports und wartet auf die Antwort des Ziel-Hosts. Sendet dieser ein SYN/ACK-Paket zurück, signalisiert er, dass der jeweilige Port offen und ein Verbindungsaufbau möglich ist. Besteht die Antwort aus einem RST-Paket, ist der Port hingegen geschlossen. Kommt keine Antwort, ist aller Voraussicht nach ein Paketfilter wie z. B. eine Firewall vorgeschaltet.

TCP-SYN-Scans sind für die überprüften Anwendungen nicht sichtbar und erzeugen daher auch keine Log-Daten. Aus diesem Grund werden sie auch als Stealth-Scans („Heimlichkeits-Scans“) bezeichnet.

TCP-Connect-Scan

Führen Sie mit Ihrem Port-Scanner einen Connect-Scan aus, erzeugen und verschicken Sie die Datenpakete nicht selbst, sondern nutzen dafür den Systemaufruf connect. Dieser steht auf beinahe jedem Betriebssystem zur Verfügung. Ein erfolgreicher Verbindungsaufbau gilt als Bestätigung, dass der entsprechende Port offen ist. Sollte der Verbindungsaufbau scheitern, wird der Port als geschlossen gekennzeichnet. In den Log-Dateien der jeweiligen Anwendungen mit offenen Ports ist bei einem komplett ausgeführten Verbindungsaufbau ersichtlich, dass diese Scan-Methode angewandt wurde. Sie gibt aber keine Aufschlüsse über eingesetzte Filterprogramme. Fehlen Ihnen die Rechte, rohe Datenpakete zu verschicken, ist der TCP-Connect-Scan dennoch eine nützliche Alternative zum SYN-Scan.

TCP-FIN-, Xmas- und Null-Scans

Mit diesen drei Port-Scanning-Methoden können Sie ebenfalls zwischen offenen und geschlossenen Ports unterscheiden. Dazu bedienen Sie sich zweier Grundsätze von TCP, die im entsprechenden RFC 793“) verzeichnet sind:

  1. Eingehende Pakete, bei denen es sich nicht um RST-Pakete handelt, sollen von einem geschlossenen Port immer mit einem eigenen RST-Paket beantwortet werden.
  2. Alle Pakete, die nicht als SYN, RST oder ACK markiert sind, sollen von einem offenen Port ignoriert werden.

Die drei Scan-Typen nutzen diese Situation beim Port-Scanning RFC-konformer Systeme mit ihren individuellen Paketen aus:

  • Der Null-Scan setzt keinerlei besondere Markierung ein.
  • Beim FIN-Scan schickt der Port-Scanner FIN-Pakete (finish = „beenden“).
  • Xmas-Scans setzen auf eine Kombination von FIN-, PSH- (push = „vorstoßen“) und URG-Markierungen (urgent = „dringlich“); somit „erleuchtet“ das Paket gleichsam wie ein Weihnachtsbaum.

Alle drei Scan-Methoden verhalten sich exakt gleich. Ihre verschickten Testpakete sorgen aufgrund der RFC-Bestimmungen dafür, dass ein geschlossener Port mit einem RST-Paket antwortet und ein offener Port gar keine Rückmeldung gibt. Da allerdings nur einige Router eine Fehlermeldung übermitteln, wenn ein Port gefiltert wird, kann das Ausbleiben einer Rückmeldung auch für einen gefilterten Port stehen. Während die Verfahren noch unauffälliger als SYN-Scans sind, haben sie den Nachteil, dass sie nicht funktionieren, wenn Systeme sich nicht genau an den RFC 793 halten. Als prominenter Vertreter wäre hier Windows zu nennen.

UDP-Scan

Bei einem UDP-Scan werden leere UDP-Header ohne Daten an alle Ziel-Ports geschickt. Antwortet ein Dienst ebenfalls mit einem UDP-Paket, ist bestätigt, dass der dazugehörende Port geöffnet ist. Empfängt der Port-Scanner vom Router die Fehlermeldung „Port unreachable“ (Typ 3, Code 3), weiß er, dass der Port geschlossen ist. Andere Fehlermeldungen geben darüber Aufschluss, dass ein Paketfilter den Port blockiert. Das große Problem des UDP-Port-Testings ist der hohe Zeitaufwand, da auf vielen Systemen die Ausgabe der entsprechenden Fehlermeldungen aus Sicherheitsgründen sehr lange dauern kann und auch offene Ports nur sehr unregelmäßig antworten. Der Linux-Kernel beschränkt die Anzahl an Meldungen beispielsweise auf eine pro Sekunde, was bei 65.535 Ports rund 18 Stunden Scan-Dauer bedeutet.

Welche Port-Scanner gibt es?

Es existieren ganz verschiedene Scanner mit unterschiedlichem Funktionsumfang, wobei der Großteil dieser Tools Freeware oder Open Source ist. Bei vielen Vertretern handelt es sich um klassische Kommandozeilenprogramme, die auch über separate grafische Oberflächen bedienbar sind. Darüber hinaus gibt es im Web zahlreiche Lösungen, mit denen Sie Ports direkt im Browser scannen können. Diese Dienste sind allerdings funktional stark eingeschränkt und bieten, wie z. B. der Port-Scanner von DNStools, nur die Möglichkeit, einzelne Ports zu überprüfen. Aus diesem Grund eignen sie sich eher als bequeme Option für den Schnellcheck am Computer zuhause.

Netcat – das Urgestein der Netzwerk-Tools

Netcat (kurz: nc) wurde 1996 von einer anonymen Person unter dem Pseudonym „Hobbit“ veröffentlicht. Ursprünglich für UNIX-Plattformen geschrieben, existieren mittlerweile diverse Portierungen für andere Systeme wie Windows sowie verschiedene Weiterentwicklungen wie GNU Netcat, OpenBSD Netcat, Cryptcat oder Netcat6 (unterstützt auch das IPv6), die in vielen Linux-Distributionen standardmäßig implementiert sind. Die Grundversion des Kommandozeilen-Tools dient in erster Linie dazu, Daten über TCP- und UDP-Netzwerkverbindungen zu versenden oder zu lesen, kann darüber hinaus aber auch zum simplen Port-Scanning genutzt werden. So können Sie z. B. mit einem einfachen Befehl wie

nc -zv localhost 20-30
bash

den Status der Ports 20 bis 30 auf dem ausführenden System überprüfen. Der Check von UDP-Ports erfordert den zusätzlichen Parameter -u. Ferner können Sie anstelle von localhost die Hostnamen bzw. IP-Adressen externer Systeme eingeben, sofern Sie diese kennen.

Umfassende Netzwerk-Analyse mit Nmap

Ein wesentlich mächtigeres Werkzeug, das vor allem in seiner Funktion als Port-Scanner überzeugt, ist der 1997 erschienene Network Mapper, bekannter unter dem Kurznamen Nmap. Das für unixoide Systeme entwickelte Programm ist GPL-lizenziert und seit 2000 auch für Windows-Systeme verfügbar – allerdings mit kleineren Einschränkungen. So nimmt z. B. der TCP-Connect-Scan aufgrund der Windows-Netzwerk-API unverhältnismäßig viel Zeit in Anspruch. Auch das Scannen der eigenen System-Ports ist nur über Umwege möglich. Standardmäßig lässt sich Nmap über die Kommandozeile bedienen. Mit Zenmap existiert jedoch eine leistungsstarke grafische Oberfläche, mit der Sie das Netzwerk-Tool noch komfortabler nutzen können.

Der Nmap-Erfinder Gordon Lyon und das Nmap-Developer-Team entwickeln das Programm und seine Port-Scanning-Funktionen stetig weiter, was der Hauptgrund für die Vielfalt an Features ist. Insbesondere Techniken wie das OS-Fingerprinting – das Erkennen des Betriebssystems eines Zielhosts – und das Auslesen der Dienste, die sich hinter einem Port verbergen, machen Nmap zu einer der beliebtesten Port-Scanner-Lösungen. Die Vielfalt äußert sich auch in den verfügbaren Scan-Methoden, die wir in der folgenden Tabelle zusammengefasst haben:

Port-Scanning-Methode Nmap-Befehl Beschreibung
TCP-Connect-Scan nmap -sT Host klassischer Check für Nicht-Administratoren
TCP-Syn-Scan nmap -sS Host schnelle, unbemerkte Überprüfungsmethode für Administratoren
TCP-FIN-/XMAS-/Null-Scan nmap -sF Host
nmap -sX Host
nmap -sN Host
Methoden, die Firewalls umgehen können
TCP-Ping-Scan nmap -sP Host kein klassischer Port-Scan; hilft, die Erreichbarkeit eines Hosts zu überprüfen
TCP-ACK-Scan nmap -sA Host stellt gefilterte Ports fest, bietet aber keine Unterscheidung zwischen offenen und geschlossenen Ports
TCP-Window-Scan nmap -sW Host vergleichbar mit dem ACK-Scan; kann einige offene und geschlossene Ports verifizieren
TCP-Maimon-Scan nmap -sM Host Kombination aus FIN- und ACK-Scan
TCP-Idle-Scan nmap -sI Zombie-Host Host unauffälligste, komplexeste und dadurch auch langsamste Scan-Methode; läuft über einen dritten Rechner, der von Nmap als „Zombie“ bezeichnet wird
UDP-Scan nmap -sU Host Portscan-Methode für die verbindungslosen UDP-Ports
SCTP-Init-Scan nmap -sY Host Portscan mit SCTP, einer Alternative zu TCP und UDP
IP-Protokoll-Scan nmap -sO Host kein Port-Scan; prüft, welche IP-basierenden Protokolle auf dem Zielsystem unterstützt werden

Sie können sowohl Nmap und das Interface Zenmap auf der offiziellen Homepage für das gewünschte Betriebssystem herunterladen. Dazu stehen die aktuelle Version (stable) sowie eine Beta-Version zur Verfügung.

Eine Port-Überprüfung ist nicht immer legal; spätestens mit einem anschließenden Exploit-Versuch, wie das Ausnutzen einer Sicherheitslücke in der Fachsprache heißt, macht man sich in jedem Fall strafbar.

Weniger eindeutig sieht die Rechtslage aus, wenn Sie ein Computersystem aufgrund intensiver Port-Scans lahmlegen. Da die Überprüfungsmethode aufgrund der hohen Frequenz an Verbindungsanfragen eine mitunter starke Belastung für das Zielsystem darstellt, kann es nämlich u. U. passieren, dass dieses abstürzt. Außerdem könnten Verantwortliche des Zielsystems Ihre Unternehmungen bereits vor einem Absturz entdecken und als erste Schritte eines Angriffs werten. Rechtliche Konsequenzen sind in einem solchen Fall nicht auszuschließen. Wird eine Überlastung des fremden Systems bewusst herbeigeführt, handelt es sich um sogenannte DoS- bzw. DDoS-Angriffe, die mit hoher Wahrscheinlichkeit eine Strafverfolgung nach sich ziehen.

Gehen Sie daher immer sicher, dass Sie dazu berechtigt sind, einen Port-Scan auf dem jeweiligen System durchzuführen, und verwenden Sie die Technik ausschließlich zu Sicherheitszwecken und nicht etwa aus reiner Neugierde. Die aufgezeigten Wege, das Port-Scanning einzusetzen, verdeutlichen, wie wichtig es ist, die Ports des eigenen Systems bzw. der Netzwerkcomputer sowie die darauf zugreifenden Dienste im Auge zu behalten.