Ports haben einen großen Anteil daran, dass Da­ten­pa­ke­te ihren Weg zum er­wünsch­ten Ziel finden. Sie dienen als Schnitt­stel­le zwischen Rechnern und Sys­tem­diens­ten bzw. Pro­gram­men und werden von den Netz­werk­pro­to­kol­len TCP und UDP verwendet. In Kom­bi­na­ti­on mit der IP-Adresse weiß das Be­triebs­sys­tem durch die Port-Angabe nicht nur, an welchen Ziel­com­pu­ter es den Da­ten­strom senden, sondern auch, an welche Anwendung es die Pakete übergeben soll.

Was ist Port-Scanning?

Be­triebs­sys­te­me nutzen Ports, um ein- und aus­ge­hen­de Da­ten­pa­ke­te an die richtigen An­wen­dun­gen wei­ter­lei­ten zu können. Somit dienen Ports als eine vom Be­triebs­sys­tem ver­wal­te­te Schnitt­stel­le zwischen laufenden Pro­gram­men und dem Internet. Damit eine Anwendung über einen Port kom­mu­ni­zie­ren kann, muss dieser zuerst geöffnet, also frei­ge­schal­tet, werden. Dies bringt al­ler­dings eine Pro­ble­ma­tik mit sich: Jeder offene Port ist ein po­ten­zi­el­ler Zugang für An­grei­fen­de, wenn die jeweilige Anwendung Si­cher­heits­lü­cken aufweist. Um das Risiko eines Angriffs zu mi­ni­mie­ren, sollten Sie stets im Blick haben, welche Ports auf Ihrem System geöffnet sind und welche An­wen­dun­gen da­hin­ter­ste­cken.

Unter dem Begriff Port-Scanning versteht man den gezielten Vorgang, offene Ports eines Com­pu­ter­sys­tems mithilfe spe­zi­el­ler Tools zu über­prü­fen. Um einen solchen Scan durch­zu­füh­ren, müssen Sie nicht auf dem Ziel­sys­tem an­ge­mel­det, sondern nur mit diesem verbunden sein – z. B. über ein lokales Netzwerk oder über das Internet. Mithilfe des Port-Scanners schicken Sie testweise spezielle Da­ten­pa­ke­te an die un­ter­schied­li­chen Ports und erhalten ent­spre­chen­de Antworten oder Feh­ler­mel­dun­gen, die das Tool ana­ly­siert und auswertet. Abhängig vom Funk­ti­ons­um­fang des ver­wen­de­ten Scanning-Programms bekommen Sie auf diese Weise nicht nur In­for­ma­tio­nen darüber, welche Ports geöffnet bzw. ge­schlos­sen sind, sondern auch welche Dienste bzw. An­wen­dun­gen die je­wei­li­gen Ports nutzen.

Port-Scanning stellt für Sys­tem­ad­mi­nis­trie­ren­de ein sehr ef­fi­zi­en­tes Mittel dar, um den Da­ten­ver­kehr in einem Netzwerk zu über­wa­chen. So können even­tu­el­le Schwach­stel­len her­aus­ge­fil­tert und die An­griffs­flä­che des Systems reduziert werden. In einigen Fällen lassen sich so auch konkrete Netz­werk­pro­ble­me lösen. Zudem haben die Tools keinerlei spürbaren Einfluss auf die Leis­tungs­fä­hig­keit der un­ter­such­ten Systeme – sie können also für solche Si­cher­heits­maß­nah­men be­den­ken­los ein­ge­setzt werden.

Auch auf dem Heim-PC hat Port-Scanning durchaus Sinn: Sobald Sie An­wen­dun­gen nutzen, die einen In­ter­net­an­schluss erfordern, werden au­to­ma­tisch auch Ports geöffnet – insofern Ihre Firewall dies nicht ver­hin­dert. 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 Si­cher­heits­ri­si­ko zu mi­ni­mie­ren.

