aktive Netzwerkverbindungen und Prozesse anzeigen | Windows
Für einen schnellen Überblick, welche Programme oder Dienste eine aktive Netzwerkverbindung haben, können diese über einfache Befehle aufgelistet oder über bestimmte Tools überwacht und analysiert werden. Der Inhalt dieses Beitrages kann auch als YouTube-Video angesehen werden.
PowerShell: Get-NetTCPConnection
Als Alternative zum CMD-Befehl „netstat“, kann in PowerShell der Befehl „Get-NetTCPConnection“ für die Anzeige der Netzwerkverbindungen verwendet werden. Die folgende Befehlszeile kombiniert Get-NetTCPConnection mit Get-Process und Out-GridView. Das Ergebnis ist eine Liste aller eingehenden und ausgehenden Netzwerkverbindungen und deren Prozesse.
Die folgende Zeile kann einfach ĂĽber die Zwischenablage (Strg+C) in Windows PowerShell eingefĂĽgt werden (Strg+V):
Get-NetTCPConnection | Where-Object state -ne Bound | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess, @{n="ProzessName"; e={( Get-Process -Id $_.OwningProcess).ProcessName}} | Out-GridView
Dank Out-GridView können die angezeigten Netzwerkverbindungen einfach sortiert und gefiltert werden:
(Hier Verbindung von Microsoft Edge auf eine Webseite mit Port 443)
Legende:
LocalAddress | lokale Netzwerkadresse (eigene Adresse) eigene IP-Adresse oder 0.0.0.0 (::) für beliebige Adresse |
---|---|
LocalPort | lokaler Netzwerkport |
RemoteAddress | Netzwerkadresse des Remotegerätes |
RemotePort | Netzwerkport des Remotegerätes |
OwningProcess | Prozess-ID (PID) des Dienstes welcher die Verbindung aufbaut oder empfängt |
ProzessName | Prozess Name von „Get-Prozess“ |
State
Listen | warten auf Verbindung Meist auf einer beliebigen eigenen Adresse (0.0.0.0) und einem lokalen Port. Auf den hier angeführten lokalen Port kann von einem Remote-Geräte eine Verbindung aufgebaut werden. |
---|---|
Bound | Socket erstellt (bind), aber kein weiterer Aufruf (listen, accept, connect, close) |
Established |
Verbindung hergestellt
|
SynSent |
ausgehender Verbindungsversuch |
SynReceived |
eingehender Verbindungsversuch |
Closing | Beide Sockets beendet, aber noch nicht alle Daten gesendet |
CloseWait | Das Remote-Gerät hat die Verbindung abgebrochen |
Closed | Socket ist nicht verwendet |
TimeWait | Socket wartet nach dem SchlieĂźen, um Pakete im Netzwerk noch zu verarbeiten |
LastAck | Das Remotegeräte hat die Verbindung beendet, der Socket ist geschlossen, warte auf Bestätigung |
FinWait1 | Socket geschlossen und die Verbindung wird beendet |
FinWait2 | Verbindung beendet, der Socket wartet auf das Beenden des Remotegeräts |
Wie stellt sich die Befehlszeile zusammen, der Reihe nach
Get-NetTCPConnection zeigt alle aktiven Netzwerkverbindungen des PCs:
PS C:\Users\LiBe> Get-NetTCPConnection
LocalAddress LocalPort RemoteAddress RemotePort State AppliedSetting
------------ --------- ------------- ---------- ----- --------------
:: 445 :: 0 Listen
:: 135 :: 0 Listen
...
192.168.1.198 49808 116.203.238.206 443 Established Internet
....
Wie in PowerShell üblich, kann über ein Pipe und „where“ gezielt gefiltert werden:
PS C:\Users\LiBe> Get-NetTCPConnection | where RemoteAddress -Like "116*"
LocalAddress LocalPort RemoteAddress RemotePort State AppliedSetting
------------ --------- ------------- ---------- ----- --------------
192.168.1.198 49827 116.203.238.206 443 Established Internet
In der Standardausgabe fehlt die Prozess-ID, diese kann wie folgt angezeigt werden:
PS C:\Users\LiBe> Get-NetTCPConnection | where RemoteAddress -Like "116*" | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess | Format-Table
LocalAddress LocalPort RemoteAddress RemotePort State OwningProcess
------------ --------- ------------- ---------- ----- -------------
192.168.1.198 49843 116.203.238.206 443 Established 6224
Mit dem Befehl Get-Prozess kann der ProzessName fĂĽr die PID ausgelesen werden.
PS C:\Users\LiBe> Get-Process -Id 6224
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
288 19 10924 24952 1,89 6224 1 msedge
Kombiniert:
PS C:\Users\LiBe> Get-NetTCPConnection | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess, @{n="ProzessName"; e={( Get-Process -Id $_.OwningProcess).ProcessName}} | Format-Table
LocalAddress LocalPort RemoteAddress RemotePort State OwningProcess ProzessName
------------ --------- ------------- ---------- ----- ------------- -----------
:: 49670 :: 0 Listen 708 services
:: 49669 :: 0 Listen 2760 spoolsv
:: 49668 :: 0 Listen 2096 svchost
...
:: 49665 :: 0 Listen 600 wininit
:: 49664 :: 0 Listen 744 lsass
:: 445 :: 0 Listen 4 System
:: 135 :: 0 Listen 992 svchost
0.0.0.0 49849 0.0.0.0 0 Bound 6224 msedge
0.0.0.0 49848 0.0.0.0 0 Bound 7744 msedgewebview2
0.0.0.0 49847 0.0.0.0 0 Bound 7744 msedgewebview2
0.0.0.0 49846 0.0.0.0 0 Bound 7744 msedgewebview2
....
0.0.0.0 49713 0.0.0.0 0 Bound 8700 SystemSettings
0.0.0.0 49707 0.0.0.0 0 Bound 6224 msedge
0.0.0.0 49673 0.0.0.0 0 Bound 2716 svchost
192.168.1.198 49849 116.203.238.206 443 Established 6224 msedge
192.168.1.198 49820 40.97.120.130 443 Established 5252 SearchHost
192.168.1.198 49707 192.168.1.166 8009 Established 6224 msedge
192.168.1.198 49673 20.199.120.85 443 Established 2716 svchost
...
netstat: Windows / Linux
Der Befehl netstat ist sowohl in Linux als auch in Windows verfügbar und bietet die Möglichkeit, alle Netzwerkverbindungen und offene Ports anzuzeigen. Der Aufruf in Windows erfolgt über die Eingabeaufforderung, durch Eingabe des folgenden Befehls:
netstat -ano
Die Parameter -ano bedeuten:
- a bedeutet: alle Verbindungen
- n: Adressen und Portnummern numerisch
- o: zusätzlich die PID anzeigen (also welcher Prozess dahinter steckt)
der Status
ABHĂ–REN bedeutet: Der Client horcht auf diesen Port. Er wartet also, bis ein anderes Netzwerkgerät eine Verbindung zu ihm aufbaut.Â
SYN_GESENDET: Der Client baut gerade eine Verbindung auf und wartet auf die Antwort.
HERGESTELLT entsprechend: Verbindung hergestellt.
Filter
Solle die Ausgabe zu viele Einträge enthalten, kann die Ausgabe durch den Befehl "find"
gefiltert werden, alsoÂ
Prozesse
Mit dem Parameter /b versucht netstat anhand der PID den dahinterliegenden Prozess anzuzeigen, hierfĂĽr sind Administratorrechte erforderlich:
TCPView
Mit dem kostenlosen Tool TCPView können, ähnlich Get-NetTCPConnection, alle Verbindungen angezeigt werden. Das Tool besteht aus einer simplen .exe Datei und muss nicht installiert werden.
technet.microsoft.com/de-at/sysinternals/bb897437.aspx
CurrPorts
Einen erweiterten Funktionsumfang bietet das ebenfalls kostenlose Tool, CurrPorts, von nirsoft. Zu den zusätzlichen Funktionen zählen eine Benachrichtigung bei neuen Verbindungen, Filter und die Möglichkeit ein Logfile aufzuzeichnen. Auch CurrPorts besteht aus einer simplen exe-Datei und muss, wie auch TCPView, nicht installiert werden.
Bestimmte Dienste können durch Rechtsklick und „Exclude in Filter“ ausgenommen werden, oder nur bestimmte Dienste mit „Include in Filter“ beobachtet werden.
 Damit die Ansicht automatisch aktualisiert wird, kann ein Autorefresh Intervall gesetzt werden:
Tooltip-Benachrichtigung mittels „Tray Ballon On New Ports“
Â
Browser – Element untersuchen
Um die Kommunikation des Browsers beim Aufruf einer Webseite anzuzeigen, beinhalten alle modernen Browser die Möglichkeit, Netzwerkaufrufe sichtbar zu machen. In Google Chrome, Internet Explorer, Firefox und Microsoft Edge mit einem „Rechtsklick“ auf die Webseite und: „Element untersuchen“
im Reiter Netzwerk werden die geladenen Elemente angezeigt:
Â
Wireshark
Wireshark ist ein extrem mächtiges Werkzeug. Das Open-Source-Programm bietet erfahrenen Benutzern die Möglichkeit, den Netzwerkverkehr genau zu analysieren. Wireshark ist aber nicht nur für Spezialisten geeignet. Dank der zahlreichen Filter und Funktionen, sollte es jedermann sehr schnell möglich sein, einen Überblick über den Netzwerkverkehr zu bekommen:
Zum Beispiel können unter Statistics / Endpoints alle Geräte, zu und von denen eine Netzwerkverbindung initiiert wurde, angezeigt werden:
Windows Performance Toolkit
Ein Trace aus Sicht des Betriebssystems kann ĂĽber das Windows Performance Toolkit erstellt werden. Dabei wird zu den Prozessen und Events auch deren Netzwerkkommunikation protokolliert, als Beispiel bei einem Logon-Trace, siehe:Â Xperf - Boot und Shutdown Analyse
Verbindung verbieten
siehe: Windows Firewall - ausgehende Regeln konfigurieren
YouTube-Video
YouTube-Video zu diesem Beitrag:
Fazit
Für einen schnellen Überblick über aktive Netzwerkverbindungen reicht ein einfacher Befehl in PowerShell: Get-NetTCPConnection oder der Eingabeaufforderung netstat. Für einen besseren Überblick oder mehr Details können spezielle Programme verwendet werden, bis hin zum Netzwerksniffer: Wireshark, welcher den kompletten Netzwerktraffic aufzeichnen kann.
Â
{{percentage}} % positiv
DANKE fĂĽr deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(am besten bewertete zuerst)]