Was sind in der Netzwerktechnik Ports
Möchte man mehrere Ports prüfen, so muss man nicht unbedingt verschiedene Drittanbieter Tools installieren. Mit der Windows PowerShell ist das sehr einfach möglich.
Hinter dem Begriff Ports verbergen sich im Prinzip nur verschiedene Dienste, die damit angesprochen werden. Da die IP-Adresse eines Servers oder Computers gleich ist, wird ein Unterscheidungsmerkmal benötigt, damit man weiß, welcher Dienst vom Server oder Computer angesprochen werden soll.
So verbirgt sich z. B. hinter dem http Protokoll (Aufruf von Webseiten) der Port 80. Hinter dem https Protokoll der Port 443. Das sind nur zwei kleine Beispiele. Mehr Informationen zu der Thematik Ports findest du im Artikel: Wie du in 3 Minuten verstanden hast, was man im Bereich Netzwerktechnik unter Ports versteht.
Im Folgenden geht es um das Auffinden geöffneter Ports mithilfe der Windows PowerShell. Dafür wird in dieser Anleitung ein kleines PowerShell Skript erstellt. Hierfür werden mehrere Elemente der Windows PowerShell benötigt, welche einzeln im Laufe des Artikels erläutert werden, sodass am Ende das fertige PowerShell Skript als Ergebnis erstellt werden kann.
Die Elemente, welche hier benötigt werden, sind dabei folgende:
- Eine foreach Schleife
- Die Prüfung einer Netzwerkverbindung (Test-NetConnection)
- Ein Vergleichsoperator
Die PowerShell Foreach Schleife
Eine Foreach Schleife ist im Prinzip eine spezielle Schleife, mit welches es möglich ist, die Elemente eines Arrays abzufragen, auszugeben und auch weiterzuverarbeiten.
Das kleine Beispiel zeigt die allgemeine Funktionsweise der foreach-schleife. Zunächst wird allen lokalen Benutzer die Variablen $user zugewiesen. Das heißt, die kompletten Parameter der lokalen Benutzer liegen im Array $user.
Über die foreach Schleife wird nun von jedem Element der Name ausgelesen. Es wird dabei jeweils auf die Eigenschaft name zugegriffen. Der Zugriff auf das Objekt (Hier $u) erfolgt mit der Punkt Referenzierung.
$user = Get-LocalUser -Name *
foreach($u in $user)
{
$u.name
}
Powershell Cmdlet Test-Netconnection
Wenn man mit der PowerShell prüfen möchten, ob ein bestimmter Computer oder Server erreichbar ist, so gibt es dafür ein eigenes Cmdlet mit dem Namen Test-Netconnection. Aus der Eingabeaufforderung cmd ist bestimmt noch das ähnliche Tool mit dem Namen ping bekannt.
Allerdings bietet die PowerShell wesentlich mehr Optionen. Das folgende Beispiel zeigt eine kleine Anwendung des Cmdlet. Es wird geprüft, ob der Port des Servers mit dem Name sv1 erreichbar ist. Anstatt des Namens kann hier auch die IP-Adresse verwendet werden.
Test-NetConnection -ComputerName sv1 -Port 80 -InformationLevel Detailed

