Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
Forum
Shop
FAQ
Know How
Testberichte
Hardware-DB
Events
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Partner
Unser Partner für
SSL Zertifikate
ist Checkdomain GmbH.
Tutorials

Offene Ports und Anwendungen finden mit netstat

Grundlagen

Für die Kommunikation in IP-Netzen spielen die Ports eine wichtige Rolle. Über das Protokoll (UDP, TCP) und die Portnummer wird auf dem Layer 4 ein Dienst identifiziert. Eine Anwendung die einen Service im Netzwerk anbietet, öffnet dazu einen Port. Dieser Port geht dabei zunächst in den Status "Listen" und wartet auf Verbindungsversuche. Eine Liste der offiziell vergebenen Portnummer findet man bei der IANA.

Ein offener Port im Status Listen ist ein potientielles Einfallstor für Script Kiddies und Hacker. Trojaner oder besser Trojanische Pferde installieren gerne Backdoors und öffnen dabei einen entsprechenden Port. Daher ist es sehr zu empfehlen, sich von Zeit zu Zeit die offenen Ports seiner Systeme anzusehen. Bei der Suche nach unbekannten Portnummer leistet Google gute Dienste.

Offene Ports unter Windows

Unter Windows liefert das Kommando "netstat" die gewünschten Informationen.

Der Befehl "netstat -an" zeigt alle Netzwerkverbindungen auf einer Maschine an. Serverdienste die sich im Status "Listen" bzw. "Listening" befinden, werden von deutschen Windowsversionen als "ABHÖREN" angezeigt.

C:\>netstat -an

Aktive Verbindungen

  Proto  Lokale Adresse         Remoteadresse          Status
  TCP    192.168.1.7:139        0.0.0.0:0              ABHÖREN
  TCP    192.168.1.7:1031       0.0.0.0:0              ABHÖREN
  TCP    192.168.1.7:1031       192.168.11.25:139      HERGESTELLT
  TCP    192.168.1.7:1071       0.0.0.0:0              ABHÖREN
  TCP    192.168.1.7:1071       192.168.11.77:139      HERGESTELLT
  TCP    192.168.1.7:1096       0.0.0.0:0              ABHÖREN
  TCP    192.168.1.7:1103       10.0.2.1:1433          HERGESTELLT
  TCP    192.168.1.7:1106       10.4.0.1:3311          HERGESTELLT
  TCP    192.168.1.7:1230       10.4.0.3:1352          HERGESTELLT
  TCP    192.168.1.7:1258       10:4.0.3:1352          HERGESTELLT
  TCP    192.168.1.7:1385       0.0.0.0:0              ABHÖREN
  TCP    192.168.1.7:1420       10.5.0.1:23            HERGESTELLT
  UDP    192.168.1.7:137        *:*
  UDP    192.168.1.7:138        *:*
  UDP    192.168.1.7:500        *:*

Ab Windows 2000 kennt netstat zusätzlich den Parameter "-o". Dieser bewirkt, dass zu jedem Port die Prozess-ID PID des zugehörigen Prozesses angezeigt wird.

C:\>netstat -ano

Aktive Verbindungen

  Proto  Lokale Adresse         Remoteadresse          Status             PID
  TCP    192.168.1.100:139      0.0.0.0:0              ABHÖREN              4
  TCP    192.168.1.100:1031     67.152.71.172:80       HERGESTELLT       1584
  TCP    192.168.1.100:1034     67.104.144.70:3131     HERGESTELLT       1600
  TCP    192.168.1.100:1035     68.97.40.116:3131      HERGESTELLT       1600
  TCP    192.168.1.100:1036     64.49.76.16:80         SCHLIESSEN_WARTEN 2040
  TCP    192.168.1.100:1048     216.234.59.241:80      HERGESTELLT       1364
  TCP    192.168.1.100:10224    0.0.0.0:0              ABHÖREN           2032
  UDP    192.168.1.100:121      *:*                                       636
  UDP    192.168.1.100:137      *:*                                         4
  UDP    192.168.1.100:138      *:*                                         4
  UDP    192.168.1.100:9150     *:*                                      2032

Mit Hilfe des Taskmanagers ist die passende Anwendung zur PID schnell gefunden. Unter Umständen muss die Anzeige der PID im Reiter Prozesse erst über das Menü "Ansicht/Spalten auswählen" aktiviert werden. Prinzipiell sollten nur Ports offen sein die man wirklich benötigt.

