Aus Linux-Magazin 06/2009

Die Werkzeuge rund um das Nmap-Projekt

© Amjad Shihab, Fotolia.com

Viele kennen und nutzen Nmap. Nur wenige aber bedienen sich des mächtigen Werkzeugkastens, der im Laufe der Zeit rund um den eigentlichen Portscanner entstand.

Kein Admin möchte auf Nmap verzichten, wenn es darum geht, ein Netzwerk zu inventarisieren, offene Dienste zu überprüfen oder komplexe Firewall-Regeln zu verifizieren [1]. Dass das Nmap-Projekt auch weitere Tools hervorgebracht hat, die darüber hinausgehen, weiß nicht jeder. Einige der Werkzeuge sind neueren Datums, in vielen steckt Potenzial, das sich nicht auf den ersten Blick offenbart. Grund genug für eine Tour d\’Horizon rund um Nmap und seine Helfer.

Klickende Hacker

Die Fülle an Möglichkeiten von Nmap ist für Einsteiger ein harter Brocken. Die über hundert Programmoptionen wirken auf den ersten Blick abschreckend. Da führen auch die ausführliche und hilfreiche Manual-Page oder das kürzlich erschienene Buch vom Projektleiter Fyodor erst mal nicht zum schnellen Erfolg [2]. Zenmap, die grafische Oberfläche der zweiten Generation, erleichtert den Einstieg bereits deutlich. Die Eingabe eines Ziels sowie die Auswahl eines vordefinierten Scanprofils reichen bereits aus, um erste Resultate zu erhalten. Entdeckte Rechner und deren Dienste bereitet Zenmap strukturiert auf (siehe Abbildung 1). Im ersten Reiter präsentiert sich dem Anwender die altbekannte textuelle Ausgabe von Nmap – farblich aufgepeppt. Durch einen Klick in die Rechnerliste navigiert der Admin durch die Resultate.

Abbildung 1: Zenmap ist mehr als ein Wrapper um Nmap: Das Werkzeug stellt die gewohnte Ausgabe des Scanners grafisch aufgepeppt dar.

Abbildung 1: Zenmap ist mehr als ein Wrapper um Nmap: Das Werkzeug stellt die gewohnte Ausgabe des Scanners grafisch aufgepeppt dar.

Im zweiten Reiter sind die Autoren von Zenmap noch einen Schritt weiter gegangen: Hier stellt das Tool die Dienste dar, die der ausgewählte Rechner offenhält. Schaltet der Anwender von dieser Ansicht auf die Liste der Services um, zeigt das Tool rechts die Systeme an, die die jeweiligen Daemons anbieten. Ein Netzadmin, der sich Sorgen um die Ausbreitung eines Wurms wie Conficker macht, listet so beispielsweise alle Systeme auf, deren TCP-Port 445 offen steht und damit vielleicht von der Windows-Schwachstelle MS08-067 [3] betroffen sind.

Zenmaps Resultate hängen wesentlich vom gewählten Scanprofil ab. Neben dem regulären Scan mit den Standardeinstellungen von Nmap bieten neun vordefinierte Profile bereits für viele Einsatzzwecke angepasste Konfigurationen (siehe Abbildung  2). Bei den Namen der Scanprofile macht sich bemerkbar, dass die deutsche Übersetzung der Benutzeroberfläche noch unvollständig ist.

Abbildung 2: Die mitgelieferten Profile decken viele Anwendungsfälle vom Übersichtsscan eines Netzes bis zur Detailanalyse eines Hosts ab.

Abbildung 2: Die mitgelieferten Profile decken viele Anwendungsfälle vom Übersichtsscan eines Netzes bis zur Detailanalyse eines Hosts ab.

Tagesmenü oder à la carte?

Ein Ping-Scanprofil bietet die Grundlage für die so genannte Host Discovery, also das Entdecken von aktiven Rechnern, ohne sie komplett nach offenen Ports zu scannen. Ein derartiger Scan bereitet oft weitere Untersuchungen vor. In einem ersten Schritt versucht der Admin in einem großen IP-Adressenbereich die erreichbaren Systeme zu finden. Erst im zweiten Schritt führt er weiterführende Suchläufe gegen die erreichbaren Systeme durch.