My­De­fen­der
Cyber Security aus Deutsch­land
  • Geplante Viren-Scans
  • Au­to­ma­ti­sche Backups, einfache Wie­der­her­stel­lung

Wie genau funk­tio­niert Port-Scanning?

Port-Scanner of­fe­rie­ren stan­dard­mä­ßig ver­schie­de­ne Methoden, wobei sich der Großteil um das ver­bin­dungs­ori­en­tier­te Protokoll TCP dreht. Um die grund­sätz­li­chen Vorgänge während des Port-Scannings nach­zu­voll­zie­hen, ist es daher hilfreich, einen kurzen Blick auf den all­ge­mei­nen TCP-Ver­bin­dungs­auf­bau zu werfen:

  • Im Rahmen des auch als Drei-Wege-Handshake be­zeich­ne­ten Prozesses schickt zunächst der Client ein SYN-Paket (syn­chro­ni­ze = „syn­chro­ni­sie­ren“) an den ent­spre­chen­den Ziel-Port.
  • Erreicht er auf diese Weise eine Anwendung, erhält der Client ein kom­bi­nier­tes SYN/ACK-Paket (syn­chro­ni­ze ack­now­ledge = „Syn­chro­ni­sie­ren be­stä­ti­gen“) zurück, das die Ver­bin­dungs­auf­nah­me bestätigt.
  • Der Client sendet im dritten und letzten Schritt ein ACK-Paket (ack­now­ledge = „be­stä­ti­gen“) zurück, woraufhin die Ver­bin­dung her­ge­stellt ist und der Da­ten­aus­tausch beginnen kann.

Wird ein ge­schlos­se­ner Port kon­tak­tiert, erhält der Client im zweiten Schritt ein RST-Paket (reset = „zu­rück­set­zen“) als Antwort, woraufhin der Handshake ab­ge­bro­chen wird.

Da es sehr aufwendig und sehr komplex wäre, Daten mit den ver­schie­den­ar­ti­gen An­wen­dun­gen aus­zu­tau­schen, ist Port-Scanning lediglich auf einfache Ver­bin­dungs­ver­su­che be­schränkt, wie die im Folgenden prä­sen­tier­ten gängigen Scan-Methoden zeigen.

TCP-SYN-Scan

Beim TCP-SYN-Scan spricht man häufig auch von einem halb­of­fe­nen Portscan, da er nicht darauf abzielt, eine voll­stän­di­ge TCP-Ver­bin­dung auf­zu­bau­en. Bei dieser Methode schickt der Port-Scanner ge­wöhn­li­che SYN-Pakete an die einzelnen Ports und wartet auf die Antwort des Ziel-Hosts. Sendet dieser ein SYN/ACK-Paket zurück, si­gna­li­siert er, dass der jeweilige Port offen und ein Ver­bin­dungs­auf­bau möglich ist. Besteht die Antwort aus einem RST-Paket, ist der Port hingegen ge­schlos­sen. Kommt keine Antwort, ist aller Vor­aus­sicht nach ein Pa­ket­fil­ter wie z. B. eine Firewall vor­ge­schal­tet.

TCP-SYN-Scans sind für die über­prüf­ten An­wen­dun­gen nicht sichtbar und erzeugen daher auch keine Log-Daten. Aus diesem Grund werden sie auch als Stealth-Scans („Heim­lich­keits-Scans“) be­zeich­net.

TCP-Connect-Scan

