Grundlegende Scans und Zielauswahl:
Beispiel für einen komplexen Scan:
Bash
Dieser Befehl führt einen SYN-Scan durch, ermittelt die Version von Diensten, erkennt das Betriebssystem, scannt die Ports 21-443 und 8080, führt verschiedene HTTP-Scripts aus, scannt die Top 1000 Ports, verwendet 4 Threads und speichert die Ergebnisse in einer XML-Datei.
Spezielle Scans und Optionen:
Vulnerability Scans
Datenbanken
Ausgabeformate und Berichterstellung
Nmap bietet verschiedene Ausgabeformate, um die Ergebnisse von Scans in einer für Sie leicht zu verwendenden Form zu speichern und zu analysieren.
Bash
Dieser Befehl führt einen umfassenden Scan eines Webservers durch und speichert die Ergebnisse sowohl im XML-Format (webserver.xml) als auch im Grepable-Format (webserver.gnmap).
Berichterstellung & Datenbank Update mit NSE-Scripts
Bash
Dieser Befehl aktualisiert zunächst die Script-Datenbank und führt dann einen Scan durch, bei dem detaillierte Informationen über die Ausführung des
-Scripts ausgegeben werden.
Erklärung von Decoys
Decoy-Hosts sind gefälschte Hosts, die während eines Nmap-Scans hinzugefügt werden. Sie dienen dazu, die wahre Quelle des Scans zu verschleiern und es dem Ziel zu erschweren, den eigentlichen Scanner zu identifizieren.
- Große Netzwerke:
- : Scannt ein ganzes Subnetz mit SYN-Scan, Betriebssystemerkennung und ist relativ schnell.Code:
nmap -sS -O 192.168.1.0/24
- : Liest eine Liste von IP-Adressen oder Hostnamen aus einer Datei ein und scannt diese.Code:
nmap -iL targets.txt
- Exakte Hosts:
- : Scannt nur die Ports 80 (HTTP) und 443 (HTTPS) auf google.com.Code:
nmap -p 80,443 google.com
- Exklusive Scans:
- : Scannt alle Ports außer 80 und 443.Code:
nmap -p- 80,443 <target>
- Top 100 Ports:
- : Scannt die 100 meistgenutzten Ports.Code:
nmap -F <target>
- Stealth-Scans:
- : Führt einen NULL, FIN und XMAS Scan durch, um Stealth zu erhöhen.Code:
nmap -sN -sF -sX <target>
- UDP-Scans:
- : Scannt die UDP-Ports 53 (DNS), 67 (DHCP) und 161 (SNMP).Code:
nmap -sU -p 53,67,161 <target>
- Detaillierte Versionen:
- : Führt einen aggressiven Scan durch, um detaillierte Versionen von Diensten und das Betriebssystem zu ermitteln.Code:
nmap -sV -A <target>
- Script-basierte Erkennung:
- : Ermittelt den HTTP-Titel und den Server der Webseite.Code:
nmap --script http-title,http-server <target>
- Fingerprinting:
- : Führt eine Betriebssystemerkennung durch, ohne vorher einen Ping zu senden.Code:
nmap -O -Pn <target>
- Vulnerabilitäts-Scans:
- : Führt alle verfügbaren Vulnerability-Scripts aus.Code:
nmap --script vuln <target>
- Webanwendungen:
- : Überprüft auf Web Application Firewalls und Cross-Site Request Forgery.Code:
nmap --script http-waf-detect,http-csrf <target>
- Netzwerk-Zeitprotokoll:
- : Scannt NTP-Server (Network Time Protocol).Code:
nmap -sT -p 123 <target>
- SNMP:
- : Ruft die Systembeschreibung eines SNMP-fähigen Gerätes ab.Code:
nmap -sU -p 161 --script snmp-sysdescr <target>
- Multi-Threading:
- : Verwendet 4 Threads für parallele Scans.Code:
-T4
- Ausgabeformate:
- : Speichert die Ergebnisse im XML-Format.Code:
-oX output.xml
- : Speichert die Ergebnisse im Grepable-Format.Code:
-oG output.gnmap
- Timing:
- : Wiederholt Scans, um falsche Negative zu reduzieren.Code:
-R
- : Legt die maximale Anzahl von Wiederholungen fest.Code:
--max-retries <number>
Beispiel für einen komplexen Scan:
Bash
Code:
nmap -sS -sV -O -p 21-443,8080 --script http-title,http-server,http-useragent,http-vuln* --top-ports 1000 -T4 -oX output.xml <target>
Dieser Befehl führt einen SYN-Scan durch, ermittelt die Version von Diensten, erkennt das Betriebssystem, scannt die Ports 21-443 und 8080, führt verschiedene HTTP-Scripts aus, scannt die Top 1000 Ports, verwendet 4 Threads und speichert die Ergebnisse in einer XML-Datei.
Spezielle Scans und Optionen:
- Vulnerabilitäts-Scans:
- : Führt alle verfügbaren Vulnerability-Scripts aus.Code:
nmap --script vuln <target>
- Beispiele für spezifische Schwachstellen:
- : Überprüft auf die Log4j-Schwachstelle (CVE-2021-44228).Code:
nmap --script http-vuln-cve2021-44228 <target>
- : Überprüft auf die EternalBlue-Schwachstelle (CVE-2017-0144).Code:
nmap --script smb-vuln-ms17-010 <target>
- Webanwendungen:
- : Sammelt umfassende Informationen über eine Webanwendung.Code:
nmap --script http-title,http-server,http-useragent,http-waf-detect,http-csrf <target>
- CMS-Erkennung:
- : Ermittelt, ob eine Website auf WordPress oder Joomla basiert.Code:
nmap --script http-wordpress,http-joomla <target>
- Netzwerk-Zeitprotokoll:
- : Scannt NTP-Server (Network Time Protocol).Code:
nmap -sT -p 123 <target>
- SNMP:
- : Ruft Systembeschreibung und Standort eines SNMP-fähigen Gerätes ab.Code:
nmap -sU -p 161 --script snmp-sysdescr,snmp-syslocation <target>
- IoT-Geräte:
- : Scannt auf typische IoT-Dienste und Protokolle.Code:
nmap --script http-title,http-useragent,telnet,ssh,upnp <target>
- Cloud-Umgebungen:
- : Ermittelt Informationen über Instanzen in verschiedenen Cloud-Umgebungen.Code:
nmap --script aws-ec2,azure-vm,gcp-instance <target>
- Timing-Optionen:
- : Paranoid Scan (sehr langsam, aber gründlich)Code:
-T0
- : Aggressive Scan (sehr schnell, aber möglicherweise weniger genau)Code:
-T5
- : Legt die minimale Paketrate pro Sekunde fest.Code:
--min-rate <rate>
- Rate Limiting:
- : Begrenzt die maximale Paketrate pro Sekunde.Code:
--max-rate <rate>
- Ausgabeformate:
- : XML-AusgabeformatCode:
-oX <file>
- : Grepable AusgabeformatCode:
-oG <file>
- : Normales AusgabeformatCode:
-oN <file>
- : Alle AusgabeformateCode:
-oA <file>
- Berichterstellung:
- : Aktualisiert die Script-Datenbank.Code:
nmap --script-updatedb
- : Zeigt detaillierte Informationen über die Ausführung von Scripts.Code:
nmap --script-trace
- DNS-Auflösung:
- : Deaktiviert DNS-Auflösung.Code:
-n
- Proxy-Verwendung:
- : Verwendet einen HTTP-Proxy.Code:
-proxy <proxy>
- Spoofing:
- : Verwendet Decoys, um die wahre Quelle des Scans zu verschleiern.Code:
-D <decoy>
- Greifbare Ausgabe:
- : Gibt die Ausgabe direkt auf der Konsole im Grepable-Format aus.Code:
-oG - <target>
- Umfassender Webserver-Scan:
Bash
Code:nmap -sS -sV -O -p 80,443 --script http-title,http-server,http-useragent,http-vuln*,http-csrf,http-waf-detect -T4 -oX webserver.xml <target>
- IoT-Netzwerk-Scan:
Bash
Code:nmap -sS -sU -p 21,22,80,443,8080,8443 --script http-title,http-useragent,telnet,ssh,upnp,smb-enum-users,smb-enum-shares -T2 192.168.1.0/24
- Cloud-Umgebungs-Scan:
Bash
Code:nmap -sS -sV -O --script aws-ec2,azure-vm,gcp-instance,http-title 10.0.0.0/16
Vulnerability Scans
- Umfassender Vulnerability-Scan mit NSE-Scripts:
Bash
Code:nmap -sS -sV -O -p- --script vuln* <target>
Dieser Befehl führt einen umfassenden Scan durch und nutzt alle verfügbaren Vulnerability-Scripts, um bekannte Schwachstellen zu identifizieren.
Webanwendungen
- Umfassender Webanwendungsscan:
Bash
Code:nmap -sS -sV -O -p 80,443,8080 --script http-title,http-server,http-useragent,http-vuln*,http-csrf,http-waf-detect,http-sitemap-generator -T4 -oX webserver.xml <target>
Dieser Befehl scannt die gängigsten Webserver-Ports und führt eine Vielzahl von Scripts aus, um Schwachstellen wie SQL-Injection, Cross-Site-Scripting (XSS), Cross-Site-Request-Forgery (CSRF) und andere zu identifizieren.
- Spezifische Schwachstellen:
- SQL-Injection:
Code:nmap --script http-sql-injection <target>
- XSS:
Code:nmap --script http-xss <target>
- Datei-Einschlüsse:
Code:nmap --script http-lfi,http-rfi <target>
- SQL-Injection:
- Umfassender Webanwendungsscan:
- SSH:
Bash
Code:nmap -sS -sV -O -p 22 --script ssh-auth,ssh-hostkey,ssh-vuln* <target>
Dieser Befehl scannt SSH-Server auf schwache Passwörter, unsichere Konfigurationen und bekannte Schwachstellen.
- FTP:
Bash
Code:nmap -sS -sV -O -p 21 --script ftp-anon,ftp-write,ftp-bounce <target>
Dieser Befehl überprüft FTP-Server auf anonyme Zugänge, Schreibberechtigungen und mögliche Bounce-Angriffe.
- SMB:
Bash
Code:nmap -sS -sV -O -p 445 --script smb-vuln*,smb-enum-users,smb-enum-shares <target>
Dieser Befehl scannt SMB-Server auf bekannte Schwachstellen, enumeriert Benutzer und Freigaben.
- SNMP:
Bash
Code:nmap -sS -sV -O -p 161 --script snmp-sysdescr,snmp-syslocation,snmp-brute <target>
Dieser Befehl sammelt Informationen über SNMP-fähige Geräte und versucht, sich mit Standard-Community-Strings anzumelden.
- SSH:
- Kubernetes:
Code:nmap -sS -sV -O -p 6443,10250 <Kubernetes-Master>
- Docker:
Code:nmap -sS -sV -O -p 2375,2376 <Docker-Host>
- gRPC:
Code:nmap -sS -sV -O -p 50051 --script grpc-info <target>
- HTTP/3:
Code:nmap -sS -sV -O -p 443 --script http-title,http-server,http-useragent,http-vuln* --http-method HEAD --http-version 3 <target>
- WireGuard:
Code:nmap -sS -sV -O -p 51820 --script wireguard-info <target>
Datenbanken
- MongoDB:
Code:nmap -sS -sV -O -p 27017 --script mongodb-info <target>
- Oracle:
Code:nmap -sS -sV -O -p 1521 --script oracle-tns-version <target>
- Cassandra:
Code:nmap -sS -sV -O -p 9042 --script cassandra-info <target>
- LDAP:
Code:nmap -sS -sV -O -p 389,636 --script ldap-enum,ldap-userenum <target>
- NIS:
Code:nmap -sS -sV -O -p 20,21 --script nis-domain <target>
- IoT-Scan:
Code:nmap -sS -sU -p 21,22,80,443,8080,8443 --script http-title,http-useragent,telnet,ssh,upnp,smb-enum-users,smb-enum-shares -T2 192.168.1.0/24
- Spezifische IoT-Protokolle: MQTT, CoAP, Modbus
- Modbus:
Code:nmap -sS -sV -O -p 502 --script modbus-info <target>
- OPC UA:
Code:nmap -sS -sV -O -p 4840 --script opc-ua-info <target>
- AWS:
Code:nmap --script aws-ec2 <target>
- Azure:
Code:nmap --script azure-vm <target>
- GCP:
Code:nmap --script gcp-instance <target>
- Kombination von Nmap und anderen Tools:
- Nmap für die Port-Erkennung, Nessus für detaillierte Schwachstellenanalysen:
Bash
Code:nmap -sS -sV -O -p- -oX nmap_output.xml <target>
Die Ausgabe von Nmap kann dann als Eingabe für Nessus verwendet werden, um detaillierte Schwachstellenberichte zu erstellen.
- Nmap für die Port-Erkennung, Nessus für detaillierte Schwachstellenanalysen:
- Erkennung von offenen Relays:
Bash
Code:nmap -sS -p 25 --script smtp-vrfy <target>
Dieser Scan überprüft, ob ein SMTP-Server offene Relais erlaubt.
- Identifizierung von Default-Passwörtern:
Bash
Dieser Scan versucht, sich mit Standardpasswörtern bei SSH-Servern anzumelden.Code:nmap -sS -sV -O -p 22 --script ssh-auth <target>
- Aufdeckung von versteckten Diensten:
Bash
Dieser Scan sucht nach SNMP-Diensten in einem Subnetz, die möglicherweise nicht über Firewall-Regeln geschützt sind.Code:nmap -sU -p 161,162 --script snmp-sysdescr <target>/24
- Stealth-Scans mit Decoys:
Bash
Code:nmap -sS -D R:192.168.1.100,192.168.1.101 -p 80,443 --randomize-hosts --spoof-mac <MAC-Adresse> <target>
- Zeitlich versetzte Scans:
Bash
Code:for i in {1..24}; do nmap -sS -sV -O -p- --script vuln* -T4 -oX scan_$i <target>; sleep 3600; done
- Fuzzy-Scanning:
Bash
Code:nmap -sF -sN -sX <target>
Ausgabeformate und Berichterstellung
Nmap bietet verschiedene Ausgabeformate, um die Ergebnisse von Scans in einer für Sie leicht zu verwendenden Form zu speichern und zu analysieren.
- -oX <Datei>: Speichert die Ergebnisse im XML-Format. Dieses Format ist besonders gut geeignet für die automatisierte Verarbeitung der Ergebnisse, beispielsweise in Skripten oder durch andere Tools.
- -oG <Datei>: Speichert die Ergebnisse im Grepable-Format. Dieses Format ist für die einfache Suche nach bestimmten Informationen in den Ergebnissen optimiert und eignet sich gut für die Verwendung mit Tools wie grep oder awk.
- -oN <Datei>: Speichert die Ergebnisse im normalen Ausgabeformat. Dies ist das Standardformat und bietet eine übersichtliche Darstellung der Ergebnisse am Terminal.
- -oA <Datei>: Speichert die Ergebnisse in allen verfügbaren Formaten.
Bash
Code:
nmap -sS -sV -O -p 80,443 --script http-title,http-server,http-useragent,http-vuln* -T4 -oX webserver.xml -oG webserver.gnmap <target>
Dieser Befehl führt einen umfassenden Scan eines Webservers durch und speichert die Ergebnisse sowohl im XML-Format (webserver.xml) als auch im Grepable-Format (webserver.gnmap).
Berichterstellung & Datenbank Update mit NSE-Scripts
- --script-updatedb: Aktualisiert die Datenbank mit den neuesten NSE-Scripts. Es ist wichtig, diese Datenbank regelmäßig zu aktualisieren, um von neuen Funktionen und Verbesserungen zu profitieren.
- --script-trace: Zeigt detaillierte Informationen über die Ausführung von NSE-Scripts an. Dies kann hilfreich sein, um Probleme bei der Ausführung von Scripts zu beheben oder um das Verhalten von Scripts besser zu verstehen.
Bash
Code:
nmap --script-updatedb
nmap -sS -sV -O -p 80 --script http-title --script-trace <target>
Dieser Befehl aktualisiert zunächst die Script-Datenbank und führt dann einen Scan durch, bei dem detaillierte Informationen über die Ausführung des
Code:
http-title
Erklärung von Decoys
Decoy-Hosts sind gefälschte Hosts, die während eines Nmap-Scans hinzugefügt werden. Sie dienen dazu, die wahre Quelle des Scans zu verschleiern und es dem Ziel zu erschweren, den eigentlichen Scanner zu identifizieren.
- Syntax:
Code:-D R:<decoy1>,<decoy2>...
- Typen:
- Random:
Fügt zufällige IP-Adressen als Decoys hinzu.Code:-D R
- Spezifisch:
Gibt explizite IP-Adressen als Decoys an.Code:-D <IP1>,<IP2>
- Random:
- Zweck:
- Verwirrung stiften: Durch die Vielzahl an scheinbaren Quellen wird es schwieriger, den eigentlichen Scanner zu lokalisieren.
- Intrusion Detection Systems (IDS) täuschen: Decoys können IDS davon abhalten, einen Angriff zu erkennen.
- False Positives erzeugen: Durch die Decoys können falsche Positivmeldungen in den Logs des Zielsystems erzeugt werden.
- Verwirrung stiften: Durch die Vielzahl an scheinbaren Quellen wird es schwieriger, den eigentlichen Scanner zu lokalisieren.