Zwei Quick-Scans aktivieren Nmap-Optionen, um rasche Analysen mit wenigen gesendeten Paketen zu starten. Sie erzielen dafür bei nicht-lokalen Scans eine etwas geringere Genauigkeit. Ein weiteres Profil untersucht die Netzwerktopologie, indem es den Mechanismus von Traceroute verwendet. Vier Profile widmen sich intensiven Suchläufen mit verschiedenen Protokollen. Sie sind gute Voreinstellungen für umfangreiche Scans mit allen Tricks von Nmap, insbesondere auch der Betriebssystemerkennung, Versionserkennung von Diensten und dem Ausführen von NSE-Skripten [4].

Der langsame Comprehensive Scan aktiviert schließlich das volle Programm: Mit diesen Einstellungen verwendet Zenmap das komplette Arsenal der Möglichkeiten von Nmap, das die grafischen Oberfläche in jedem Fall aufruft. Das Tool sucht mit diversen Methoden nach Hosts, fahndet über alle existierenden Ports nach TCP- und UDP-Diensten, erledigt OS- und Version-Detection, startet das Skript-Scanning und zeichnet die Verbindungswege mit Traceroute auf. Solche Scans decken zwar alle Bedürfnisse ab, sind aber auf dem Kabel höchst auffällig, da sie sehr viel Netzwerkverkehr erzeugen.

Durch die Wahl des Profils stellt Zenmap passende Nmap-Optionen zusammen und zeigt sie dem Benutzer an, er darf Parameter auch verändern oder ergänzen. Damit präsentiert sich Zenmap nicht nur als Werkzeug für Anfänger, anspruchsvolle Anwender haben oft genaue Vorstellungen davon, mit welchen Parametern sie einen Scan durchgeführen wollen.

Wer zum Beispiel bis ins Detail wissen will, aus welchem Grund Nmap einen Port als offen oder geschlossen markiert hat, aktiviert beim Scannen die Option »–reason«. Dieser Parameter bewegt Nmap dazu, zusammen mit den Resultaten auch auszuweisen, welche Art von Antwortpaket Nmap von einem untersuchten Rechner empfangen hat.

Profis gehen noch einen Schritt weiter und fügen neue Profile hinzu, indem sie oft benötigte Parameter zu den mitgelieferten Vorgaben hinzufügen. Wer sich im Dschungel der Nmap-Parameter noch nicht auswendig zurechtfindet, verwendet den Befehlsassistenten, um einen maßgeschneiderten Nmap-Scan zusammenzustellen (siehe Abbildung 3).

Abbildung 3: Mit Hilfe des Befehlsassistenten lassen sich komplexe Scans zusammenstellen. Das Ergebnis dürfen Admins trotzdem manuell anpassen.

Abbildung 3: Mit Hilfe des Befehlsassistenten lassen sich komplexe Scans zusammenstellen. Das Ergebnis dürfen Admins trotzdem manuell anpassen.

Ergebnisse kombinieren

Anders als sein Vorgänger Nmap FE, ist Zenmap aber mehr als nur eine bequeme grafische Verpackung von Nmap. Das Werkzeug bietet einige Funktionen an, die Nmap alleine nicht bietet: Zenmap ist in der Lage, Resultate aus mehreren Scans zusammenzuführen und sie kombiniert darzustellen. Diese Scanresultate kann Zenmap zudem in einer Datei speichern und später wieder laden. Visuell beeindruckt die Topologie-Ansicht (siehe Abbildung 4). Zenmap stellt die über Nmaps Traceroute-Funktionalität gewonnenen Informationen über die Netzwerktopologie grafisch dar.

Abbildung 4: Zenmap stellt die entdeckte Netztopologie grafisch dar. Dazu müssen Anwender aber Topologiedaten mittels »--traceroute« erheben.

Abbildung 4: Zenmap stellt die entdeckte Netztopologie grafisch dar. Dazu müssen Anwender aber Topologiedaten mittels »–traceroute« erheben.

Um in den Genuss dieser Darstellung zu kommen, führen Admins Scans mit der Option »–traceroute« aus, weil Zenmap andernfalls keine Daten über die Netztopologie hat. Wer primär an der Topologie des Zielnetzes interessiert ist, hat mit dem Scanprofil »Quick traceroute« bereits eine gute Nmap-Konfiguration zur Hand, um die Angaben für den Netzplan gezielt in Erfahrung zu bringen.

Katze aus dem Sack lassen

