Netzwerk-Analyse mit Netstat: So finden Sie offene Ports und Malware

Offene Ports sind ein Einfallstor für Malware. Die Netzwerk-Analyse mit Netstat listet offene Ports auf und liefert Details zum Netzwerk-Traffic.

Das Analyse-Tool Netstat bringt einige nützliche Funktionen zur Überprüfung von TCP/IP-Netzwerken mit sich und ist im Grunde recht einfach zu benutzen. Mit diesem Tool können Sie offene Ports Ihres Computers identifizieren und sehen ein- und ausgehende Netzwerk-Verbindungen. Diese Informationen können enorm wichtig sein, wenn Sie ein Malware-Problem lösen oder einen Security-Vorfall diagnostizieren möchten.

Ich muss gestehen, dass ich bei der Arbeit mit einem Computer lieber eine grafische Benutzeroberfläche verwende. Ich war noch nie ein großer Fan von Kommandozeilen-Tools. In einigen Fällen, wie eben auch bei Netstat, bestätigt die Ausnahme allerdings die Regel.

Ich finde Netstat auch deshalb so hilfreich, weil Sie das Tool auf fast jeder Plattform finden. Es ist für UNIX, Linux, Windows und Macs verfügbar. Der Umstand, dass Sie keine unterschiedlichen Diagnose-Tools auf verschiedenen Rechnern verwenden müssen, ist sehr angenehm.

Jeder offene Port auf Ihrem Computer ist ein potenzieller Eintrittspunkt für Malware, mit der sich u.U. Zugriff auf Ihren Rechner erlangen lässt. Netstat informiert Sie dabei über eine Netzwerk-Analyse sehr schnell darüber, welche Verbindungen ein Computer zum Internet aufgebaut hat und welche Services am Laufen sind.

Ich erkläre Ihnen im Weiteren, wie Sie unter Windows eine Netzwerk-Analyse mit Netstat durchführen könenn. Zunächst müssen Sie die Eingabeaufforderung öffnen und  folgendes eintippen:

netstat -an

Der Parameter -a listet alle Netzwerk-Verbindungen und alle Ports auf, deren Status auf „ABHÖREN“ steht. Die Option -n zeigt die Adressen und Port-Nummern in einem numerischen Format an. Eine typische Ausgabe (gekürzt) von netstat -an sie ungefähr so aus:

Aktive Verbindungen

Proto Lokale Adresse Remoteaddresse Status
TCP 0.0.0.0:21 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:25 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:80 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:135 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:443 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:445 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:1035 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:3351 0.0.0.0:0 ABHÖREN
TCP 127.0.0.1:1040 0.0.0.0:0 ABHÖREN
TCP 127.0.0.1:1049 0.0.0.0:0 ABHÖREN
TCP 127.0.0.1:1059 127.0.0.1:27015 HERGESTELLT
TCP 127.0.0.1:1085 0.0.0.0:0 ABHÖREN
TCP 27.0.0.1:1434 0.0.0.0:0 ABHÖREN
TCP 127.0.0.1:5152 0.0.0.0:0 ABHÖREN
TCP 127.0.0.1:5152 127.0.0.1:3414 SCHLIESSEN_WARTEN

Die erste Spalte (Proto steht für Protokoll) listet alle TCP- und UDP-Verbindungen der Maschine auf, auf der Sie Netstat ausgeführt haben. Die zweite Spalte ist die lokale IP-Adresse und Port-Nummer des Rechners. Die dritte Spalte gibt die Remoteadresse und den entsprechenden Port wieder. Die letzte Spalte schließlich zeigt, in welchem Status sich die Verbindung befindet oder um welche Art es sich handelt.

„ABHÖREN“ zeigt einen klassischen offenen Port, der für eingehende Verbindungen bereit ist. „HERGESTELLT“ bedeutet, dass tatsächlich eine Verbindung zwischen Ihrem Rechner und einer Remote-IP-Adresse samt dazugehörigem Port besteht. Hier findet also eine Datenübertragung statt. Manchmal sehen Sie in dieser Spalte „SCHLIESSEN_WARTEN“. In diesem Status befindet sich TCP, während eine aktive Verbindung beendet wird.

Wie Sie sehen, gibt es sehr viele Einträge mit einer lokalen Adresse 0.0.0.0 und einem zugeordneten Port. Das bedeutet, dass der Port auf allen Netzwerk-Schnittstellen lauscht und alle auf dieser Port-Nummer eingehenden Verbindungen akzeptiert.

