AA_123rf-12353882_lightwise.jpg

© lightwise, 123RF

Prüfendes Auge

Hosts und Netzwerke mit Nmap analysieren

17.07.2013
In "Matrix Reloaded" hackt Trinity mit Nmap das Stromversorgungsnetz, um Neo den Weg zum Architekten der Scheinwelt zu ebnen. Doch der Portscanner eignet sich auch bestens für profanere Zwecke – etwa, um Schwachstellen in heimischen Netz dingfest zu machen.

Als Port- und Security-Scanner lässt sich Nmap [1] vielfältig einsetzen. Es stellt nicht nur auf sehr unterschiedliche Arten fest, welche Rechner sich in einem Netzwerk tummeln: Obendrein ermittelt es auch recht genaue Informationen über deren Betriebssystem, die angebotene Dienste und deren Schwachstellen. In einen Cron-Job verpackt informiert Nmap Administratoren, sobald ein Dienst ausfällt oder ein Rechner im Netzwerk plötzlich ganz neue Services anbietet, die ein eifriger Anwender oder gar ein Angreifer installiert hat.

Nicht zuletzt enthält Nmap auch eine Scripting-Engine und viele LUA-Skripte, mit denen Sie Aufgaben automatisieren oder den Funktionsumfang des Tools in Eigenregie erweitern. Neben dem eigentlichen Scanner enthält die Nmap-Suite noch weitere hilfreiche Werkzeuge, wie die grafische Nutzeroberfläche Zenmap, das Datentransfer- und Debugging-Tool Ncat, das Vergleichswerkzeug Ndiff und den Paketgenerator Nping.

Nmap installieren

Nmap findet sich in den Repositories fast aller Distributionen und lässt sich dementsprechend bequem mit den jeweiligen Paketwerkzeugen einrichten. Mithilfe des Kommandos nmap --version erfahren Sie schnell, welche Version installiert ist. Dabei handelt es sich meist nicht um die aktuellste – die müssen Sie in aller Regel aus den Quellen [2] selbst übersetzen. Dazu genügt nach dem Herunterladen und Auspacken des Quelltext-Tarballs jedoch der übliche Dreisatz ./configure && make && make install mit administrativen Rechten.

Grundfunktionen

Mit Nmap untersuchen Sie sowohl einzelne Rechner als auch ganze Netzwerke, und das nicht nur als Administrator, sondern auch als normaler Nutzer. Allerdings unterscheidet Nmap zwischen privilegierten Anwendern wie Admins und unprivilegierten Nutzern: Letztere dürfen beispielsweise keine sogenannten Raw-Packets versenden, sondern sind an die connect()-Calls des Systems gebunden, die bei jeder TCP-Portabfrage einen kompletten, aus Syn-Syn/Ack bestehenden Verbindungsaufbau vornehmen.

Führen Sie Nmap als privilegierter Nutzer aus, klopft es Ports nur mit einem sogenannten Syn-Stealth-Scan oder Half-open-Scan ab. Dabei setzt Nmap lediglich ein Syn-Paket an den Server ab. Antwortet dieser mit Syn-Ack, sendet Nmap ein Rst-Paket, das den Verbindungsaufbau sofort abbricht (Abbildung 1). Der Stealth-Scan wurde ursprünglich entwickelt, um zu verhindern, dass der angefragte Rechner die IP-Adresse des anfragenden Rechners mitloggt. Doch mittlerweile erkennen auch viele Firewalls, Intrusion-Detection- und Intrusion-Prevention-Systeme derartige Syn-Anfragen und reagieren entsprechend.

Abbildung 1: Setzt der Admin Nmap ein, bekommt das Zielsysteme es oft nicht einmal mit.

Einen besonderen Vorteil von Nmap stellt dar, dass es neben einzelnen Host auch ganze Netzwerke scannen kann. Das erweist sich vor allem dann nützlich, wenn man nicht (mehr) weiß, welche Dienste die einzelnen Rechner eigentlich anbieten. Um ein Netz zu scannen, nennen Sie Nmap entweder die IP-Adressen der einzelnen Rechner direkt im Aufruf oder übergeben diese in einer Datei. Noch wesentlich einfacher geht es, indem Sie IP-Adressbereiche angeben, beispielsweise in CIDR-Notation. Das bedeutet, dass die Kommandos in den ersten drei Zeilen von Listing 1 funktionell identisch sind. Sollen die Hosts aus einer Datei eingelesen werden, darf pro Zeile ein Eintrag stehen, wobei auch hier wieder größere Bereiche erlaubt sind. Die Datei mit den Hosts wird Nmap mit der Option -sL dateiname mitgeteilt.

Listing 1

# nmap 192.168.1.1 192.168.1.2 [...] 192.168.1.254
# nmap 192.168.1.1-254
# nmap 192.168.1.0/24
# nmap -p22,25,80,110,8080-8088 192.168.1.0/24