Rund um das Kernstück Nmap und seine moderne Oberfläche Zenmap sind jedoch noch weitere Werkzeuge entstanden. Netcat ist das klassische Netzwerktool schlechthin. Ursprünglich von Hobbit entwickelt, existieren unterdessen diverse Klone mit ähnlicher Funktionalität: So findet sich mit »nc« auch eine Variante im Basissystem von FreeBSD. Dank Chris Gibson bietet auch das Nmap-Projekt einen Netcat-Klon namens Ncat. Der eignet sich dazu, um Dienste auf Protokollebene zu testen. Das Programm unterstützt – wie die meisten anderen Netcat-Klone – Kommunikation über IPv4 und IPv6, TCP und UDP, beherrscht Loose Source Routing und lässt sich zudem über SOCKS- sowie HTTP-Proxys hinweg einsetzen.

Sysadmins verwenden Netcat gerne für den Transfer von Daten zwischen Systemen, vielleicht sogar über unsichere Netzwerke. In solchen Situationen brilliert Ncat durch unkomplizierte Verschlüsselung mittels SSL/TLS sowie durch Adressen-basierte Zugriffskontrolle.

Listing 1 erzeugt ein ein Jahr gültiges X.509v3-Zertifikat in der Datei »ncat.crt« mit passendem geheimen Schlüssel in »ncat.key«. Anwender passen den Subject-String an ihre Bedürfnisse an. Im zweiten Schritt wartet Ncat auf eingehende Verbindungen und weist sich mit dem neuen Zertifikat aus. Die empfangenen Daten entpackt es mittels Tar. Um Daten zu senden, packt der Admin Client-seitig die gewünschten Daten mit Tar ein – in Listing 2 ist dies das komplette Dateisystem ab »/« – und versendet sie SSL-verschlüsselt an den Server.

Listing 1: Verschlüsseltes
Backup (Server)

01 openssl req -new -newkey rsa:1024 -days 365 
02     -subj '/C=CH/ST=ZH/L=Uster/O=roe.ch/OU=Operations/CN=backup.roe.ch/' 
03     -nodes -x509 -sha1 -keyout ncat.key -out ncat.crt
04 ncat -v -l --recv-only --ssl --ssl-cert ncat.crt 
05    --ssl-key ncat.key --allow client.roe.ch 1337 |
06    tar xvyf -

Listing 2: Verschlüsseltes
Backup (Client)

01 tar cvyf - / | 
02   ncat -v --send-only --ssl backup.roe.ch 1337

Ein weiteres, unter Netcat-Klonen einmaliges Feature ist der Broker-Modus. In ihm fungiert eine Ncat-Server-Instanz als Drehscheibe zwischen mehreren Ncat-Clients. Über den Broker können diese Clients miteinander kommunizieren. Das ist besonders dann nützlich, wenn NAT oder Firewall-Regeln eine Direktverbindung verhindern. Ein anderer Anwendungszweck ist die Verteilung von Daten auf mehrere Systeme gleichzeitig. Dazu verwendet Ncat allerdings nur Unicast und kein Multicast. Daher ist das Verteilen von großen Datenmengen auf diesem Weg nicht optimal gelöst.

Ein Spezialfall des Broker-Modus ist der Chat-Modus, der Ncat in einen Ad-hoc-Chatserver verwandelt. Sind weder IRC- noch Jabber-Server zur Hand oder fehlen die Clients dazu, springt Ncat mit dem Parameter »–chat« in die Bresche. Der Clou ist dabei, dass die anderen Clients auch andere Netcat-Klone oder Telnet verwenden dürfen. Diese Tools lassen sich auf fast jedem Rechner finden.

Früher war alles besser

Wer über einen längeren Zeitraum für ein Netzwerk verantwortlich ist, möchte Veränderungen an erreichbaren Rechnern, an eingesetzten Betriebssystemen und Diensten in dieser Zeit sichtbar machen. Genau diesem Einsatzzweck dient Ndiff. Der Name ist Programm: Genau wie das Unix-Tool »diff« beschreibt Ndiff Unterschiede zwischen zwei Dateien, wobei sich Ndiff auf Nmap-Scanresultate im XML-Format spezialisiert. Es gibt die Unterschiede zwischen zwei solchen Nmap-XML-Dateien wahlweise in zwei Formaten aus: Die reine Textform erinnert an ein Unified Diff.