Offene Ports unter Linux

Unter Linux sind die Parameter für das Kommando netstat etwas anders. Für eine Kontrolle der offenen Ports ruft man "netstat -nlp" auf.

/home/work $ netstat -npl 
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 72.139.238.24:993       0.0.0.0:*               LISTEN      1622/couriertcpd    
tcp        0      0 72.139.238.24:143       0.0.0.0:*               LISTEN      1609/couriertcpd    
tcp        0      0 72.139.238.24:783       0.0.0.0:*               LISTEN      1576/spamd.pid      
tcp        0      0 72.139.238.24:80        0.0.0.0:*               LISTEN      25671/apache        
tcp        0      0 72.139.238.24:21        0.0.0.0:*               LISTEN      19417/proftpd
tcp        0      0 72.139.238.24:22        0.0.0.0:*               LISTEN      1695/sshd           
tcp        0      0 72.139.238.24:25        0.0.0.0:*               LISTEN      26889/exim4         
tcp        0      0 72.139.238.24:443       0.0.0.0:*               LISTEN      2082/apache-ssl     

Das System zeigt mit diesen Parameter nur Ports im Status "Listen" an. Zusätzlich wird in der letzten Spalte die PID und der Name der zuständigen Applikation angezeigt. Alternativ kann unter Linux auch das Kommando "lsof" benutzt werden. Mit dem Aufruf "lsof -i | grep -e LISTEN" wird ebenfalls eine Liste der Ports im Status "Listen" angezeigt.

Einsatz von nmap (Windows und Linux)

Zur Kontrolle der offenen Ports eines Host über das Netzwerk benötigt man einen Portscanner. Einer der populärsten Vertreter dieser Spezies ist nmap von Fyodor. Gerade für Systeme die direkt mit dem Internet verbunden sind wie DSL-Router und Rootserver ist ein Portscan sehr interessant.

Der Portscanner nmap kennt eine Unmenge von Optionen. Für einen ersten Scan nach offenen TCP-Ports wird lediglich der Parameter "-sT" und die IP-Adresse des Zielsystems benötigt. Damit scannt nmap alle Well Know TCP-Ports (1-1024) und alle Ports aus der Datei etc/services.

[work] ~ $ nmap -sT 192.168.1.1

Starting nmap 3.20 ( www.insecure.org/nmap/ ) at 2004-10-16 23:17 CEST
Interesting ports on Router (192.168.1.1):
(The 1610 ports scanned but not shown below are in state: closed)
Port       State       Service
80/tcp     open        http

Nmap run completed -- 1 IP address (1 host up) scanned in 6.533 seconds

Der hier untersuchte IP-Host bietet einen Dienst an: HTTP auf TCP-Port 80. Auf der Maschine läuft also höchstwarscheinlich ein Webserver. Um alle TCP-Ports von 1 bis 65535 zu untersuchen ruft man nmap mit den Optionen "-sT -p 1-65535" auf. Mit der Option "-sU" sucht nmap nach offenen UDP-Ports. UDP-Scanning ist allerdings oftmals sehr langsam. Ursache hierfür ist eine Begrenzung der Anzahl der ICMP-Meldungen die ein Host pro Zeiteinheit versendet. Viele Systeme begrenzen die ICMP-Meldungen nach RFC 1812. nmap erkennt dieses Verhalten und arbeitet entsprechen langsamer um keine Meldungen zu verlieren.

Eine Möglichkeit für Backdoors sich vor Portscanner zu verbergen ist das Portknocking. Dabei wird ein Port erst in den Status "Listen" versetzt, wenn das System ein bestimmtes Datenpacket empfängt.

Ein DSL-Router bietet einen guten Schutz gegen Angriffe aus dem Internet. Der Router verhindert Verbindungsversuche aus dem Internet auf Serverdienste im internen Netz. Durch Konfiguration von Portforwarding am Router wird dieser Schutz allerdings ausgehebelt. Weitere Informationen zu dieser Thematik finden sie im Tutorial Eigenen Server am DSL-Anschluss einrichten.

Hilfe und Erfahrungsaustausch zu Netzwerkfragen finden Sie im Netzwerkforum.

Weiterführende Informationen finden Sie unter folgenden Link:

 

 
© 2004-2015, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.03.2012