Führen Sie mit Ihrem Port-Scanner einen Connect-Scan aus, erzeugen und ver­schi­cken Sie die Da­ten­pa­ke­te nicht selbst, sondern nutzen dafür den Sys­tem­auf­ruf connect. Dieser steht auf beinahe jedem Be­triebs­sys­tem zur Verfügung. Ein er­folg­rei­cher Ver­bin­dungs­auf­bau gilt als Be­stä­ti­gung, dass der ent­spre­chen­de Port offen ist. Sollte der Ver­bin­dungs­auf­bau scheitern, wird der Port als ge­schlos­sen ge­kenn­zeich­net. In den Log-Dateien der je­wei­li­gen An­wen­dun­gen mit offenen Ports ist bei einem komplett aus­ge­führ­ten Ver­bin­dungs­auf­bau er­sicht­lich, dass diese Scan-Methode angewandt wurde. Sie gibt aber keine Auf­schlüs­se über ein­ge­setz­te Fil­ter­pro­gram­me. Fehlen Ihnen die Rechte, rohe Da­ten­pa­ke­te zu ver­schi­cken, ist der TCP-Connect-Scan dennoch eine nützliche Al­ter­na­ti­ve zum SYN-Scan.

TCP-FIN-, Xmas- und Null-Scans

Mit diesen drei Port-Scanning-Methoden können Sie ebenfalls zwischen offenen und ge­schlos­se­nen Ports un­ter­schei­den. Dazu bedienen Sie sich zweier Grund­sät­ze von TCP, die im ent­spre­chen­den RFC 793“) ver­zeich­net sind:

  1. Ein­ge­hen­de Pakete, bei denen es sich nicht um RST-Pakete handelt, sollen von einem ge­schlos­se­nen Port immer mit einem eigenen RST-Paket be­ant­wor­tet 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 in­di­vi­du­el­len Paketen aus:

  • Der Null-Scan setzt keinerlei besondere Mar­kie­rung ein.
  • Beim FIN-Scan schickt der Port-Scanner FIN-Pakete (finish = „beenden“).
  • Xmas-Scans setzen auf eine Kom­bi­na­ti­on von FIN-, PSH- (push = „vorstoßen“) und URG-Mar­kie­run­gen (urgent = „dringlich“); somit „er­leuch­tet“ das Paket gleichsam wie ein Weih­nachts­baum.

Alle drei Scan-Methoden verhalten sich exakt gleich. Ihre ver­schick­ten Test­pa­ke­te sorgen aufgrund der RFC-Be­stim­mun­gen dafür, dass ein ge­schlos­se­ner Port mit einem RST-Paket antwortet und ein offener Port gar keine Rück­mel­dung gibt. Da al­ler­dings nur einige Router eine Feh­ler­mel­dung über­mit­teln, wenn ein Port gefiltert wird, kann das Aus­blei­ben einer Rück­mel­dung auch für einen ge­fil­ter­ten Port stehen. Während die Verfahren noch un­auf­fäl­li­ger als SYN-Scans sind, haben sie den Nachteil, dass sie nicht funk­tio­nie­ren, wenn Systeme sich nicht genau an den RFC 793 halten. Als pro­mi­nen­ter 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 da­zu­ge­hö­ren­de Port geöffnet ist. Empfängt der Port-Scanner vom Router die Feh­ler­mel­dung „Port un­re­acha­ble“ (Typ 3, Code 3), weiß er, dass der Port ge­schlos­sen ist. Andere Feh­ler­mel­dun­gen geben darüber Auf­schluss, dass ein Pa­ket­fil­ter den Port blockiert. Das große Problem des UDP-Port-Testings ist der hohe Zeit­auf­wand, da auf vielen Systemen die Ausgabe der ent­spre­chen­den Feh­ler­mel­dun­gen aus Si­cher­heits­grün­den sehr lange dauern kann und auch offene Ports nur sehr un­re­gel­mä­ßig antworten. Der Linux-Kernel be­schränkt die Anzahl an Meldungen bei­spiels­wei­se auf eine pro Sekunde, was bei 65.535 Ports rund 18 Stunden Scan-Dauer bedeutet.

Welche Port-Scanner gibt es?

