Video-Tipp #53: Mit der PowerShell die Windows-Sicherheit erhöhen Mit der PowerShell nach offenen Ports suchen
Anbieter zum Thema
Wenn es darum geht nach offenen Ports in Windows zu suchen, sind nicht immer komplexe oder teure Zusatztools notwendig. Mit der PowerShell und auch mit der Eingabeaufforderung lassen sich mit wenigen, kurzen Befehlen die notwendigen Informationen auslesen. In diesem Video-Tipp zeigen wir, wie das geht.

Mit der PowerShell ist es möglich geöffnete Ports und Verbindungen zu testen, genauso wie mit der Befehlszeile. Die PowerShell bietet dazu natürlich noch mehr Möglichkeiten. Das hilft dabei zu analysieren, wo Ports geöffnet sind und von welchen Programmen oder Diensten. Für diese Abfragen sind keine zusätzlichen Module oder Anwendungen notwendig. Das wichtigste, interne Modul für die Abfrage und das Setzen von IP-Informationen ist das Modul NetTCPIP. Die Cmdlets aus diesem Modul zeigt die PowerShell mit dem folgenden Befehl an:
Get-Command -modul NetTCPIP
Wie man mit der PowerShell offene Ports in Windows findet, zeigen wir hier im Video-Tipp und in der Bildergalerie.
Offene Ports lassen sich in sekundenschnelle identifizieren
Ein Beispiel dafür ist das Testen von Endpunkten, die auf einem Rechner im Netzwerk offen sind. Kommt zum Beispiel ein Client für Multicast DNS (mDNS) zum Einsatz, ist auf dem Rechner der UDP-Port 5353 offen. Dieser Port kann speziell getestet werden, genauso wie andere Ports. Das CMDlet dazu ist:
Get-NetUDPEndpoint -LocalPort 5353
Mit diesem Cmdlet ist sofort klar, auf welchen IP-Adressen eines Computers der Port 5353 offen ist. Sollen auch noch verifiziert werden, welche Anwendungen diesen Port nutzen, kann der Befehl mit typischen PowerShell-Parametern auch erweitert werden:
Get-NetUDPEndpoint -LocalPort 5353 | Select-Object LocalAddress,LocalPort,OwningProcess,@{ Name="ProcessName"; Expression={((Get-Process -Id $_.OwningProcess).Name )} }
Mit PowerShell-Cmdlets und Skripts können Netzwerkprobleme eingegrenzt und behoben werden. Es lohnt sich die Möglichkeiten der verschiedenen Netzwerk-Cmdlets zu kennen, um Fehlerquellen zu erkennen und Probleme zu lösen. Mit dem gleichen Cmdlet ist es auch möglich alle offenen UDP-Ports auf allen IP-Adressen eines Rechners anzuzeigen:
Get-NetUDPEndpoint
Auch das Abfragen der einzelnen IP-Adressen ist möglich, zum Beispiel mit:
Get-NetUDPEndpoint -LocalAddress 127.0.0.1
Informationen zu Netzwerkadaptern anzeigen
Für das Abfragen von Ports sollten natürlich zunächst die lokalen IP-Adressen und die Netzwerkadapter bekannt sein. Dazu stehen in der PowerShell die beiden Cmdlets Get-NetIPAddress und Get-NetIPConfiguration zur Verfügung, um Informationen zur Netzwerkkonfiguration eines Computers anzuzeigen. Mit dem Parameter „-Verbose“ zeigt die PowerShell noch mehr Informationen an.
Mit den beiden Cmdlets sind alle Informationen, die über die lokale Netzwerkkonfiguration eines Rechners zur Verfügung stehen abrufbar. Um noch mehr Daten zu den verbauten Netzwerkadaptern anzuzeigen, wird noch das Cmdlet Get-NetAdapter verwendet. Alle diese Cmdlets ermöglichen auch das Weiterleiten der Informationen zu Format-List oder Format-Table, zum Beispiel:
Get-NetIPAddress | Format-Table
Verbindungen zu IP-Adressen und Ports testen
Mit dem Cmdlet Test-NetConnection lassen sich Verbindungen zwischen IP-Adressen und auch zwischen den verwendeten Ports testen. Das Tool kommt vor allem dann zum Einsatz, wenn eine Netzwerkverbindung zwischen zwei IP-Adressen getestet werden soll. Das funktioniert mit IP-Adressen und auch mit Namen, wenn die Namensauflösung im Netzwerk richtig konfiguriert ist:
Test-NetConnection 192.168.1.1
Mit diesem Cmdlet ist es auch möglich eine Verbindung zu einem bestimmten Port auf dem entfernen Computer zu öffnen, um zu testen, ob dieser geöffnet ist. Dazu kommt der Parameter „-Port“ zum Einsatz, zum Beispiel:
Test-NetConnection 192.168.1.1 -Port 443
Ausführlichere Informationen zeigt der folgende Befehl an:
Test-NetConnection -InformationLevel "Detailed"
Soll die Route zu einem Computer diagnostiziert werden, ist folgender Befehl nützlich:
Test-NetConnection -ComputerName www.contoso.com -DiagnoseRouting -InformationLevel Detailed
Wie man mit der PowerShell offene Ports in Windows findet, zeigen wir hier im Video-Tipp und in der Bildergalerie.
Interessant ist an dieser Stelle aber nicht nur die Verknüpfung mit einem einzelnen Computer per Netzwerkverbindung, sondern das Anzeigen aller Verbindungen, inklusive der geöffneten Ports. Dazu dient wiederum das Cmdlet:
Get-NetTCPCOnnection
Sollen wiederum aktive Verbindungen in der PowerShell angezeigt werden, kann der folgende Befehl zum Einsatz kommen:
Get-NetTCPConnection -State Established
Um Verbindungen und Ports zum Internet zu testen, sind wiederum folgende Parameter mit dem Cmdlet geeignet:
Get-NetTCPConnection -AppliedSetting Internet
Es ist auch möglich in der PowerShell alle Ports anzeigen zu lassen, die ein bestimmter Prozess nutzt. Dazu ist die PID des Prozesses notwendig. Diese zeigt die PowerShell mit dem Cmdlet Get-Process an. Am Beispiel des Prozesses 3868 auf einem Rechner sieht der Befehl folgendermaßen aus:
Get-NetTcpConnection -OwningProcess 3868
Wie man mit der PowerShell offene Ports in Windows findet, zeigen wir hier im Video-Tipp und in der Bildergalerie.
IP-Adresse des Gateways in der PowerShell anzeigen
Für das Nachverfolgen von Routen und dem Testen von Ports kann es sinnvoll sein die externe IP-Adresse des Gateways zu kennen. Das kann in der PowerShell mit dem folgenden Befehl erfolgen:
Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
Um alle Infos des Anschlusses einzuholen kann der folgende Befehl zum Einsatz kommen:
In der PowerShell mit Befehlen aus der Eingabeaufforderung arbeiten
In der PowerShell ist es auch möglich offene Ports mit Befehlen aus der PowerShell anzuzeigen. Dazu kommt der folgende Befehl zum Einsatz:
netstat -an
Der Befehl zeigt alle geöffneten Ports auf einem Rechner an. Um mehr Informationen anzuzeigen, kann noch der folgende Befehl genutzt werden:
netstat -banvo
Einfacher lassen sich die Daten auch in der grafischen Oberfläche anzeigen. Mit dem Tool TCPView von Microsoft ist die Anzeige der geöffneten Ports parallel durchaus sinnvoll, vor allem da das Tool nicht installiert werden muss. Damit lassen sich geöffnete Ports ohne Installation auslesen, und zwar in Echtzeit.
Wie man mit der PowerShell offene Ports in Windows findet, zeigen wir hier im Video-Tipp und in der Bildergalerie.
(ID:48502867)