Nmap steht für Network Mapper, es ist ein kostenloses und quelloffenes Netzwerkerkennungs- und Aufklärungstool, das für die Hosterkennung und das Sammeln detaillierter Informationen über einen Host verwendet wird. Geschrieben in C, C++ und Python und erstmals im September 1997 veröffentlicht, hat sich nmap zu einem integralen Werkzeug für Fachleute für Cybersicherheit und digitale Forensik entwickelt, die sich darauf verlassen, detaillierte Informationen über Zielhosts zu enthüllen und potenzielle Schwachstellen aufzudecken. Nmap enthüllt Informationen wie aktive Hosts in einem Netzwerk, offene Ports, Betriebssystem- und Diensterkennung und die Durchführung von Stealth-Scans, um nur einige zu nennen.
In diesem Handbuch heben wir einige der praktischen Nmap-Befehle hervor, die Sie verwenden können, um so viele Informationen wie möglich von Host-Systemen abzurufen.
So installieren Sie nmap
Bevor wir uns verschiedene Möglichkeiten ansehen, wie der Befehl nmap verwendet werden kann, schauen wir uns an, wie Sie dieses nützliche Befehlszeilentool installieren können. Der universelle und einfachste Weg, nmap zu installieren, ist die Verwendung von Snap-Paketen. Snaps sind vorgefertigte Softwarepakete, die mit Bibliotheken und Abhängigkeiten ausgeliefert werden. Sie sind in allen wichtigen Linux-Distributionen leicht verfügbar. Im Snapstore finden Sie jede Menge Snaps. Bevor Sie jedoch Nmap aus Snap-Paketen installieren, müssen Sie zuerst den Snapd-Daemon aktivieren. Dadurch können Sie Snap-Pakete herunterladen und installieren.
Um Nmap mit Snaps zu installieren, führen Sie den folgenden Befehl aus.
$ sudo snap install nmap
Alternativ können Sie sich dafür entscheiden, Nmap mit Paketmanagern zu installieren, die für jede Linux-Distributionsfamilie einzigartig sind.
Für Ubuntu und Debian
Verwenden Sie für Ubuntu/Debian/Mint-basierte Distributionen den APT-Paketmanager wie gezeigt.
$ sudo apt -y install nmap
Für CentOS 8 / RHEL 8 / Fedora 22 und neuere Version
Verwenden Sie für CentOS 8 / RHEL 8 und Fedora 22 und höher den dnf-Paketmanager.
$ sudo dnf -y install nmap
Für CentOS 7 und RHEL 7
Verwenden Sie für CentOS 7 / RHEL 7 und frühere Versionen den yum-Paketmanager.
$ sudo yum -y install nmap
Für Arch Linux / Manjaro
Verwenden Sie für Arch-basierte Systeme den Pacman-Paketmanager wie gezeigt.
$ sudo pacman -S nmap
Nachdem wir uns die Installation von nmap angesehen haben, wollen wir nun fortfahren und uns 20 fantastische nmap-Befehlsbeispiele unter Linux ansehen
1) Nmap-Befehl zum Scannen eines einzelnen Hosts
In seiner Grundform kann der nmap-Befehl verwendet werden, um einen einzelnen Host zu scannen, ohne irgendwelche Argumente zu übergeben. Die Syntax ist wie gezeigt:
$ nmap Ziel-IP
Zum Beispiel;
$ nmap 192.168.2.102
Alternativ können Sie statt der IP-Adresse auch den Domänennamen wie gezeigt angeben:
$ nmap scanme.nmap.org
2) Mehrere Hosts scannen
Das gleichzeitige Scannen mehrerer Hosts ist besonders praktisch für ausgedehnte Netzwerke, in denen Sie mehrere Hosts gleichzeitig scannen möchten. Dies ist eine bequeme Möglichkeit, Hosts mit einem einzigen Befehl zu scannen, anstatt jeden Host einzeln zu scannen. Sie können beispielsweise 10 oder mehr Hosts oder ein ganzes Subnetz scannen, während Sie an etwas anderem arbeiten. Dazu gibt es verschiedene Möglichkeiten.
Erstens können Sie mehrere IP-Adressen oder Domains hintereinander angeben, die wie gezeigt durch ein Leerzeichen getrennt sind;
$ nmap 192.168.2.1 192.168.2.103
Anstatt die IP-Adressen vollständig einzugeben, können Sie die Endungen wie gezeigt durch ein Komma trennen.
$ nmap 192.168.2.1,102,103
Sie können auch einen Bereich von IP-Adressen mit einem Bindestrich angeben. Der folgende Befehl scannt beispielsweise Hosts von 192.168.2.1 bis 192.168.2.100
$ nmap 192.168.2.1-100
3) Scannen Sie ein Subnetz mit nmap
Außerdem können Sie wie gezeigt einen Platzhalter verwenden, um ein ganzes Subnetz zu scannen:
$ nmap 192.168.2.* OR $ nmap 192.168.2.0/24
Um den Scan zu verfeinern und nur Live-Hosts in einem Subnetz zu entdecken, verwenden Sie die Option -sP wie gezeigt.
$ nmap -sP 192.168.2.*
4) Erhalten Sie weitere Informationen mit der ausführlichen Option
Verwenden Sie die Option -v, um während des nmap-Scans eine robustere Ausgabe zu erhalten. Diese Option druckt die Details des Scans aus, wie z. B. die Art des Scans und offene Ports, die entdeckt werden.
$ nmap -v 192.168.2.1
5) Hosts von einem Nmap-Scan ausschließen
Wenn Sie eine Reihe von Hosts scannen, können Sie entscheiden, einen einzelnen Host vom Scan auszuschließen. Verwenden Sie dazu die Option –exclude. Im folgenden Beispiel haben wir den Host 192.168.2.20 vom Scannen ausgeschlossen.
$ nmap 192.168.2.0/24 --exclude 192.168.2.20
Um mehrere Hosts vom Nmap-Scan auszuschließen, geben Sie die auszuschließenden Hosts in einer Datei an und verknüpfen Sie den Befehl wie gezeigt mit der Datei:
$ nmap 192.168.2.* --excludefile exclude.txt
Der obige Befehl schließt alle Hosts aus, die in der Datei exclude.txt enthalten sind.
6) Führen Sie einen schnellen Scan durch
Wie der Name schon sagt, können Sie einen viel schnelleren Scan mit nmap durchführen, indem Sie das Flag -F wie gezeigt übergeben:
$ nmap -F 173.82.202.201
Ein Haftungsausschluss – Dieser Scan ergibt weniger Ports als der normale Scan.
7) Aktive Hosts in einem Netzwerk scannen
Das ist eher ein Ping-Scan. Es erkennt aktive Hosts in einem Subnetz. Um nach aktiven Hosts zu suchen, übergeben Sie die Option -sn gefolgt von der IP-Adresse und dem Subnetz. Zum Beispiel:
$ nmap -sn 192.168.2.0/24
8) Hosts scannen, die in einer Datei enthalten sind
Wenn Sie ein segmentiertes Netzwerk haben, insbesondere eines mit VLANs, besteht die Möglichkeit, dass Sie Hosts in verschiedenen Subnetzen haben. Eine einfache Möglichkeit, sie zu scannen, besteht darin, ihre IP-Adressen in einer Textdatei zu definieren und die Datei als Argument mit der Option -iL zu übergeben.
$ nmap iL hosts.txt
Hier ist ein Beispiel der Hostdatei
$ cat hosts.txt 192.168.2.100 192.168.2.102 192.168.20.5-50
9) Führen Sie einen Scan durch, um die Firewall zu erkennen
Die Firewall-Erkennung ist besonders nützlich, wenn Schwachstellentests oder ethisches Hacken durchgeführt werden. Es ermöglicht dem Systemadministrator zu wissen, ob die Firewall des Zielhosts aktiviert ist oder nicht. Um den Status einer Firewall zu erfahren, verwenden Sie das Flag -sA wie gezeigt.
$ nmap -sA 192.168.2.1
Dadurch wird ein ACK-Scan initiiert, der untersucht, ob Pakete ungefiltert passieren können. Verwenden Sie das Flag -n, um eine Reverse-DNS-Auflösung auf dem Zielhost zu verhindern.
10) OS-Erkennung mit nmap durchführen
Nmap kann auch Einblicke in das Betriebssystem oder Betriebssystem des Zielsystems und auch die Versionserkennung geben. Übergeben Sie für die Betriebssystemerkennung die Option -O wie gezeigt. Wir werden einen auf einem Linux-System gehosteten Cloud-VPS scannen und sehen, was uns nmap gibt.
HINWEIS: Wenn Sie ein normaler Benutzer sind, müssen Sie den sudo-Befehl aufrufen, da die Betriebssystemerkennung sudo-Berechtigungen erfordert.
$ sudo nmap -O 173.82.202.201
Nmap tut sein Bestes, um das Betriebssystem und seine Version zu identifizieren, aber die Ergebnisse stellen möglicherweise nicht immer ein genaues Ergebnis dar.
11) Führen Sie Port-Scans durch
Eine der wesentlichen Aufgaben des nmap-Tools ist das Scannen von Ports auf einem Hostsystem. Sie können auf den Punkt kommen und einen zu scannenden Port angeben, indem Sie das Flag -p gefolgt von der Portnummer wie gezeigt verwenden:
$ nmap -p 80 173.82.202.201
Außerdem können Sie nach mehreren Ports suchen, indem Sie sie wie gezeigt durch ein Komma trennen:
$ nmap -p 80,443 192.168.2.1
Sie können auch einen Bereich von zu scannenden Ports definieren, indem Sie diese mit einem Bindestrich trennen.
$ nmap -p 80-443 192.168.2.1
12) Scannen Sie nach TCP/UDP-Ports
Sie können sich auf das Scannen von Ports beschränken, die entweder TCP oder UDP sind. Um TCP-Ports zu scannen, verwenden Sie die Option -sT wie gezeigt.
$ nmap -sT 173.82.202.201
Führen Sie für einen bestimmten TCP-Port, z. B. Port 80, Folgendes aus:
$ nmap -p T:80 173.82.202.201
Verwenden Sie für UDP-Ports die Option -sU.
$ nmap -sU 173.82.202.201
Führen Sie für einen bestimmten UDP-Port, z. B. Port 69, Folgendes aus:
$ nmap -p U:69 173.82.202.201
13) Dienstversion ermitteln
Beim Scannen nach möglichen Schwachstellen ist das Erkennen laufender Dienste und ihrer Versionen sowie der Ports, auf denen sie lauschen, von entscheidender Bedeutung. Dadurch wissen Sie, welche Dienste von einem Angreifer genutzt werden können, um Ihr System zu kompromittieren. Das Wissen über Dienst- und Portversionen ermöglicht es Ihnen, eine Entscheidung zu treffen, ob Sie die Dienste auf ihre neuesten Versionen aktualisieren oder sie vollständig deinstallieren möchten.
Um Informationen zu Diensten und Ports zu sammeln, verwenden Sie das Flag -sV.
$ nmap -sV 173.82.202.201
14) Führen Sie einen Stealth-Scan durch
Ein nmap-Scan ist normalerweise „verrauscht“ und hinterlässt Spuren, die von einem robusten IDS (Intrusion Detection System) gekennzeichnet und schließlich zu Ihnen zurückverfolgt werden können. Um anonym zu bleiben , können Sie mit der Option -sS einen Stealth-Scan durchführen.
$ nmap -sS 173.82.202.201
15) Ermitteln Sie unterstützte IP-Protokolle
Mit dem Flag -sO können Sie Informationen über die von einem Zielsystem unterstützten Protokolle (ICMP, TCP, UDP usw.) abrufen.
$ sudo nmap -sO 173.82.202.201
16) Führen Sie einen aggressiven Scan durch
Wenn die Option -A verwendet wird, liefert nmap sehr detaillierte Scanergebnisse, einschließlich offener Ports und Versionen von laufenden Diensten, Betriebssystemerkennung und führt sogar eine Traceroute des/der Zielhosts durch.
$ nmap -A 173.82.202.201
17) nmap-Ausgabe in einer Datei speichern
Standardmäßig druckt nmap Scan-Ergebnisse auf dem Terminal aus. Wenn Sie die Ergebnisse jedoch für weitere Analysen in einer Textdatei speichern müssen, können Sie den Umleitungsoperator wie gezeigt verwenden.
$ nmap 173.82.202.201 > scanme.txt
Um zu überprüfen, ob die Scan-Ergebnisse gespeichert wurden, verwenden Sie den cat-Befehl wie gezeigt.
$ cat scanme.txt
Zusätzlich können Sie die Option -oN gefolgt von der Ausgabedatei und dem Host übergeben.
$ nmap -oN scanme.txt scanme.nmap.org
18) Drucken Sie die Hostschnittstellen und -routen aus
Manchmal müssen Sie möglicherweise die Schnittstellen und Routen des Hostsystems zu Debugging-Zwecken finden. Dies kann leicht erreicht werden, indem die Option –iflist übergeben wird.
$ nmap --iflist
19) Holen Sie sich Hilfe zu nmap
Um Ihre Neugier auf zusätzliche nmap-Optionen zu stillen, verwenden Sie das Flag -h. Dies ist gleichbedeutend damit, Hilfe zu nmap-Befehlen zu erhalten.
$ nmap -h
20) Überprüfen Sie die nmap-Version
Führen Sie den folgenden Befehl aus, um die Version von nmap zu überprüfen, die Sie verwenden:
$ nmap -v
Dies sind nur 20 der grundlegenden Nmap-Befehle, mit denen Sie verschiedene Hostsysteme auflisten können. Es gibt immer noch viele nmap-Optionen, die Sie verwenden können, um verfeinerte Details über das Zielsystem zu erhalten, aber die Beispiele, die wir aufgelistet haben, sind ein guter Ausgangspunkt. Wir hoffen, dass diese Anleitung hilfreich war, um Sie mit dem nmap-Tool und verschiedenen Befehlsbeispielen vertraut zu machen.
Auch lesen :9 tee-Befehlsbeispiele in Linux