Es exis­tie­ren ganz ver­schie­de­ne Scanner mit un­ter­schied­li­chem Funk­ti­ons­um­fang, wobei der Großteil dieser Tools Freeware oder Open Source ist. Bei vielen Ver­tre­tern handelt es sich um klas­si­sche Kom­man­do­zei­len­pro­gram­me, die auch über separate grafische Ober­flä­chen bedienbar sind. Darüber hinaus gibt es im Web zahl­rei­che Lösungen, mit denen Sie Ports direkt im Browser scannen können. Diese Dienste sind al­ler­dings funk­tio­nal stark ein­ge­schränkt und bieten, wie z. B. der Port-Scanner von DNStools, nur die Mög­lich­keit, einzelne Ports zu über­prü­fen. Aus diesem Grund eignen sie sich eher als bequeme Option für den Schnell­ch­eck am Computer zuhause.

Netcat – das Urgestein der Netzwerk-Tools

Netcat (kurz: nc) wurde 1996 von einer anonymen Person unter dem Pseudonym „Hobbit“ ver­öf­fent­licht. Ur­sprüng­lich für UNIX-Platt­for­men ge­schrie­ben, exis­tie­ren mitt­ler­wei­le diverse Por­tie­run­gen für andere Systeme wie Windows sowie ver­schie­de­ne Wei­ter­ent­wick­lun­gen wie GNU Netcat, OpenBSD Netcat, Cryptcat oder Netcat6 (un­ter­stützt auch das IPv6), die in vielen Linux-Dis­tri­bu­tio­nen stan­dard­mä­ßig im­ple­men­tiert sind. Die Grund­ver­si­on des Kom­man­do­zei­len-Tools dient in erster Linie dazu, Daten über TCP- und UDP-Netz­werk­ver­bin­dun­gen 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 aus­füh­ren­den System über­prü­fen. Der Check von UDP-Ports erfordert den zu­sätz­li­chen Parameter -u. Ferner können Sie anstelle von localhost die Hostnamen bzw. IP-Adressen externer Systeme eingeben, sofern Sie diese kennen.

Um­fas­sen­de Netzwerk-Analyse mit Nmap

Ein we­sent­lich mäch­ti­ge­res Werkzeug, das vor allem in seiner Funktion als Port-Scanner überzeugt, ist der 1997 er­schie­ne­ne Network Mapper, bekannter unter dem Kurznamen Nmap. Das für unixoide Systeme ent­wi­ckel­te Programm ist GPL-li­zen­ziert und seit 2000 auch für Windows-Systeme verfügbar – al­ler­dings mit kleineren Ein­schrän­kun­gen. So nimmt z. B. der TCP-Connect-Scan aufgrund der Windows-Netzwerk-API un­ver­hält­nis­mä­ßig viel Zeit in Anspruch. Auch das Scannen der eigenen System-Ports ist nur über Umwege möglich. Stan­dard­mä­ßig lässt sich Nmap über die Kom­man­do­zei­le bedienen. Mit Zenmap existiert jedoch eine leis­tungs­star­ke grafische Ober­flä­che, mit der Sie das Netzwerk-Tool noch kom­for­ta­bler nutzen können.

Der Nmap-Erfinder Gordon Lyon und das Nmap-Developer-Team ent­wi­ckeln das Programm und seine Port-Scanning-Funk­tio­nen stetig weiter, was der Haupt­grund für die Vielfalt an Features ist. Ins­be­son­de­re Techniken wie das OS-Fin­ger­prin­ting – das Erkennen des Be­triebs­sys­tems eines Zielhosts – und das Auslesen der Dienste, die sich hinter einem Port verbergen, machen Nmap zu einer der be­lieb­tes­ten Port-Scanner-Lösungen. Die Vielfalt äußert sich auch in den ver­füg­ba­ren Scan-Methoden, die wir in der folgenden Tabelle zu­sam­men­ge­fasst haben:

Port-Scanning-Methode Nmap-Befehl Be­schrei­bung
TCP-Connect-Scan nmap -sT Host klas­si­scher Check für Nicht-Ad­mi­nis­tra­to­ren
TCP-Syn-Scan nmap -sS Host schnelle, un­be­merk­te Über­prü­fungs­me­tho­de für Ad­mi­nis­tra­to­ren
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 klas­si­scher Port-Scan; hilft, die Er­reich­bar­keit eines Hosts zu über­prü­fen
TCP-ACK-Scan nmap -sA Host stellt ge­fil­ter­te Ports fest, bietet aber keine Un­ter­schei­dung zwischen offenen und ge­schlos­se­nen Ports
TCP-Window-Scan nmap -sW Host ver­gleich­bar mit dem ACK-Scan; kann einige offene und ge­schlos­se­ne Ports ve­ri­fi­zie­ren
TCP-Maimon-Scan nmap -sM Host Kom­bi­na­ti­on aus FIN- und ACK-Scan
TCP-Idle-Scan nmap -sI Zombie-Host Host un­auf­fäl­ligs­te, kom­ple­xes­te und dadurch auch lang­sams­te Scan-Methode; läuft über einen dritten Rechner, der von Nmap als „Zombie“ be­zeich­net wird
UDP-Scan nmap -sU Host Portscan-Methode für die ver­bin­dungs­lo­sen UDP-Ports
SCTP-Init-Scan nmap -sY Host Portscan mit SCTP, einer Al­ter­na­ti­ve zu TCP und UDP
IP-Protokoll-Scan nmap -sO Host kein Port-Scan; prüft, welche IP-ba­sie­ren­den Pro­to­kol­le auf dem Ziel­sys­tem un­ter­stützt werden

Sie können sowohl Nmap und das Interface Zenmap auf der of­fi­zi­el­len Homepage für das ge­wünsch­te Be­triebs­sys­tem her­un­ter­la­den. Dazu stehen die aktuelle Version (stable) sowie eine Beta-Version zur Verfügung.

Eine Port-Über­prü­fung ist nicht immer legal; spä­tes­tens mit einem an­schlie­ßen­den Exploit-Versuch, wie das Ausnutzen einer Si­cher­heits­lü­cke in der Fach­spra­che heißt, macht man sich in jedem Fall strafbar.

Weniger eindeutig sieht die Rechts­la­ge aus, wenn Sie ein Com­pu­ter­sys­tem aufgrund in­ten­si­ver Port-Scans lahmlegen. Da die Über­prü­fungs­me­tho­de aufgrund der hohen Frequenz an Ver­bin­dungs­an­fra­gen eine mitunter starke Belastung für das Ziel­sys­tem darstellt, kann es nämlich u. U. passieren, dass dieses abstürzt. Außerdem könnten Ver­ant­wort­li­che des Ziel­sys­tems Ihre Un­ter­neh­mun­gen bereits vor einem Absturz entdecken und als erste Schritte eines Angriffs werten. Recht­li­che Kon­se­quen­zen sind in einem solchen Fall nicht aus­zu­schlie­ßen. Wird eine Über­las­tung des fremden Systems bewusst her­bei­ge­führt, handelt es sich um so­ge­nann­te DoS- bzw. DDoS-Angriffe, die mit hoher Wahr­schein­lich­keit eine Straf­ver­fol­gung nach sich ziehen.

Gehen Sie daher immer sicher, dass Sie dazu be­rech­tigt sind, einen Port-Scan auf dem je­wei­li­gen System durch­zu­füh­ren, und verwenden Sie die Technik aus­schließ­lich zu Si­cher­heits­zwe­cken und nicht etwa aus reiner Neugierde. Die auf­ge­zeig­ten Wege, das Port-Scanning ein­zu­set­zen, ver­deut­li­chen, wie wichtig es ist, die Ports des eigenen Systems bzw. der Netz­werk­com­pu­ter sowie die darauf zu­grei­fen­den Dienste im Auge zu behalten.

Zum Hauptmenü