Standardmäßig scannt Nmap pro Host die tausend gebräuchlichsten Ports – das geht recht schnell, dauert aber naturgemäß je nach Anzahl der gescannten Rechner gelegentlich trotzdem einen Moment. Mit dem Schalter -F ("fast") begrenzen Sie bei Bedarf die Anzahl der untersuchten Ports auf die hundert wichtigsten. Möchten Sie nur bestimmte Ports prüfen, geben Sie mittels des Schalters -p einzelne Ports oder durch Kommas getrennte Portbereiche an (Listing 1, Zeile 4). Mit -p- weisen Sie Nmap an, den kompletten Bereich 1-65535 zu scannen.

Oft genügt es nicht, zu wissen, ob ein Host online ist und welche Ports offen stehen. Daher bietet Nmap zusätzlich die Möglichkeit, detaillierte Informationen zu den Betriebssystemen und angebotenen Diensten zusammenzutragen. Diesem Zweck dienen die Optionen -sV (Versionsabfrage) und -O (OS-Erkennung), für die Nmap eine umfangreiche Datenbank mit Fingerprints zahlreicher Dienste und Betriebssysteme mitbringt. Die Option -A bezieht neben OS- und Versionserkennung auch zahlreiche Skripte mit in den Scan ein und gibt die Traceroute aus. Derartige Scans dauern aber deutlich länger als normale und verursachen jede Menge möglicherweise unerwünschten "Lärm" auf dem Zielrechner.

Offene Ports kennzeichnet Nmap als open, geschlossene (die auf Anfragen sofort mit einem RST reagieren) als closed. Daneben gibt es auch noch Ports, die Nmap als filtered interpretiert. Das sind solche, die vermutlich von einer Firewall geschützt werden, die Requests einfach mit DROP verwirft. Daneben gibt es noch Mischformen wie open|filtered oder closed|filtered, die nichts anderes bedeuten, als dass Nmap den genauen Status des Ports nicht erkennt.

Ausgabeformate

Nmap präsentiert seine Ergebnisse standardmäßig auf der Konsole. Bei wenigen gescannten Hosts ist das übersichtlich genug, bei einem kompletten Netzwerk-Scan jedoch nicht mehr. Hier bietet es sich an, auf die Ausgabe in Dateien zurückzugreifen. Nmap unterstützt die Ausgabe in normale (-oN) sowie für Grep optimierte (-oG) Textdateien sowie ins XML-Format (-oX). Die XML-Dateien bieten den Vorteil, dass sie sich später mit anderen Programmen sehr gut auswerten lassen. Daneben kennt Nmap noch das Format ScRipT KIdd3 (-oS), das sich an eine eher spezielle Zielgruppe richtet (Abbildung 2).

Abbildung 2: Sehr speziell: Das Nmap-Output-Format fU3r $cR1ptK!dD|3$.

Untersucht Nmap große Netzwerke und prüft dabei vielleicht auch noch UDP-Ports, kann das sehr lange dauern. Aber auch andere Faktoren beeinflussen die Dauer des Scans. Wird beispielsweise ein Host während eines Scan-Vorgangs ausgeschaltet, versucht Nmap trotzdem noch, alle Ports abzufragen. Das kann dazu führen, dass es die meiste Zeit des Scans für einige wenige Rechner aufwendet. Mit dem Schalter --host-timeout 10s weisen Sie das Tool an, sich nach der angegebenen Zeitspanne nicht weiter mit einem Host zu beschäftigen. So prüft Nmap mit dem Befehl:

# nmap -p- --host-timeout 120s -O -sV -oX nmap.xml 192.168.x1.1/24

zwar alle Rechner im Netzwerk, die zum Zeitpunkt des Aufrufs eingeschaltet waren, hält sich aber nicht länger als 120 Sekunden mit jedem Host auf. Statt in Sekunden (s) können Sie die Dauer auch in Millisekunden (ms) oder Minuten (m) angeben. Sofern die Ausgabe in eine Textdatei erfolgt, können Sie übrigens den Scan abbrechen und später mit nmap --resume Datei wieder fortsetzen. Bei XML-Dateien klappt das allerdings nicht. Da die XML-Dateien jedoch viele Möglichkeiten der alternativen Auswertung eröffnen, sollten sie die erste Wahl darstellen.

Entsprechend bietet es sich an, Nmap auf einem Rechner zu starten, der sowieso stets eingeschaltet bleibt. Handelt es sich dabei um einen entfernten Rechner, erweist sich wie so oft der Multiplexer Screen [3] als nützliches Werkzeug. Läuft Nmap in einer mit screen -S nmap-session gestarteten Sitzung, können Sie offene Konsolen nach einem Detach ([Strg]+[A],[D]) schließen. Später holen Sie die Sitzung dann mit screen -r nmap-session von einem anderen Rechner auf den Schirm und kontrollieren den Fortschritt. Gegenüber anderen Lösungen (etwa nohup) bietet die Screen-Sitzung den Vorteil, dass Nmap nicht von der Eingabe entkoppelt wird und Sie dem Portscanner so jederzeit durch Drücken der Eingabetaste entlocken können, wann der Scan voraussichtlich abgeschlossen ist (Abbildung 3).

Abbildung 3: Wie lange ein Scanvorgang voraussichtlich noch dauert, verrät ein Druck auf die Eingabetaste.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...