ra2 studio - stock.adobe.com
Pentest mit Nmap: So hacken Sie Ihr eigenes Netzwerk
Mit dem kostenlose Tool Nmap können Admins ihr eigenes Netzwerk im Rahmen eines Pentests untersuchen und Schwachstellenscans durchführen. Wir zeigen dies anhand von Beispielen.
Angreifer nutzen oft die Open-Source-Software Nmap, um offene Ports in Netzwerken und angeschlossenen Geräten zu finden. Nmap ist aber auch für die Verteidiger ein optimales Tool, um Sicherheitstests in Netzwerken durchzuführen und offene Ports abzusichern. Das kostenlose Programm lässt sich in Windows, Linux und macOS einsetzen.
Neben den Möglichkeiten, die wir in diesem Beitrag vorstellen, gibt es im Internet auf der Webseite von Nmap noch Skripte, die sich gemeinsam mit Nmap nutzen lassen, um nach speziellen Informationen im Netzwerk zu suchen. Für jedes Skript haben die Entwickler noch eine Beschreibung der Möglichkeiten angegeben.
Mit Zenmap stellen die Entwickler von Nmap noch eine grafische Oberfläche zur Verfügung. Zusammen mit WireShark lassen sich die gefundenen Daten auch auswerten. Neben der Installation von Nmap, können Sie das Tool auch mit Kali Linux nutzen. Dadurch lassen sich die gefundenen Informationen gleich dazu verwenden, mit anderen Tools weitere Angriffe zu starten.
Netzwerke durchsuchen
Um ein Netzwerk bei einem Pentest auf Schwachstellen zu überprüfen, erfolgt immer zuerst die Informationsbeschaffung. Dadurch lassen sich genau die Daten erfassen, die später für einen Angriff notwendig sind. Wir zeigen in diesem Beitrag die Vorgehensweise mit Windows, mit Linux und macOS erfolgen die Vorgänge aber identisch.
Erste Informationsbeschaffung mit Ping und ipconfig
Um die eigene IP-Adresse und Daten zur IP-Konfiguration anzuzeigen, erfolgt zunächst die Eingabe von ipconfig /all in Windows oder ip a auf Linux-Rechnern. Dadurch lassen sich bereits wichtige Informationen zum aktuellen Subnetz auslesen sowie dem Standard-Gateway, das IP-Pakete in andere Netzwerke routet. Mit einem Ping-Befehl wird ein Kontakt zum Gateway aufgebaut. Zeichnet man diese Vorgänge mit Wireshark auf, lassen sich an dieser Stelle bereits die Datenpakete nachverfolgen.
Bei einem Ping ist die eigene IP-Adresse zu sehen, die ein Ping Request an das Ziel schickt und ein Ping Reply vom jeweiligen Gerät, in diesem Beispiel der Router. Wir gehen im Folgenden vom IP-Netzwerk 10.0.0.0/16 aus, mit dem Standardgateway 10.0.0.1. Die Aktionen mit Nmap führen wir auf dem Gerät mit der IP-Adresse 10.0.1.9 aus.
Ping-Scan mit Nmap - Was ist in meinem Netzwerk los?
Sobald Nmap installiert ist, beginnt in der Befehlszeile oder in Zenmap eine erste Untersuchung mit nmap -sP 10.0.0.0/16. Die Parameter -sP starten den Ping Scan, der zunächst untersucht, welche IP-Adressen aktuell im Netzwerk aktiv sind. Dieser Befehl untersucht das Netzwerk 10.0.0.0 mit der Subnetzmaske 255.255.0.0 nach aktiven Geräten. Nach kurzer Zeit zeigt Nmap alle aktiven Geräte an, inklusive IP-Adresse, MAC-Adresse und, falls möglich, auch den Hersteller.
Bei der Aufzeichnung mit Wireshark ist zu sehen, welcher massiver Netzwerkverkehr im Hintergrund des Scanvorgangs abläuft. Nmap nutzt dazu ARP-Broadcasts, um so viele Informationen zu sammeln, wie nur möglich. Dennoch ist der Befehl relativ unauffällig, sodass nicht viele Security-Tools die Untersuchung bemerken. Das sind schon mal wichtige Informationen, denn auf ähnlichen Wegen versuchen Angreifer an erste Informationen zu kommen.
Mit nmap -sP 10.0.1.6-8 führt Nmap einen Portscan auf die IP-Adressen 10.0.1.6 bis 10.0.1.8 durch. Dabei sendet der Nmap-Client ein ARP-Paket an die Computer und erhält ein ARP-Paket mit Informationen zurück. Dazu gehören zum Beispiel die MAC-Adresse und der Hersteller des Gerätes. Das reicht Angreifern oft schon aus, um mit Standard-Anmeldedaten eine Verbindung zu Webfrontends aufzubauen, zum Beispiel von WLAN-Access-Points.
Um das Betriebssystem eines bestimmten Clients und die installierte Version in Erfahrung zu bringen, kommt nmap -O 10.0.1.9 zum Einsatz. Dabei erfahren Angreifer auch gleich die offenen Ports auf dem Betriebssystem und welche Dienste dahinterstehen. Das funktioniert in Windows auch trotz aktivierter Firewall.
Allerdings ist Linux meistens genauso gesprächig und verrät ebenfalls viele Informationen über das Betriebssystem, zum Beispiel den verwendeten Linux-Kernel und die Daemons, die hinter den offenen Ports auf Anfragen warten.
TCP-Connect: Mit Nmap agressiver nach Informationen suchen
Etwas aggressiver geht der Befehl nmap -sT 10.0.0.0/16 vor. Der TCP-Connect sendet an alle Clients, die auch der Parameter sP findet, ein SYN-Paket. Aktive Geräte antworten darauf mit einem SYN/Ack-Paket, geben also bekannte, dass sie auf Verbindungen warten. Der Nmap-Client schickt darauf hin ein ACK-Paket zurück, und kommuniziert mit dem Ziel im Netzwerk. DoS- (Denial of Service) und DDoS-Angreifer (Distributet-Denial-of-Service) gehen ähnlich vor. Hier sind mit Wireshark ungleich mehr Datenpakete im Netzwerk zu sehen. Nachdem dieser Vorgang abgeschlossen ist, zeigt Nmap für alle aktiven Geräte im Netzwerk sämtliche offenen Ports an und auch den Dienst, der auf Anfragen aus dem Netzwerk antwortet.
Mit einem Stealth-Scan lassen sich ähnliche Informationen abrufen. Allerdings sendet der Nmap-Client in diesem Fall kein ACK-Paket dem SYN/-ACK-Paket des sendenden Clients hinterher. Dadurch bleibt der angreifende PC weitgehend unsichtbar: nmap -sS 10.0.0.0/16.
Auch hier lassen sich die Pakete in Wireshark nachverfolgen. Mit dem Befehl nmap -sA 10.0.0.0/16 sendet der Nmap-Client wiederum ein ACK-Paket an alle Clients, die im Netzwerk zu finden sind und gibt vor, zuvor ein SYN/ACK-Paket erhalten zu haben. Antworten die gescannten Clients auf das ungefragt zugeschickt ACK-Paket, erkennen Angreifer wiederum problemlos, dass am anderen Ende der IP-Adresse ein Client auf Verbindungen wartet und starten mit anderen Tools einen Angriff.
Um nicht nur die bekanntesten Ports zu scannen, sondern bestimmte, kann der Befehl nmap -sV -p 1-65535 10.0.0.0/16 zum Einsatz kommen. Dieser dauert natürlich länger, scannt im Subnetz aber alle aktiven Geräte auf Antwort auf die Ports 1 bis 65535 durch. Diese Aktion lässt sich auch nur für eine IP-Adresse durchführen, oder für mehrere Ports. Der folgende Befehl scannt die IP-Adressen 10.0.1.6 bis 10.0.1.8 auf offene Ports: nmap -sS 10.0.1.6-8.
Angriff starten: Verbindungsaufbau mit Geräten herstellen
Durch die vorher gezeigten Befehle lassen sich daher umfangreiche Informationen beschaffen, welche Geräte im Netzwerk aktiv sind, welche Hersteller die Geräte produziert haben und welche Ports offen sind. Mit dem Befehl nmap -A 10.0.1.6 versucht Nmap, mit einem den Ports des Gerätes mit der IP-Adresse 10.0.1.6 zu kommunizieren und Daten auszulesen. In Wireshark ist die ungeheure Menge an Datenpakete zu sehen, die Nmap an das Zielgerät sendet, um Informationen zu erhalten. Bei diesem Vorgang versucht Nmap über jeden Port des Zielgrätes an so viele Informationen zu gelangen, wie nur möglich.
Nmap versucht, alle vom Gerät angebotenen Informationen zu ermitteln und probiert auch, eine Netzwerkverbindung herzustellen sowie wichtige Daten auszulesen. Wenn möglich, zeigt das Tool auch die Versionen der Software auf dem Gerät an, das bei den verschiedenen Ports auf Anfragen antwortet. Ist die Version bekannt, könnten Angreifer mit weiteren Tools versuchen die Sicherheitslücken der entsprechenden Software auszuwerten.
Solche Angriffe sind zum Beispiel auch auf IoT-Geräte häufig anzutreffen, da diese mit verschiedenen Sensoren sowie Ports ohnehin auf Datenverbindungen warten und auf diese antworten. Das macht Angriffe natürlich sehr einfach und Nmap ist einer der Wege dazu.
Rechtliches
Nmap ist ein sogenanntes Dual-use-Tools, dass einerseits von Administratoren für ihre legitimen Aufgaben genutzt wird, aber auch von Angreifern für die Vorbereitung und Durchführung von Straftaten verwendet werden kann. Daher kann schon der Besitz eines Tools wie Nmap zu rechtlichen Konsequenzen führen, wenn der Besitzer damit unlautere Absichten verfolgt.
Auch ist das Durchführen von unautorisierten Portscans nach §303b / Nr. 2 StGB strafbar. Das gilt natürlich besonders für fremde Netzwerke. Administratoren sollten sicherstellen, dass ihr Arbeitgeber sie eindeutig dazu ermächtigt, die firmeneigenen Systeme entsprechend auf Schwachstellen zu untersuchen. „Klar ist, dass die Nutzung eines Port-Scans bei eigenen Systemen nicht strafbar sein kann, da von einer Berechtigung des Zugangs ausgegangen werden kann“, so Rechtsanwalt Nils Stark in einem Artikel zum Thema.
Der Arbeitgeber sollte allerdings mit Betriebsrat und Rechtsabteilung über die beabsichtigten Sicherheitstests sprechen, um sicherzustellen, dass alle (arbeits)rechtlichen Aspekte berücksichtigt werden.