Mit nmap Sicherheitslücken im Netzwerk finden
Hinter jedem offenen Port im Netzwerk verbirgt sich ein Server-Programm, das mit hoher Wahrscheinlichkeit Fehler enthält. Mitunter sind diese Fehler so gravierend, dass sie dazu ausgenutzt werden können, das betreffende System auszuspionieren, zu sabotierten oder sogar Schadcode darauf auszuführen. Aus diesem Grund ist der wichtigste Schritt zu höherer Sicherheit in Ihrem Unternehmensnetz, die offenen Ports zu überprüfen und - wenn notwendig - zu schließen.
Einleitung: Mit nmap das Netzwerk erkunden
Mit Hilfe von Netzwerkanalyseprogrammen verschaffen Sie sich einen Überblick über mögliche Schwachstellen in Ihrem Unternehmensnetzwerk. Diese Anleitung stellt drei grundlegende Analysetechniken mit dem Portscanner nmap vor. Sie dienen dazu, Endgeräte zu identifizieren und herauszufinden, welche Dienste von diesen angeboten werden. Abschließend stellen wir Ihnen zwei Techniken vor, mit denen Sie gefundene Schwachstellen absichern können.
Mit dem Programm nmap können Sie den Aufbau Ihres Netzwerkes erforschen. Es gilt als das “Hackertool” schlechthin, weil es Implementierungsdetails aus verschiedenen Netzwerk-Protokollen dazu verwendet. Es findet Endgeräte im Netzwerk, untersucht sie nach darauf laufenden Serverprogrammen und ermittelt, um welche Programme es sich dabei handelt. Somit offenbart nmap Ihnen umfangreiche Details über Ihr Unternehmensnetz.
Hinweis:
Bitte arbeiten Sie stets sorgfältig und untersuchen Sie ausschließlich Netzwerke, für deren Untersuchung Sie befugt sind!
Nmap installieren und verwenden
Unter nmap.org können Sie sich das Programm herunterladen. Während nmap selber ein reines Kommandozeilenprogramm ist, steht mit Zenmap ein grafische Benutzeroberfläche zur Verfügung.
Für einige der nachfolgend beschriebenen Techniken sendet nmap rohe Datenpakete über verschiedene Schichten im Netzwerk. Da es hierzu den Netzwerkstack des Betriebssystems umgehen muss, benötigen Sie für die Durchführung Root- bzw. Administrationsrechte.
Analyse-Technik 1:
Mit nmap Endgeräte im Netzwerk finden
Mit Hilfe der ersten Technik werden alle Endgeräte in der gleichen Broadcast-Domäne gefunden. Das bedeutet: Alle Rechner sind z.B. über Switches im gleichen Ethernet miteinander verbunden und nicht durch Router (also auf IP-Ebene) voneinander abgetrennt. Zwar könnte man alternativ einen ICMP-Echo-Request (Ping) an die Broadcast-Adresse des Netzsegmentes senden - aber aus Sicherheitsgründen antworten aktuelle Endgeräte üblicherweise nicht darauf.
Will man ein IP-Paket an einen anderen Rechner im gleichen Ethernet versenden, geschieht dies über einen Ethernet-Frame, der zwischen zwei Netzwerkschnittstellen ausgetauscht wird. Dazu muss die Hardware-Adresse des Ziels bekannt sein. Der Mechanismus, der einer IP-Adresse die zugehörige Hardware- bzw. MAC-Adresse zuordnet, wird vom Adress Resolution Protocol (ARP) bereitgestellt.
Über die Broadcast-MAC-Adresse im Netzwerk wird an alle Endgeräte in der Broadcast-Domäne die Anfrage gesendet: “Wer hat die folgende IP-Adresse?”. Das Endgerät, das Pakete für diese IP-Adresse entgegennimmt, sendet daraufhin seine MAC-Adresse zurück. Jetzt kann die Netzwerkschnittstelle Daten an genau diesen Teilnehmer adressieren.
Bei der Inventarisierung eines Netzsegments unter Ausnutzung von ARP wird diese Anfrage für jede einzelne IP-Adresse im angegebenen Netzsegment gestellt. Ist ein Gerät im Netzwerk eingebunden, muss es auf diese Anfrage zwingend antworten.
Der folgende Befehl findet alle laufenden Endgeräte mit den IP-Adressen von 192.168.1.1 bis 192.168.1.254 in einer gemeinsamen Broadcast-Domäne:
nmap -PR 192.168.1.0/24
Analyse-Technik 2:
Offene Ports ohne direkten Zugriff auf das Gerät finden
Wenn Sie direkten Zugriff auf das Zielsystem haben, können Sie sich offene Ports unter Linux, MacOS und Windows mit dem Befehl "netstat" anzeigen lassen. In vielen Fällen ist das allerdings nicht möglich. Nmap bietet für diese Fälle Alternativen, das Zielsystem nach offenen Ports abzusuchen.
Offene TCP-Ports finden
Hinter jedem offenen Port läuft ein Serverprogramm, das Daten entgegennimmt und auswertet. Bei TCP ist die Ermittlung offener Ports einfach: Da das Protokoll verbindungsorientiert arbeitet, muss lediglich der Drei-Wege-Handshake zum Verbindungsaufbau eingeleitet werden (Weitere Informationen zum Drei-Wege-Handshake finden Sie in unserem kostenlosen Buch “TCP/IP Ethernet bis Web-IO”). Dazu wird ein einfaches SYN-Paket an das Ziel versendet. Abhängig von dessen Antwort kann der Zustand des Ports ermittelt werden:
Keine Antwort:
Der Port ist entweder nicht geöffnet oder gefiltertReset:
Das Betriebssystem nimmt zwar Verbindungsanfragen für den Port entgegen, weist sie aber zurück, weil keine Serveranwendung auf dem Port läuftDie Verbindung wird angenommen:
Der Port ist offen und stellt unter Umständen ein Sicherheitsrisiko dar
Mit folgendem Kommando führen Sie einen TCP-SYN-Scan auf dem Host mit der IP-Adresse 192.168.1.200 aus:
nmap -sS 192.168.1.200Offene UDP-Ports finden
Offene UDP-Ports zu finden ist bedeutend schwerer. Im Gegensatz zu TCP arbeitet UDP nicht verbindungsorientiert. Da es keinen Drei-Wege-Handshake gibt, ist die Reaktion der Gegenseite nicht vorhersagbar.
Im einfachsten Fall antwortet das Betriebssystem des Zielsystems, dass der Port nicht erreichbar ist. In diesem Fall wird dieser als geschlossen markiert. Wird keine Antwort gesendet, ist es nicht möglich zu sagen, ob das Paket von einer Serveranwendung angenommen oder irgendwo auf dem Weg verworfen wurde. Keine Antwort bedeutet dementsprechend, dass der Port entweder offen oder gefiltert ist.
An die “üblichen Verdächtigen” unter den Ports wird ein dienstspezifisches Paket gesendet. Erhält der Absender darauf eine Antwort, weiß er, dass der Port geöffnet ist. Dies funktioniert beispielsweise bei der Auflösung von Rechnernamen über DNS, bei der Anfrage nach einer IP-Konfiguration über DHCP oder bei Zeit-Updates über NTP.
Mit diesem Befehl führt man einen einfachen UDP-Scan aus:
nmap -sU 1 192.168.1.200Dieser Scan findet, wie oben erwähnt, nicht unbedingt alle offenen UDP-Ports - für einen ersten Überblick ist er aber oft ausreichend.
Offene TCP- und UDP-Ports im gleichen Durchlauf finden
Um offene TCP- und UDP-Ports gleichzeitig zu ermitteln, können Sie die Befehle auch miteinander kombinieren:
nmap -sS -sU 192.168.1.200Analyse-Technik 3:
Betriebssystem und Serverprogramme bestimmen
Nmap kann mehr, als nur Endgeräte und Ports zu finden: Bei der Implementierung von Netzwerkprotokollen haben Entwickler gewisse Freiheiten. Das sorgt dafür, dass jedes Betriebssystem einen spezifischen Fingerabdruck aufweist, über den es identifiziert werden kann.
Das Betriebssystem zu bestimmen funktioniert nicht immer. In den meisten Fällen ist das Ergebnis aber zutreffend.
nmap -0 192.168.1.200Um herauszufinden, welche Dienste auf einem Endgerät laufen, kann nmap die Antworten der offenen Ports analysieren. Häufig teilen diese Programme von sich aus eine ganze Menge Informationen mit, beispielsweise auf welchem Versionsstand sie sind oder welche Protokolle sie unterstützten. Diese Informationen wertet nmap aus und fasst Sie zusammen.
nmap -sV 192.168.1.200Bitte beachten Sie: Wenn Sie sV zusammen mit sU, also dem UDP-Scan, verwenden, sendet nmap eine Batterie umfangreicher Testpakete an jeden einzelnen UDP-Port. Dies kann Ihnen weitere Informationen über offene UDP-Ports verschaffen, dauert aber unter Umständen sehr lange!
Ports schließen, Sicherheit erhöhen
Nachdem nun eventuelle Risiken durch offene Ports bekannt sind, gilt es diese im nächsten Schritt zu minimieren.
Sicherheitstechnik 1:
Server-Anwendungen beenden
In einem ersten Schritt sollten Sie alle nicht benötigten Server-Anwendungen deaktivieren. Um herauszufinden, welche Anwendung einen Port öffnet, können Sie ebe nfalls den Befehl "netstat" verwenden. In vielen Fällen ist das Beenden von Serveranwendungen auf dem Endgerät zum Schließen von Ports nicht möglich, etwa bei mangelnden Zugriffsrechten, im Fall von eingebetteter Software oder wenn Serveranwendungen dynamisch bei Bedarf gestartet werden. Hier hilft die im nächsten Abschnitt beschriebene Verinselungstechnik weiter.
Sicherheitstechnik 2:
Unkompliziert und effektiv - Verinselung mit der Microwall
Bei Anwendung der Verininselungstechnik werden potentiell gefährdete Systeme, bei denen sich offene Ports nicht schliessen lassen, in einem eigenen Netzwerksegment verinselt. Die Kommunikation mit diesem Segment wird überwacht, eingeschränkt und protokolliert. Dazu wird ein Firewall-Router wie die W&T Microwall VPN zwischen den betreffenden Systemen und dem umgebenden Netzwerk installiert. Der darüber geleitete IP-Datenverkehr wird nach Regeln gefiltert.
Der Paketfilter der Microwall filtert ungewünschte Kommunikation heraus und verwirft Pakete. Selbst wenn ein Port des Endgerätes offen ist, kann er nicht erreicht werden.
Im NAT-Modus werden alle Endgeräte auf der Insel hinter der Microwall verborgen. Im Netzwerk sichtbar ist nur die Microwall, die die Kommunikation weiterleitet und überwacht.
Verinselte Endgeräte befindet sich in einer anderen Broadcast-Domäne. Eine ARP-Anfrage und andere Angriffe auf Netzwerkebene werden effektiv unterdrückt.
Ausführliche Informationen zur Verinselungsstrategie finden Sie auf der Themenseite.
-
Probieren geht über Studieren!
Gerne stellen wir Ihnen für den Zeitraum von vier Wochen eine Microwall kostenfrei zur Verfügung.
Testgerät anfordern -
Thomas Clever
t.clever@wut.de
Sie erreichen unsere Techniker telefonisch unter 0202/2680-110 (Mo-Fr. 8-17 Uhr)