Lokale Adressen mit 127.0.0.1 sind Prozesse, die auf interne Verbindungen, also auf dem gleichen Rechner, hören. Das Internet und andere externe Netzwerke sind damit ausgeschlossen. Handelt es sich bei der IP-Adresse in dieser Spalte um Ihre lokale IP-Adresse, reagiert der Port nur auf Verbindungen im eigenen lokalen Netzwerk. Der Port akzeptiert Verbindungen aus dem Internet, wenn die Online-IP-Adresse angezeigt wird.

Bereits ein erster schneller Blick auf die von Netstat angezeigten Verbindungs-Details der Netzwerk-Analyse informiert Sie also über potenzielle Probleme. Zum Beispiel könnte eine Ihrer Sicherheitsrichtlinien die Verwendung von IRC (Internet Relay Chat) verbieten, während Sie trotzdem zahlreiche Verbindungen zu einem Fremdrechner via Port 6667 (Standard-Port von IRC) sehen. In diesem Fall würde die Möglichkeit bestehen, dass Ihr Computer von einem Trojaner oder von anderer Malware befallen ist, die auf Befehle von einem außen stehenden IRC-Server wartet.

Netstat gibt standardmäßig allerdings nur Momentaufnahmen wieder. Mithilfe der Intervall-Option können Sie dies aber ändern und die Netzwerk-Analyse nach einer bestimmten Anzahl an Sekunden wiederholen. Dazu können Sie den folgenden Netstat-Befehl verwenden:

netstat  –an 1 | find "3333"

Dieser Befehl weist Netstat an, jede Sekunde zu laufen. Sie bekommen immer dann eine Ausgabe, wenn ein Prozess auf TCP-Port 3333 lauscht.

Wollen Sie herausfinden, welcher Prozess eines Rechners Pakete zu einer bestimmten anderen Maschine schickt, können Sie das so realisieren:

Netstat –ano 1 | find "Ziel_IP_Addr"

Der Parameter -o gibt die Prozess-ID (PID) aus, die für die Verbindung verantwortlich ist. Sie können im Anschluss das Programm finden, das mit dieser PID assoziiert ist. Tippen Sie dafür tasklist in der Eingabeaufforderung ein. Ein weiterer nützlicher Netstat-Parameter ist -b. Damit bekommen Sie die EXE-Datei und die dazugehörigen DLLs, die die TCP- und UDP-Ports verwenden. Möchten Sie herausfinden, ob sich ein anderes System mit Ihrem Rechner auf einem speziellen TCP-Port verbindet, geht das wie folgt (das ist zum Beispiel nützlich, wenn Sie einem Bot-Controller auf die Schliche kommen möchten):

netstat –an 1 | find "4444" | find "HERGESTELLT"

In diesem Beispiel wird Netstat so lange nichts ausgeben, bis die Software eine aktive Verbindung auf Port 4444 gefunden hat. Sollte das der Fall sein, bekommen Sie die mit diesem Port verbundene Quell-IP-Adresse. Bei einer Netzwerk-Analyse kann das eine sehr wertvolle Information sein.

Wenn Sie zusätzlich einen Port-Scanner wie Nmap verwenden, erhalten Sie natürlich noch detailliertere Analyse-Ergebnisse, allerdings ist Netstat bereits von Haus aus in Ihr System integriert und lässt sich schnell und einfach bedienen. Beim Thema Netzwerk-Analyse sollten Sie sich aber auch das Microsoft Sysinternals-Tool Process Monitor ansehen. Hierbei handelt es sich um ein fortgeschrittenes Monitoring-Tool für Windows, das in Echtzeit umfangreiche Informationen zu Ihrem System sowie zu laufenden Prozessen und zur Registry anzeigt.

Hinweis: Die Optionen -b und -o sind unter Windows 2000 nicht verfügbar. Zudem sollten Sie darauf achten, die das Ausführen dieser Optionen zusammen mit der Intervall-Option stark an den Systemressourcen zehrt.

Über den Autor: Michael Cobb ist CISSP-ISSAP und ein bekannter Security-Autor mit über 20 Jahren Erfahrung. Zu seiner Leidenschaft gehört es, Best Practices bezüglich IT-Security verständlich und begreifbar zu machen. Seine Website http://www.hairyitdog.com bietet freie Security-Poster an, um Anwender auf die Gefahren und Datensicherheit im Unternehmen aufmerksam zu machen. Er war Co-Autor des Buches IIS Security und hat für viele führende IT-Publikationen Artikel verfasst. Mike war außerdem Microsoft Certified Database Manager und registrierter Consultant bei CLAS (CESG Listed Advisor Scheme).

Folgen Sie SearchSecurity.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Netzwerksicherheit