Um die Ergebnisse auch in anderen Programmen zu verarbeiten, kann Ndiff die Unterschiede auch in XML-Form darstellen. Das nutzt Zenmap, um die Unterschiede zwischen zwei Scans grafisch aufbereitet darzustellen (siehe Abbildung 5). An diesen Features wurde in letzter Zeit aktiv gearbeitet, sodass sich hier ein Blick auf die aktuelle Entwicklungsversion [5] lohnt.

Abbildung 5: Zenmap zeigt die grafisch aufbereitete Ndiff-Ausgabe an.

Abbildung 5: Zenmap zeigt die grafisch aufbereitete Ndiff-Ausgabe an.

Nicht nur für Skript-Kiddies

Das vermutlich mächtigste Feature von Nmap ist die Nmap Scripting Engine (NSE). Sie erlaubt es, Nmap mit Hilfe von Lua-Skripten auszubauen. Die Idee solcher Mini-Programme ist, Nmap um komplexere Aufgaben zu erweitern. Das reicht von der Interaktion mit gefundenen Diensten, über das Sammeln von Daten bis hin zur Suche nach Schwachstellen. Einige prüfen sie gar exemplarisch.

Das Nmap-Projekt liefert bereits viele solcher Skripte aus. Sie sind in Kategorien unterteilt. Von Interesse ist in erster Linie die Kategorie der ungefährlichen Skripte, die Admins bedenkenlos auch gegen produktive Systeme einsetzen dürfen. Weitere Kategorien [6] existieren beispielsweise für Malware-Detection, Authentisierungs-Prüfungen oder die Schwachstellensuche.

Der Systemverwalter aktiviert NSE durch »-sC« oder »-A«. Ohne weitere Optionen führt die Erweiterung ein Repertoire von ungefährlichen und unauffälligen Skripten aus, die keinen Schaden anrichten und die nicht die Logfiles der Zielsysteme verstopfen. Beispiele dafür sind Zonentransfers bei DNS-Servern oder das Anzeigen des SSH-Hostkey-Fingerprints bei SSH-Servern. Letzteres ist etwa im Kontext der Debian-OpenSSL-Schwachstelle [7] von Interesse.

Wurm an der Angel

Die Engine hat Ende März größere Bekanntheit erlangt, als Ron Bowes ein NSE-Skript entwickelte, das Conficker-Infektionen erkennt. Das Nmap-Projekt hat die Erweiterung zusammen mit Nmap 4.85BETA5 veröffentlicht [8]. Das Skript erlaubt es, ganze Netzwerke nach Rechnern abzusuchen, die der Conficker-Wurm befallen hat. Der Aufruf

nmap -PN -T4 -p139,445 -n -v --script smb-check-vulns,smb-os-discovery --script-args safe=1 10.0.0.0/8 

lässt Nmap nach Conficker suchen. Der Scanner markiert die gefundenen Rechner in der Ausgabe dann als »Probably INFECTED« oder »Probably CLEAN«. Das demonstriert gut, was mit NSE alles möglich ist. Auch wenn Nmap kein Ersatz für echte Schwachstellen-Scanner werden will, ist es doch flexibel genug, um auch komplexere Aufgaben erledigen zu können. (mg)

Infos

[1] Nmap-Projekt: [http://nmap.org/]

[2] Gordon (Fyodor) Lyon, “Nmap Network Scanning”: Open Source Press, 2009

[3] MS Security Bulletin MS08-067: [http://www.microsoft.com/germany/technet/sicherheit/bulletins/ms08-067.mspx]

[4] Eric Amberg, “Erweiterungsbau: Mit NSE den Netzwerkscanner Nmap erweitern”: Linux-Magazin 12/07, S. 78

[5] Nmap-Subversion-Repository:[svn://guest:@svn.insecure.org/nmap]

[6] NSE-Kategorien: [http://nmap.org/book/nse-usage.html#nse-categories]

[7] Hintergrund zur Debian-OpenSSL-Schwachstelle: [http://www.metasploit.com/users/hdm/tools/debian-openssl/]

[8] Release Notes zum Conficker-Detection-Skript: [http://insecure.org/#conficker]

Der Autor

Daniel Roethlisberger arbeitet zurzeit an neuen Scan-Methoden für Nmap und ist daneben auch in anderen Projekten aktiv, vor allem im FreeBSD-Umfeld. Beruflich führt er Penetration-Tests und Security-Audits für Compass Security AG aus der Schweiz durch und gibt sein Wissen in Schulungen und Fachvorträgen weiter.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben