Einführung
Nmap (Network Mapper) ist ein grundlegendes Werkzeug in der Netzwerksicherheit und -administration. Dieses Lab führt Sie in die Nmap-Scan-Flags ein, mit denen Sie effektive Netzwerkaufklärung und Schwachstellenbewertung durchführen können. Durch praktische Übungen lernen Sie, wie Sie verschiedene Nmap-Befehle verwenden, um Hosts zu entdecken, Ports zu scannen und Dienste in einem Netzwerk zu identifizieren. Diese Fähigkeiten sind für Netzwerkadministratoren und Sicherheitsexperten unerlässlich, um sichere Netzwerkumgebungen zu erhalten.
Installation von Nmap und grundlegendes Scannen
Installation von Nmap
Nmap ist auf den meisten Systemen nicht vorinstalliert, daher ist unser erster Schritt die Installation. Öffnen Sie ein Terminal in Ihrer LabEx-Umgebung und führen Sie die folgenden Befehle aus:
sudo apt update
sudo apt install nmap -y
Nachdem die Installation abgeschlossen ist, überprüfen Sie, ob Nmap korrekt installiert wurde, indem Sie die Version überprüfen:
nmap --version
Sie sollten eine ähnliche Ausgabe wie diese sehen:
Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
Grundlagen von Nmap verstehen
Nmap funktioniert, indem es speziell erstellte Pakete an Ziel-Hosts sendet und die Antworten analysiert. Dies hilft bei der Bestimmung:
- Welche Hosts im Netzwerk verfügbar sind
- Welche Dienste (Ports) sie anbieten
- Welche Betriebssysteme sie ausführen
- Welche Art von Paketfiltern/Firewalls verwendet werden
Die grundlegende Syntax eines Nmap-Befehls lautet:
nmap [scan type] [options] target
Wobei:
[scan type]den auszuführenden Scantyp angibt[options]zusätzliche Parameter zur Anpassung des Scans sindtargetdie IP-Adresse, der Hostname oder der IP-Bereich ist, der gescannt werden soll
Ihr erster Scan: Scannen des Localhost
Beginnen wir mit einem einfachen Scan Ihres eigenen Rechners (localhost). Führen Sie aus:
nmap localhost
Dieser Befehl scannt die gängigsten 1000 TCP-Ports auf Ihrem lokalen Rechner. Die Ausgabe sieht ähnlich aus wie:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
Die Ausgabe zeigt:
- Die Scan-Startzeit
- Den gescannten Host (localhost/127.0.0.1)
- Offene Ports und die zugehörigen Dienste
- Scan-Abschlusszeit und -Statistiken
Scan-Ergebnisse verstehen
Analysieren wir die Ausgabe:
PORT: Zeigt die Portnummer und das Protokoll (z. B. 22/tcp)STATE: Gibt an, ob der Port offen, geschlossen oder gefiltert istSERVICE: Zeigt den Dienst an, der typischerweise mit diesem Port verbunden ist
Die häufigsten Port-Zustände sind:
open: Der Port akzeptiert Verbindungenclosed: Der Port ist erreichbar, aber keine Anwendung lauscht darauffiltered: Nmap kann nicht feststellen, ob der Port offen ist, da Paketfilterung seine Probes blockiert
Scannen eines bestimmten Ports
Um einen bestimmten Port zu scannen, verwenden Sie das Flag -p gefolgt von der Portnummer:
nmap -p 22 localhost
Die Ausgabe konzentriert sich nur auf Port 22:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
Scannen eines Portbereichs
Sie können einen Portbereich mit einem Bindestrich scannen:
nmap -p 20-25 localhost
Dies scannt die Ports 20 bis 25:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open ssh
23/tcp closed telnet
24/tcp closed priv-mail
25/tcp closed smtp
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
Nun haben Sie gelernt, wie man Nmap installiert und grundlegendes Port-Scanning durchführt. Im nächsten Schritt werden wir erweiterte Scantechniken mit verschiedenen Nmap-Flags untersuchen.
Erkundung wesentlicher Nmap-Scan-Flags
Nachdem Sie die Grundlagen von Nmap verstanden haben, wollen wir uns einige wichtige Scan-Flags ansehen, die Ihnen mehr Kontrolle und Informationen aus Ihren Scans geben.
TCP SYN Scan (-sS)
Der TCP SYN Scan ist der Standard-Scantyp, wenn er als Root ausgeführt wird. Er wird oft als "halb-offener" Scan bezeichnet, da er TCP-Verbindungen nie abschließt. Er ist relativ heimlich und schnell.
Führen wir einen SYN-Scan auf localhost aus:
sudo nmap -sS localhost
Die Ausgabe sieht ähnlich aus wie:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
TCP Connect Scan (-sT)
Der TCP Connect Scan ist der Standard-Scan, wenn Nmap nicht mit Root-Rechten ausgeführt wird. Er schließt den vollständigen TCP-Handshake ab, wodurch er besser erkennbar, aber in manchen Fällen auch zuverlässiger ist.
nmap -sT localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Service Version Detection (-sV)
Das Version Detection Flag weist Nmap an, zu versuchen, die Version der Dienste zu ermitteln, die auf offenen Ports ausgeführt werden:
nmap -sV localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 6.41 seconds
Beachten Sie, wie die Ausgabe jetzt detaillierte Versionsinformationen für jeden Dienst enthält. Dies ist für Sicherheitsbewertungen von unschätzbarem Wert, da bestimmte Versionen bekannte Schwachstellen aufweisen können.
OS Detection (-O)
Das OS Detection Flag versucht, das Betriebssystem des Ziels zu ermitteln:
sudo nmap -O localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.57 seconds
Beachten Sie, dass Nmap erkannt hat, dass das System die Linux-Kernel-Version 4.X oder 5.X ausführt.
Kombinieren von Flags für umfassendes Scannen
Sie können mehrere Flags kombinieren, um umfassendere Ergebnisse zu erhalten. Kombinieren wir beispielsweise die Service Version Detection und OS Detection:
sudo nmap -sV -O localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00015s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.23 seconds
Aggressive Scanning (-A)
Das Aggressive Scan Flag kombiniert mehrere Scan-Optionen, einschließlich OS Detection, Version Detection, Script Scanning und Traceroute:
sudo nmap -A localhost
Ausgabe (gekürzt für die Kürze):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp CUPS 2.3
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
| mysql-info:
| Protocol: 10
| Version: 8.0.30-0ubuntu0.20.04.2
| Thread ID: 11
| Capabilities flags: 65535
| Some Capabilities: SupportsLoadDataLocal, Support41Auth, Speaks41ProtocolOld, IgnoreSigpipes, DontAllowDatabaseTableColumn, FoundRows, SupportsCompression, ConnectWithDatabase, LongPassword, InteractiveClient, SwitchToSSLAfterHandshake, ODBCClient, Speaks41ProtocolNew, IgnoreSpaceBeforeParenthesis, LongColumnFlag, SupportsTransactions, SupportsMultipleResults, SupportsAuthPlugins, SupportsMultipleStatments
| Status: Autocommit
| Salt: \x14\x12\x1Fjw\x182\x15\x0D\x12\x13C\x1F\x14\x0D\x07
|_ Auth Plugin Name: caching_sha2_password
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.12 seconds
Beachten Sie die erhebliche Menge an zusätzlichen Informationen, die der aggressive Scan liefert, einschließlich SSH-Schlüsselinformationen, HTTP-Serverdetails und detailliertere MySQL-Dienstinformationen.
In diesem Schritt haben Sie mehrere wichtige Nmap-Scan-Flags kennengelernt und wie Sie diese für umfassendere Ergebnisse kombinieren können. Im nächsten Schritt werden wir praktische Scan-Strategien für verschiedene Szenarien untersuchen.
Netzwerk-Scanning-Strategien und Timing-Kontrollen
In diesem Schritt lernen wir Netzwerk-Scanning-Strategien kennen und wie man das Timing und die Leistung von Nmap-Scans steuert. Dies ist entscheidend, wenn Sie größere Netzwerke scannen oder diskreter vorgehen müssen.
Scannen mehrerer Hosts
Nmap kann mehrere Hosts auf verschiedene Weise scannen:
Scannen einer Liste von IPs
Sie können mehrere IP-Adressen durch Leerzeichen getrennt angeben:
nmap 127.0.0.1 127.0.0.2
Scannen eines IP-Bereichs
Sie können einen Bereich von IP-Adressen mit der CIDR-Notation scannen:
nmap 127.0.0.1/30
Dieser Befehl scannt 127.0.0.0 bis 127.0.0.3. Die Ausgabe zeigt:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap scan report for 127.0.0.2
Host is up (0.00015s latency).
All 1000 scanned ports on 127.0.0.2 are closed
Nmap scan report for 127.0.0.3
Host is up (0.00013s latency).
All 1000 scanned ports on 127.0.0.3 are closed
Nmap done: 4 IP addresses (3 hosts up) scanned in 0.92 seconds
Host Discovery Optionen
Ping Scan (-sn)
Manchmal möchten Sie nur wissen, welche Hosts online sind, ohne Ports zu scannen. Der Ping Scan ist dafür perfekt geeignet:
nmap -sn 127.0.0.1/24
Dieser Befehl scannt das gesamte 127.0.0.1/24 Subnetz, führt aber nur Host Discovery ohne Port-Scanning durch. Aufgrund der Ausgabegröße zeigen wir nur einen Ausschnitt:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Nmap scan report for 127.0.0.2
Host is up (0.00013s latency).
Nmap scan report for 127.0.0.3
Host is up (0.00014s latency).
...
Nmap done: 256 IP addresses (256 hosts up) scanned in 2.34 seconds
Überspringen der Host Discovery (-Pn)
Manchmal blockieren Firewalls Ping-Anfragen. Um dies zu umgehen und alle Hosts unabhängig von Ping-Antworten zu scannen, verwenden Sie das Flag -Pn:
nmap -Pn localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:45 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
Timing- und Leistungssteuerung
Nmap bietet verschiedene Timing-Vorlagen, die verschiedene Scan-Parameter anpassen:
-T0: Paranoid - Sehr langsam, wird zur IDS-Vermeidung verwendet-T1: Sneaky - Langsam, wird zur IDS-Vermeidung verwendet-T2: Polite - Verlangsamt sich, um weniger Bandbreite zu verbrauchen-T3: Normal - Standard, gleicht Geschwindigkeit mit Zuverlässigkeit aus-T4: Aggressive - Schneller, geht von einem einigermaßen schnellen und zuverlässigen Netzwerk aus-T5: Insane - Sehr schnell, geht von einem extrem schnellen Netzwerk aus
Versuchen wir einen aggressiven Scan:
nmap -T4 localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
Beachten Sie, dass der Scan etwas schneller abgeschlossen wurde als der Standard-Scan.
Ausgabeformate
Nmap kann Scan-Ergebnisse in verschiedenen Formaten für die spätere Analyse oder Berichterstellung speichern:
Normale Ausgabe (-oN)
Speichern Sie die Scan-Ergebnisse in einem normalen Format in einer Datei:
nmap -oN scan_results.txt localhost
Dieser Befehl speichert die Scan-Ausgabe in scan_results.txt im aktuellen Verzeichnis.
XML-Ausgabe (-oX)
Speichern Sie die Scan-Ergebnisse im XML-Format, was für die Analyse mit anderen Tools nützlich ist:
nmap -oX scan_results.xml localhost
Alle Formate (-oA)
Speichern Sie die Scan-Ergebnisse in allen Formaten (normal, XML und grepable):
nmap -oA scan_results localhost
Dies erstellt drei Dateien: scan_results.nmap, scan_results.xml und scan_results.gnmap.
Untersuchen wir den Inhalt der normalen Ausgabedatei:
cat scan_results.txt
Ausgabe:
## Nmap 7.80 scan initiated Thu Sep 14 16:55:23 2023 as: nmap -oN scan_results.txt localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
## Nmap done at Thu Sep 14 16:55:23 2023 -- 1 IP address (1 host up) scanned in 0.12 seconds
Praktische Scan-Strategie
Kombinieren wir das Gelernte, um eine praktische Scan-Strategie für einen umfassenden Scan zu erstellen:
sudo nmap -sS -sV -O -T4 -oA comprehensive_scan localhost
Dieser Befehl:
- Verwendet SYN Stealth Scan (-sS)
- Erkennt Service-Versionen (-sV)
- Versucht OS Detection (-O)
- Verwendet aggressives Timing (-T4)
- Speichert Ergebnisse in allen Formaten (-oA)
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.42 seconds
Jetzt können Sie die umfassenden Scan-Ergebnisse in einer der Ausgabedateien anzeigen:
ls comprehensive_scan.*
Ausgabe:
comprehensive_scan.gnmap comprehensive_scan.nmap comprehensive_scan.xml
Ethische Überlegungen
Denken Sie daran, dass Netzwerk-Scanning nur in Netzwerken durchgeführt werden sollte, die Sie besitzen oder für die Sie eine ausdrückliche Erlaubnis zum Scannen haben. Unbefugtes Scannen kann sein:
- In vielen Gerichtsbarkeiten illegal
- Von Netzwerkadministratoren als feindselige Handlung angesehen
- Möglicherweise störend für Netzwerkdienste
In dieser Laborumgebung haben wir nur localhost gescannt, was immer zulässig ist, da es sich um Ihr eigenes System handelt.
Sie haben nun verschiedene Netzwerk-Scanning-Strategien, Timing-Kontrollen und Ausgabeformate kennengelernt. Sie verfügen über das gesamte grundlegende Wissen, das Sie benötigen, um effektive Netzwerk-Reconnaissance mit Nmap durchzuführen.
Script-Scanning und gezielte Service-Analyse
In diesem Schritt werden wir die leistungsstarke Scripting Engine (NSE) von Nmap untersuchen und lernen, wie man eine gezielte Service-Analyse durchführt. NSE-Skripte erweitern die Funktionalität von Nmap, indem sie detailliertere Scans für bestimmte Dienste und Schwachstellen ermöglichen.
Einführung in die Nmap Scripting Engine (NSE)
Die Nmap Scripting Engine ermöglicht es Benutzern, Skripte zu schreiben und auszutauschen, um eine Vielzahl von Netzwerkaufgaben zu automatisieren. Nmap wird mit Hunderten von vorgefertigten Skripten geliefert, die in verschiedene Gruppen eingeteilt sind:
auth: Authentifizierungsbezogene Skriptedefault: Skripte, die standardmäßig mit-sCausgeführt werdendiscovery: Host- und Service-Discoveryexploit: Versuche, Schwachstellen auszunutzenmalware: Malware und Backdoors erkennensafe: Sichere, nicht-intrusive Skriptevuln: Skripte zur Erkennung von Schwachstellen
Ausführen von Standard-Skripten (-sC)
Das Flag -sC führt den Standardsatz von Skripten aus, die im Allgemeinen sicher sind und nützliche Informationen liefern:
nmap -sC localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
|_mysql-info: ERROR: Script execution failed (use -d to debug)
Nmap done: 1 IP address (1 host up) scanned in 3.42 seconds
Beachten Sie, wie die Skripte zusätzliche Informationen über jeden Dienst bereitgestellt haben, wie z. B. SSH-Hostschlüssel und HTTP-Seitentitel.
Ausführen bestimmter Skripte
Sie können bestimmte Skripte mit dem Flag --script ausführen, gefolgt vom Skriptnamen oder der Kategorie:
nmap --script=http-title localhost
Dies führt nur das Skript http-title aus, das den Titel von HTTP-Seiten abruft:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds
Ausführen von Skripten nach Kategorie
Sie können alle Skripte in einer bestimmten Kategorie ausführen:
nmap --script=discovery localhost
Dies führt alle Discovery-Skripte aus, die eine Fülle von Informationen über Netzwerkdienste liefern können (Ausgabe für die Kürze gekürzt):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http
|_http-favicon: Unknown favicon MD5: 6D33949773573A11BEBE0D20AC1B7967
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
| cups-info:
| CUPS Server:
| Server: CUPS/2.3 IPP/2.1
|_ Authentication-Method: Basic
| http-methods:
|_ Supported Methods: GET HEAD OPTIONS POST
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
| mysql-info:
| Protocol: 10
| Version: 8.0.30-0ubuntu0.20.04.2
| Thread ID: 15
| Capabilities flags: 65535
| Some Capabilities: ConnectWithDatabase, SupportsLoadDataLocal, SupportsTransactions, DontAllowDatabaseTableColumn, Support41Auth, InteractiveClient, Speaks41ProtocolOld, FoundRows, IgnoreSigpipes, ODBCClient, SwitchToSSLAfterHandshake, IgnoreSpaceBeforeParenthesis, LongColumnFlag, Speaks41ProtocolNew, SupportsMultipleStatments, LongPassword, SupportsCompression, SupportsMultipleResults, SupportsAuthPlugins
| Status: Autocommit
| Salt: \x7FeL)\x0C\x5C#S\x06N%\x1E\x7EYaC
|_ Auth Plugin Name: caching_sha2_password
Nmap done: 1 IP address (1 host up) scanned in 5.28 seconds
Kombinieren von Script-Scanning mit Service-Erkennung
Für die umfassendsten Ergebnisse kombinieren Sie Script-Scanning mit Service-Erkennung:
nmap -sV -sC localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp CUPS 2.3
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
|_mysql-info: ERROR: Script execution failed (use -d to debug)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.03 seconds
Gezielte Service-Analyse
Konzentrieren wir uns auf die detailliertere Analyse bestimmter Dienste.
Analyse von HTTP-Diensten
Um HTTP-Dienste detailliert zu analysieren, können wir die http-*-Skripte verwenden:
nmap --script="http-*" -p 80 localhost
Dies führt alle HTTP-bezogenen Skripte gegen Port 80 aus:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT STATE SERVICE
80/tcp open http
|_http-chrono: Request times for /; avg: 32.68ms; min: 32.68ms; max: 32.68ms
|_http-comments-displayer: Couldn't find any comments.
|_http-date: Thu, 14 Sep 2023 17:30:24 GMT; +6s from local time.
|_http-devframework: Couldn't determine the underlying framework or CMS. Try increasing 'httpspider.maxpagecount' value to spider more pages.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-favicon: Unknown favicon MD5: 6D33949773573A11BEBE0D20AC1B7967
|_http-feed: Couldn't find any feeds.
|_http-fetch: Please enter the complete path of the directory to save data in.
|_http-generator: Couldn't find any generator in the HTML headers and body
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-mobileversion-checker: No mobile version detected.
|_http-referer-checker: Couldn't find any cross-domain scripts.
|_http-security-headers:
| http-server-header:
| Apache/2.4.41
|_ Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-traceroute: ERROR: Script execution failed (use -d to debug)
|_http-useragent-tester:
|_http-xssed: No previously reported XSS vuln.
Nmap done: 1 IP address (1 host up) scanned in 2.31 seconds
Analyse von SSH-Diensten
In ähnlicher Weise können wir SSH-Dienste analysieren:
nmap --script="ssh-*" -p 22 localhost
Ausgabe:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
|_ssh-run: ERROR: Script execution failed (use -d to debug)
Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
Schwachstellen-Scanning
Nmap enthält Skripte, die potenzielle Schwachstellen erkennen können. Die Verwendung der Kategorie vuln kann helfen, Sicherheitsprobleme zu identifizieren:
nmap --script=vuln localhost
Dies kann einige Zeit dauern, da verschiedene Schwachstellenprüfungen durchgeführt werden. Die Ausgabe könnte so aussehen:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: LIKELY VULNERABLE
| IDs: CVE:CVE-2007-6750
| Slowloris tries to keep many connections to the target web server open and hold
| them open as long as possible. It accomplishes this by opening connections to
| the target web server and sending a partial request. By doing so, it starves
| the http server's resources causing Denial Of Service.
|
| Disclosure date: 2009-09-17
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_ http://ha.ckers.org/slowloris/
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 87.28 seconds
In diesem Fall hat Nmap festgestellt, dass der Apache-Webserver möglicherweise anfällig für einen Slowloris-DoS-Angriff ist. Diese Informationen können für die Sicherung Ihrer Systeme wertvoll sein.
Erstellen eines umfassenden Scan-Berichts
Kombinieren wir nun alles, was wir gelernt haben, um einen umfassenden Sicherheitsbericht zu erstellen:
sudo nmap -sS -sV -O -sC --script=vuln -T4 -oA comprehensive_security_report localhost
Dieser Befehl:
- Verwendet SYN Stealth Scan (-sS)
- Erkennt Service-Versionen (-sV)
- Versucht OS Detection (-O)
- Führt Standard-Skripte aus (-sC)
- Führt Skripte zur Schwachstellenerkennung aus (--script=vuln)
- Verwendet aggressives Timing (-T4)
- Speichert Ergebnisse in allen Formaten (-oA)
Die Ausgabe ist umfassend und kann einige Zeit in Anspruch nehmen. Nach Abschluss erhalten Sie einen detaillierten Sicherheitsbericht in verschiedenen Formaten (normal, XML und grepable), auf den Sie sich für die Sicherheitsanalyse beziehen können.
In diesem Schritt haben Sie gelernt, wie Sie die Scripting Engine von Nmap verwenden, um detaillierte Informationen über Dienste zu sammeln und potenzielle Schwachstellen zu erkennen. Diese erweiterten Techniken sind für umfassende Netzwerksicherheitsbewertungen unerlässlich.
Zusammenfassung
In diesem Lab haben Sie die Grundlagen der Verwendung von Nmap für Netzwerk-Reconnaissance und Sicherheitsbewertung gelernt. Sie verstehen jetzt:
- Wie man Nmap installiert und grundlegendes Scannen von Hosts und Ports durchführt
- Wie man wichtige Nmap-Scanning-Flags für verschiedene Arten von Scans verwendet
- Wie man effektive Scanning-Strategien implementiert und Timing-Parameter steuert
- Wie man die Nmap Scripting Engine für detaillierte Service-Analyse und Schwachstellenerkennung nutzt
Diese Fähigkeiten bilden eine Grundlage für Netzwerksicherheitsbewertungen und sind für Cybersicherheitsexperten unerlässlich. Denken Sie daran, diese Techniken stets verantwortungsvoll und nur in Netzwerken zu verwenden, für die Sie eine Scan-Erlaubnis haben.
Wenn Sie Ihre Cybersicherheitsreise fortsetzen, sollten Sie in Erwägung ziehen, erweiterte Nmap-Funktionen wie die Entwicklung benutzerdefinierter NSE-Skripte, Firewall-Vermeidungstechniken und die Integration mit anderen Sicherheitstools zu erkunden. Regelmäßiges Üben mit Nmap wird Ihnen helfen, sicherer darin zu werden, potenzielle Sicherheitsprobleme in Netzwerkumgebungen zu identifizieren.



