Wichtige Punkte
- Port-Audits mit PowerShell automatisieren, Nutzen Sie Get-NetTCPConnection, Get-NetUDPEndpoint und Invoke-Command, um offene Ports lokal oder aus der Ferne zu scannen und Logs als CSV zu exportieren.
- Ergebnisse über die Registry zentralisieren, Speichern Sie Audit-Daten und Zeitstempel in HKLM:\SOFTWARE\<CompanyName>\PortAudit, um dauerhaft zu überwachen und zu alarmieren.
- Sicherheit per GPO durchsetzen, Standardisieren Sie Firewall-Regeln mit Gruppenrichtlinien und beziehen Sie UDP-Scans für vollständige Netzwerktransparenz ein.
- Risiken und False Positives verringern, Führen Sie Skripte mit Administratorrechten aus, filtern Sie Loopback-Adressen heraus und gleichen Sie Ergebnisse mit den Firewall-Regeln ab.
Ein nicht überwachter offener Netzwerkport zum Internet ist eine Schwachstelle, die nur darauf wartet, ausgenutzt zu werden, und setzt Remote-Clients unnötigen Risiken aus. Diese Port-Exposition regelmäßig zu prüfen, ist entscheidend, um Sicherheitsrichtlinien durchzusetzen und sicherzustellen, dass nur autorisierte Dienste erreichbar sind.
In diesem Leitfaden erfahren Sie, wie Sie solche Audits mit PowerShell skalierbar automatisieren und tiefe Einblicke ohne teure Tools gewinnen.
Riskante offene Netzwerkports erkennen und Remote-Endpunkte absichern.
Erfahren Sie mehr über die Netzwerküberwachung von NinjaOne.
📌Empfohlene Vorgehensweisen:
|
Klicken Sie, um eine Methode zu wählen |
💻 Am besten für Einzelanwender:innen |
💻💻💻 Am besten für Unternehmen |
| Methode 1: PowerShell | ✓ | ✓ |
| Methode 2: Registry | ✓ | ✓ |
| Ergänzende Methode, Option 1: per GPO | ✓ | |
| Ergänzende Methode, Option 2: per Get-NetUDPEndpoint | ✓ | ✓ |
Wir empfehlen, vorab den Abschnitt ⚠️ Darauf sollten Sie achten zu lesen.
Methode: Offene Netzwerkports mit einem PowerShell-Audit prüfen
Ein regelmäßiges Audit offener Ports gehört zu den Grundlagen eines sicheren Netzwerks. Es hilft Ihnen, mögliche Schwachstellen zu erkennen und zu schließen, bevor Angreifer sie gegen Sie verwenden können.
📌 Anwendungsfall: Führen Sie diese Prüfung in einigen zentralen Situationen durch: bei der Einrichtung eines neuen Computers, um dessen Sicherheit zu gewährleisten, nach einem festen Zeitplan (etwa monatlich), nach der Installation neuer Software und bei Verdacht auf ein Sicherheitsproblem, um nach Spuren eines Eindringlings zu suchen.
📌 Voraussetzungen: Um zu prüfen, ob TCP- und UDP-Ports in Ihrem Netzwerk offen sind, brauchen Sie nur wenige Dinge:
- Aktuelle Windows-Geräte (Windows 10/11 oder Windows Server).
- Administratorzugriff auf diesen Rechnern.
- Aktiviertes PowerShell Remoting (WinRM) oder ein RMM-Tool wie NinjaOne, um Befehle auszuführen.
Methode 1: Offene Netzwerkports per PowerShell prüfen
Am einfachsten prüfen Sie offene Ports auf einem Windows-11-Rechner mit den nativen PowerShell-Befehlen, die klare und direkt verwertbare Daten liefern.
Schritt-für-Schritt-Anleitung:
- Öffnen Sie PowerShell (Administrator) oder Windows Terminal (Administrator).
- Führen Sie diesen Befehl aus, um alle lauschenden TCP-Verbindungen abzurufen und die Ausgabe übersichtlich zu formatieren:
| Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess, @{Name=“ProcessName“; Expression={(Get-Process -Id $_.OwningProcess).Name}} |
Dieser Befehl filtert nur Ports im Zustand Listen und zeigt die lokale IP-Adresse, die Portnummer, die Prozess-ID (PID) sowie den Namen der ausführbaren Datei an.
- Für dieselben Informationen zu UDP-Ports (die verbindungslos arbeiten) verwenden Sie das Cmdlet Get-NetUDPEndpoint:
| Get-NetUDPEndpoint | Select-Object LocalAddress, LocalPort, OwningProcess, @{Name=“ProcessName“; Expression={(Get-Process -Id $_.OwningProcess).Name}} |
- Um Ihre Audit-Ergebnisse für die Berichterstattung zu sichern, exportieren Sie die Daten in eine CSV-Datei. Dieser Befehl fasst TCP- und UDP-Ergebnisse in einem einzigen Log zusammen:
$Output = @()$Output += Get-NetTCPConnection -State Listen | Select-Object @{Name="Protocol"; Expression={"TCP"}}, LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}}$Output += Get-NetUDPEndpoint | Select-Object @{Name="Protocol"; Expression={"UDP"}}, LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}}$Output | Export-Csv -Path "C:\Audit\LocalPortAudit.csv" -NoTypeInformation |
💡Hinweis: Dieser Befehl erzeugt im Ordner C:\Audit eine Datei mit dem Namen LocalPortAudit.csv. In der Konsole erscheint keine Ausgabe, da alle Ergebnisse direkt in die CSV-Datei geschrieben werden.
- Prüfen Sie mit PowerShell Remoting (WinRM), ob auf einem Remote-Client ein Netzwerkport offen ist.
Verwenden Sie das Cmdlet Invoke-Command, um das Audit auf einem oder mehreren Remote-PCs auszuführen. In diesem Beispiel wird ein Computer namens CLIENT-PC-01 geprüft.
| Invoke-Command -ComputerName CLIENT-PC-01 -ScriptBlock { Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess, @{Name=“ProcessName“; Expression={(Get-Process -Id $_.OwningProcess).Name}} } | Export-Csv "\\YourServer\AuditLogs\CLIENT-PC-01-Ports.csv" -NoTypeInformation |
Nach diesem Vorgehen verfügen Sie über eine detaillierte Protokolldatei (CSV), die jeden offenen TCP- und UDP-Port auf dem Zielrechner samt zugehöriger Anwendung und deren Prozess-ID auflistet. Dieses Log ist Ihre zentrale Liste für die Analyse.
💡Hinweis: Ersetzen Sie CLIENT-PC-01 durch den tatsächlichen Namen des Computers, den Sie prüfen möchten, und passen Sie den Exportpfad (z. B. \\YourServer\AuditLogs\...) an einen Ordner an, der in Ihrer Umgebung existiert und zugänglich ist.
Methode 2: Registry für Protokollierung und Statusverfolgung nutzen
Speichern Sie Audit-Ergebnisse in der Windows-Registry, entsteht ein dauerhafter, leicht abrufbarer Datensatz für zentrale Überwachungstools.
Bei dieser Methode werden zentrale Ergebnisse Ihres PowerShell-Audits, etwa Zeitstempel und Anzahl offener Ports, an einen dafür vorgesehenen Ort in der Registry (HKLM) geschrieben. Es werden keine Systemfunktionen konfiguriert, stattdessen dient die Registry als einfache Datenbank für Statusinformationen.
Schritt-für-Schritt-Anleitung:
- Erstellen Sie einen eigenen Registrierungsschlüssel. Führen Sie die folgenden PowerShell-Skripte auf dem Windows-11-Zielrechner aus. Sie führen das Audit durch und speichern anschließend eine Zusammenfassung in der Registry.
Port-Audit durchführen:
$OpenTCPPorts = Get-NetTCPConnection -State Listen | Where-Object { $_.LocalAddress -notin @('127.0.0.1', '::1') }$OpenUDPPorts = Get-NetUDPEndpoint | Where-Object { $_.LocalAddress -notin @('127.0.0.1', '::1') }$TotalOpenPorts = $OpenTCPPorts.Count + $OpenUDPPorts.Count |
- Erstellen Sie einen Registrierungsschlüssel zum Speichern der Ergebnisse (der Parameter -Force legt fehlende übergeordnete Ordner an):
New-Item -Path "HKLM:\SOFTWARE\YourCompanyName\PortAudit" -Force
💡Hinweis: Ersetzen Sie YourCompanyName vor dem Ausführen des Befehls durch einen aussagekräftigen Namen für Ihr Unternehmen.
- Daten speichern:
Set-ItemProperty -Path "HKLM:\SOFTWARE\YourCompanyName\PortAudit" -Name "LastAuditTime" -Value (Get-Date -Format "yyyy-MM-dd HH:mm:ss")Set-ItemProperty -Path "HKLM:\SOFTWARE\YourCompanyName\PortAudit" -Name "OpenPortsCount" -Value $TotalOpenPorts |
- Validieren Sie die Daten. Über die Eingabeaufforderung prüfen Sie schnell, ob die Daten korrekt geschrieben wurden:
reg query "HKLM\SOFTWARE\YourCompanyName\PortAudit"
- Binden Sie Überwachungstools wie NinjaOne oder eine geplante Aufgabe ein. So lässt sich über den Wert OpenPortsCount prüfen, ob ein Netzwerkport offen ist.
- Ein Wert oberhalb eines festgelegten Basiswerts kann automatisiert eine Alarmierung auslösen, damit ein:e Techniker:in der Sache nachgeht.
Nach diesem Vorgehen verfügen Ihre Remote-Clients über einen standardisierten Registry-Pfad mit den Ergebnissen des letzten Audits. So kann Ihr zentrales Überwachungssystem diese Statusinformationen von Tausenden Rechnern sofort und effizient einsammeln.
Ergänzende Methoden zur Standardisierung von Richtlinien für offene Ports
Mit Gruppenrichtlinien steuern Sie vorausschauend, welche Ports offen sein dürfen, und sorgen so für einheitliche Sicherheit auf allen Windows-11-Geräten.
📌 Anwendungsfall: Stellen Sie diese Einstellungen bereit, wenn Sie eine neue Sicherheits-Baseline einrichten oder Compliance-Standards im gesamten Netzwerk durchsetzen möchten. Das ist eine vorbeugende Maßnahme, nicht nur eine Erkennung.
📌 Voraussetzungen: Stellen Sie vorab sicher, dass Sie über eine Windows-Active-Directory-Domäne, Windows 10/11 Pro, Enterprise oder Education auf allen Clients sowie die Berechtigung zum Erstellen und Verwalten von Gruppenrichtlinien verfügen.
Option 1: Regeln für offene Ports per GPO härten und standardisieren
Definieren und erzwingen Sie mit Gruppenrichtlinien vorausschauend, welche Ports offen sein dürfen. So entsteht eine einheitliche, sichere Konfiguration im gesamten Netzwerk.
📌 Anwendungsfall: Bei dieser Methode werden Firewall-Regeln zentral von einem Domain-Controller an alle Windows-11-Clients verteilt und überschreiben dort alle lokalen Einstellungen. Sie ist wirksam, weil sie das Prinzip der Minimalprivilegien anwendet und damit sicherstellt, dass nur freigegebene Dienste kommunizieren können.
Schritt-für-Schritt-Anleitung:
- Navigieren Sie in der GPO zu den Firewall-Einstellungen.
- Öffnen Sie auf Ihrem Domain-Controller die Gruppenrichtlinien-Verwaltungskonsole (gpmc.msc).
- Erstellen Sie eine neue GPO oder bearbeiten Sie eine vorhandene.
- Navigieren Sie zu Computerkonfiguration > Richtlinien > Windows-Einstellungen > Sicherheitseinstellungen > Windows-Firewall mit erweiterter Sicherheit > Eingehende Regeln.
- Erstellen und konfigurieren Sie Regeln.
- Klicken Sie im Bereich Eingehende Regeln mit der rechten Maustaste und wählen Sie Neue Regel….
- Erstellen Sie mit dem Assistenten Regeln, die:
- eingehendes RDP (Port 3389) blockieren, sofern keine gezielte Regel den Zugriff aus einem sicheren Management-VLAN oder über ein VPN erlaubt.
- den Zugriff für Gastdienste und veraltete, unsichere Protokolle wie SMBv1 verweigern.
- anwendungsbasierte Ausnahmen durchsetzen (z. B. %ProgramFiles%\YourApp\yourapp.exe) erlauben, statt breite Portbereiche zu öffnen).
- wenn möglich die Option „Nur sichere Verbindungen zulassen“ nutzen, um Verbindungen auf digital signierte Programme zu beschränken.
Sobald Sie diese GPO mit Ihrer Organisationseinheit (OU) verknüpfen, erhalten und übernehmen alle betroffenen Computer diese Firewall-Regeln automatisiert.
Damit werden unbefugte Zugriffsversuche auf die angegebenen Ports sofort blockiert und die Angriffsfläche deutlich verkleinert. Ihre Umgebung verfügt dann über eine gehärtete, einheitliche Konfiguration, die laterale Bewegungen und Exploits erheblich erschwert.
Option 2: Optionaler Einsatz von Get-NetUDPEndpoint für die Abdeckung von UDP-Ports
Ein vollständiges Port-Audit muss UDP-Endpunkte einschließen, da sie leicht übersehene Sicherheitsrisiken bergen. Bei dieser Methode kommt das Cmdlet Get-NetUDPEndpoint zum Einsatz, das den Windows-Netzwerkstack abfragt und alle aktiven UDP-Listener auflistet.
📌 Anwendungsfall: Nehmen Sie ein UDP-Audit immer in Ihre regelmäßigen Baseline-Prüfungen und in jedes umfassende Port-Audit auf, um ein vollständiges Bild aller netzseitig erreichbaren Dienste auf einem Windows-11-Gerät zu erhalten.
Schritt-für-Schritt-Anleitung:
- UDP-Listener prüfen.
Öffnen Sie ein PowerShell-Fenster mit erhöhten Rechten und führen Sie den folgenden Befehl aus, um alle offenen UDP-Ports und die zugehörigen Prozesse zu sehen:
| Get-NetUDPEndpoint | Select-Object LocalAddress, LocalPort, OwningProcess, @{Name=“ProcessName“; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} |
- TCP- und UDP-Ergebnisse in einem einzigen Bericht zusammenführen.
Für ein umfassendes Audit führen Sie die Ergebnisse Ihrer TCP- und UDP-Scans in einem Bericht zusammen. Das folgende Skript übernimmt diese Aufgabe und speichert alle Informationen in einer CSV-Datei.
- Alle lauschenden TCP-Ports abrufen:
$tcp = Get-NetTCPConnection -State Listen | Where-Object { $_.LocalAddress -notin @('127.0.0.1', '::1') } | Select-Object @{Name="Protocol"; Expression={"TCP"}}, LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} |
- Alle UDP-Endpunkte abrufen:
$udp = Get-NetUDPEndpoint | Where-Object { $_.LocalAddress -notin @('127.0.0.1', '::1') } | Select-Object @{Name="Protocol"; Expression={"UDP"}}, LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} |
- Ergebnisse zusammenführen und in eine CSV-Datei exportieren:
$tcp + $udp | Export-Csv -Path "C:\Audit\Full_Port_Audit_Report.csv" -NoTypeInformation |
Nach diesem Vorgehen erhalten Sie eine einzige konsolidierte Protokolldatei, die jeden offenen TCP- und UDP-Port des Systems detailliert aufführt.
Dieser Gesamtüberblick ist für ein wirksames Security-Hardening entscheidend: Sie können unautorisierte UDP-Listener genauso effizient erkennen und untersuchen wie TCP-Listener und stellen so sicher, dass Ihr Audit offener Ports wirklich vollständig ist.
⚠️ Darauf sollten Sie achten
Dieser Abschnitt zeigt mögliche Stolpersteine, die Sie bei der Umsetzung dieses Leitfadens berücksichtigen sollten.
| Risiken | Mögliche Folgen | Gegenmaßnahmen |
| 1. WinRM nicht aktiviert oder nicht erreichbar | Entfernte PowerShell-Befehle lassen sich nicht ausführen, wodurch automatisierte Audits im Netzwerk zum Erliegen kommen. | Aktivieren Sie PSRemoting per GPO oder führen Sie Enable-PSRemoting -Force auf dem Ziel-Client aus. Stellen Sie sicher, dass die Windows-Firewall Port 5985 (HTTP) oder 5986 (HTTPS) zulässt. |
| 2. Skripte ohne erhöhte Rechte ausführen | Unvollständige Audit-Daten; kritische Ports werden möglicherweise nicht erfasst und Prozesse lassen sich nicht auflösen, was zu trügerischer Sicherheit führt. | Führen Sie PowerShell immer als Administrator aus. Bei der Remote-Ausführung muss Ihr Kontext (z. B. der RMM-Agent) über SYSTEM- oder Administratorrechte verfügen. |
| 3. Zu restriktive GPO-Firewall-Regeln | Gruppenrichtlinien funktionieren nicht mehr, weil essenzielle Ports (RPC, SMB) blockiert werden; flächendeckender Verlust der Netzwerkverbindung und des administrativen Zugriffs |
|
| 4. Fehler „Zugriff auf Registry verweigert“ | Die Audit-Zusammenfassung kann nicht nach HKLM: geschrieben werden, was zentrale Überwachung und Berichterstattung verhindert | Stellen Sie sicher, dass das Skript in einem Kontext mit ausreichenden Rechten läuft (z. B. unter dem Konto LocalSystem über ein RMM-Tool). Prüfen Sie die Berechtigungen des Registrierungsschlüssels manuell. |
| 5. Einen Prozess allein aufgrund seines Ports beenden | Ausfall einer Anwendung oder eines kritischen Systemdienstes mit Ausfallzeit und möglichem Datenverlust | Starten Sie den beendeten Dienst oder den Rechner neu. Prüfen Sie Prozessnamen und Zweck immer, bevor Sie handeln. |
| 6. UDP-Ports im Audit ignorieren | Kritische Sicherheitsrisiken bleiben unentdeckt, da Malware und unautorisierte Dienste häufig UDP für Kommunikation und Datenabfluss nutzen | Führen Sie das Audit erneut mit dem Cmdlet Get-NetUDPEndpoint aus und nehmen Sie es in alle künftigen Baseline-Prüfungen auf. |
Wichtige Überlegungen zur Optimierung Ihrer Port-Audit-Strategie
Eine erfolgreiche Port-Audit-Strategie erfordert sorgfältige Planung, nicht nur das Ausführen der Befehle.
Remote-Audits skalieren
Um im gesamten Netzwerk zu prüfen, welche Ports offen sind, müssen Sie den Prozess automatisieren. Nutzen Sie Invoke-Command aus PowerShell für eine Liste von Computern oder ein RMM-Tool wie NinjaOne, um das Audit-Skript gleichzeitig auf alle Endpunkte auszurollen.
So erhalten Sie in wenigen Minuten einen zentralen Bericht über Hunderte Geräte, und regelmäßige Audits offener Ports werden praktikabel.
False Positives reduzieren
Nicht jeder offene Port ist eine Schwachstelle. Interne Loopback-Adressen (127.0.0.1, ::1) stehen für Dienste, die nur mit dem lokalen Rechner kommunizieren, und sind oft unbedenklich.
Filtern Sie diese in Ihren Skripten heraus, damit sich Ihr Bericht auf Ports konzentriert, die an die physischen IP-Adressen des Rechners gebunden und damit im Netzwerk erreichbar sind, also ein relevanteres Sicherheitsproblem darstellen.
Abweichungen zur Firewall berücksichtigen
Ein offener Port auf einem Gerät bedeutet nicht automatisch, dass er aus dem Internet erreichbar ist. Eine vorgelagerte Netzwerk-Firewall oder die Windows-Firewall des Geräts selbst kann den externen Zugriff blockieren.
Ihr Audit zeigt, was lauscht; welche Dienste tatsächlich exponiert sind, erkennen Sie erst im Abgleich mit den Firewall-Regeln. Überprüfen Sie kritische Ergebnisse immer.
Einen festen Rhythmus etablieren
Ein einzelnes Audit ist nur eine Momentaufnahme. Für dauerhafte Sicherheit führen Sie diese Audits nach einem festen Zeitplan durch, etwa monatlich oder passend zu Ihren monatlichen Patch-Zyklen. So erkennen Sie neue, unautorisierte Dienste schnell und können überprüfen, ob aktuelle Software-Rollouts keine unerwartete Netzwerkexposition mit sich gebracht haben.
Erkennen Sie offene Ports vor den Angreifern, mit der automatisierten Netzwerküberwachung von NinjaOne.
➤ Jetzt für eine 14-tägige kostenlose Testversion registrieren.
So vereinfacht NinjaOne das Port-Auditing
NinjaOne fügt sich direkt in Ihren Port-Audit-Workflow ein und automatisiert und vereinfacht den Prozess.
- Skripte einfach bereitstellen: Verteilen Sie eigene PowerShell-Skripte aus einem zentralen Dashboard an alle Endpunkte, um zu prüfen, welche Ports offen sind.
- Ergebnisse zentralisieren: Speichern Sie Audit-Ergebnisse wie Port-Zählwerte automatisiert in einer einheitlichen Registry, um sie leicht auswerten und prüfen zu können.
- Proaktive Alarmierungen erhalten: Lösen Sie sofortige Benachrichtigungen aus, wenn auf einem Gerät unautorisierte Ports (z. B. SMBv1, Telnet) entdeckt werden.
- Compliance-Berichte erzeugen: Erstellen Sie geplante Berichte zum Status offener Ports für Kundengespräche und Compliance-Audits.
- Behebung priorisieren: Markieren Sie Geräte mit hohem Risiko automatisiert, damit sich ein:e Techniker:in sofort darum kümmert.
Quick-Start-Guide
NinjaOne bietet mehrere Möglichkeiten, offene Netzwerkports auf Remote-Clients zu prüfen:
1. Integriertes Skript für die Port-Überwachung
Es gibt ein integriertes Skript namens „Search for Listening and Established Ports“, das:
- bei festgelegten Ports im Zustand „lauschend“ oder „hergestellt“ alarmiert
- die Ergebnisse optional in einem benutzerdefinierten Feld speichert
2. PowerShell-Funktionen
Sie können eigene PowerShell-Skripte erstellen, um:
- mit
netstatoffene Ports zu prüfen - Ergebnisse in Aktivitätsprotokollen oder benutzerdefinierten Feldern zu protokollieren
- Audits von Netzwerkports auf mehreren Remote-Clients durchzuführen
3. Funktionen des Netzwerkmanagementsystems (NMS)
Das Netzwerkmanagementsystem (NMS) von NinjaOne bietet:
- Prüfungen des Port-Status
- Überwachung bestimmter Ports
- die Möglichkeit, Bedingungen für den Port-Status in Richtlinien anzulegen
Netzwerk absichern durch die Verwaltung offener Ports
Offene Netzwerkports auf Ihren Clients regelmäßig zu prüfen, ist eine entscheidende Verteidigungslinie gegen unbefugten Zugriff und mögliche Sicherheitsvorfälle. Dieser Leitfaden liefert praxisnahe Methoden, um offene Ports zu prüfen und zu verwalten.
Mit diesen Schritten verwandeln Sie unbekannte Risiken in kontrollierte Werte, stärken Ihre Sicherheitslage deutlich und sorgen für Compliance in Ihrer gesamten Umgebung.
Verwandte Themen