Sehr aufschlussreich ist noch die Verwendung der Option „InformationLevel“. Dadurch erhält man noch eine ausführliche Information bzgl. der Erreichbarkeit des Rechners. Bei der Ausgabe gibt es jetzt verschiedene Attribute.
Im Falle der Erreichbarkeit ist die Eigenschaft tcpTestsucceeded von Interesse. Hier steht über True oder False, ob der Computer erreichbar ist oder nicht. Falls man sich mit dem Cmdlet Test-NetConnection noch nie beschäftigt hat, sollte man das auf jeden Fall tun. Vor allem für die Netzwerkanalyse liefert dieser Befehl viel mehr aufschlussreiche Informationen.
PowerShell Vergleichsoperatoren
Zu guter Letzt wird auch noch ein Vergleichsoperator benötigt. Es geht letztlich darum zu prüfen, ob ein Port offen ist oder nicht. Das heißt, wenn die Ergebnisse $true sind soll eine Meldung ausgegeben werden, aber auch genauso, wenn die Ergebnisse $false sind.
Diese Prüfung kann dabei mit dem Vergleichsoperator (equal) geprüft werden. Die Windows PowerShell bietet auch noch viele weitere Vergleichsoperatoren an. Die kleine Tabelle liefert einen Überblick.
-eq | Gleich |
-ne | Ungleich |
-gt, -ge | Größer als / Größer oder gleich |
-lt , -le | Kleiner als / Kleiner oder gleich |
-match | Entspricht |
-nomatch | Entspricht nicht |
Arten von verschiedenen Ports
Wie Eingangs bereits erwähnt, steckt hinter einem Port ein spezieller Dienst. Um die Ports zu strukturieren, gibt es dafür eine klare Unterscheidung. Sie werden dabei in drei verschiedene Klassen eingeteilt.
Well Known Ports
Der wichtigste Bereich sind die Well Know Ports. Dabei sind der Portbereich 0 bis 1023 gemeint. Diese sind nämlich für systemnahe Dienste reserviert. Das bedeutet dahinterstecken Dienste wie https, https, DNS, SMB, CIFS, SSH, SFTP etc.
Registered Ports
Dieser Bereich erstreckt sich vom Portbereich 1024 – 49141. Damit werden Dienste gekennzeichnet, welche offiziell bei der IANA angemeldet werden können. Vom Prinzip läuft die Anwendung wie bei der Domänenregistrierung.
Private Ports
Dieser restliche Bereich 49152 – 65535 ist frei. Was bedeutet, die Ports können für beliebige Anwendungen, und selbst entwickelte Applikationen verwendet werden.
Am meisten von Interesse sind in erster Linie die Well-Knows Ports. Nachdem alle einzelnen Element für das Skript erläutert wurden, können diese nun in Einklang gebracht werden.
Im Beispiel Skript sollen jetzt vom Computer (Hier handelt es sich um eine Fritzbox) mit der IP-Adresse 192.168.178.1 die Ports zwischen 442 und 445 abgefragt werden. Im Falle einer Erfolgsmeldung wird dann anschließend die Meldung ausgegeben, dass der Port offen ist.
Sollte der Port jedoch geschlossen sein, so wird keine Meldung ausgegeben. Je nach Anzahl der zu scannenden Ports kann der Vorgang auch länger dauern.
foreach ($port in 442..445) {
If (($a=Test-NetConnection 192.168.178.1 -Port $port -WarningAction SilentlyContinue).tcpTestSucceeded -eq $true)
{ "TCP port $port ist offen!"}
}


Das komplette Skript kann auch direkt über Github heruntergeladen werden.
Ports Scannen und Hacking
Ports sind im übrigen immer ein Einfallstor in ein System. Man sollte daher sehr sorgfältig prüfen, welche Port offen sein müssen und welche man nicht benötigt und daher geschlossen bleiben können. Erste Hackerangriffe auf Systeme laufen in der Regel so ab, dass zunächst ein Port-Scann durchgeführt wird, um zu prüfen, welche Dienste der Server oder Computer anbietet.
Im Übrigens ist das obige Skript im Prinzip genau das. Nämlich ein Port-Scan. Weit verbreitete Programm für Port-Scans sind z. B. nmap. Bzgl. der Durchführung sollte man dies nicht auf öffentlichen Systemen tun. Schnell gerät man dadurch mit dem Hackerparagraphen in Konflikt. Aber auf dem eigenen System kann mal geprüft werden, ob alles korrekt eingerichtet wurde.
Das könnte dich auch interessieren
- Mit der Windows PowerShell prüfen ob bestimmte Ports geöffnet sind – Einen Portscan durchführen
- Mit der Windows PowerShell eine Remoteverbindung erstellen – entfernte Rechner per PowerShell administrieren
- Wie kann man ausgehend von Windows eine SSH Verbindung erstellen, ohne ständig nach dem Passwort gefragt zu werden?
- Wie kann man über einen SSH-Zugriff von Windows 10 aus Dateien übertragen bzw. kopieren
- Neue Methode um mit Windows 10 1803 eine SSH Verbindung herstellen zu können
- Eine SMB Dateifreigabe für das Netzwerk mit der Windows PowerShell erstellen
- Die 10 wichtigsten PowerShell Cmdlets für einen schnellen Einstieg in die Netzwerkkonfiguration und Windows
Hinterlasse jetzt einen Kommentar