Nmap Tutorial: Alle wichtigen Befehle für Penetrationstester - lakandor - 13.10.2024
Grundlegende Scans und Zielauswahl:- Große Netzwerke:
Code: nmap -sS -O 192.168.1.0/24
: Scannt ein ganzes Subnetz mit SYN-Scan, Betriebssystemerkennung und ist relativ schnell.
Code: nmap -iL targets.txt
: Liest eine Liste von IP-Adressen oder Hostnamen aus einer Datei ein und scannt diese.
- Exakte Hosts:
Code: nmap -p 80,443 google.com
: Scannt nur die Ports 80 (HTTP) und 443 (HTTPS) auf google.com.
- Exklusive Scans:
Code: nmap -p- 80,443 <target>
: Scannt alle Ports außer 80 und 443.
Port-Scans:- Top 100 Ports:
- : Scannt die 100 meistgenutzten Ports.
- Stealth-Scans:
Code: nmap -sN -sF -sX <target>
: Führt einen NULL, FIN und XMAS Scan durch, um Stealth zu erhöhen.
- UDP-Scans:
Code: nmap -sU -p 53,67,161 <target>
: Scannt die UDP-Ports 53 (DNS), 67 (DHCP) und 161 (SNMP).
Dienst- und Betriebssystemerkennung:- Detaillierte Versionen:
Code: nmap -sV -A <target>
: Führt einen aggressiven Scan durch, um detaillierte Versionen von Diensten und das Betriebssystem zu ermitteln.
- Script-basierte Erkennung:
Code: nmap --script http-title,http-server <target>
: Ermittelt den HTTP-Titel und den Server der Webseite.
- Fingerprinting:
Code: nmap -O -Pn <target>
: Führt eine Betriebssystemerkennung durch, ohne vorher einen Ping zu senden.
Spezielle Scans und Optionen:- Vulnerabilitäts-Scans:
Code: nmap --script vuln <target>
: Führt alle verfügbaren Vulnerability-Scripts aus.
- Webanwendungen:
Code: nmap --script http-waf-detect,http-csrf <target>
: Überprüft auf Web Application Firewalls und Cross-Site Request Forgery.
- Netzwerk-Zeitprotokoll:
Code: nmap -sT -p 123 <target>
: Scannt NTP-Server (Network Time Protocol).
- SNMP:
Code: nmap -sU -p 161 --script snmp-sysdescr <target>
: Ruft die Systembeschreibung eines SNMP-fähigen Gerätes ab.
Optimierungen:- Multi-Threading:
- : Verwendet 4 Threads für parallele Scans.
- Ausgabeformate:
- : Speichert die Ergebnisse im XML-Format.
- : Speichert die Ergebnisse im Grepable-Format.
- Timing:
- : Wiederholt Scans, um falsche Negative zu reduzieren.
Code: --max-retries <number>
: Legt die maximale Anzahl von Wiederholungen fest.
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:
Code: nmap --script vuln <target>
: Führt alle verfügbaren Vulnerability-Scripts aus.
- Beispiele für spezifische Schwachstellen:
Code: nmap --script http-vuln-cve2021-44228 <target>
: Überprüft auf die Log4j-Schwachstelle (CVE-2021-44228).
Code: nmap --script smb-vuln-ms17-010 <target>
: Überprüft auf die EternalBlue-Schwachstelle (CVE-2017-0144).
- Webanwendungen:
Code: nmap --script http-title,http-server,http-useragent,http-waf-detect,http-csrf <target>
: Sammelt umfassende Informationen über eine Webanwendung.
- CMS-Erkennung:
Code: nmap --script http-wordpress,http-joomla <target>
: Ermittelt, ob eine Website auf WordPress oder Joomla basiert.
- Netzwerk-Zeitprotokoll:
Code: nmap -sT -p 123 <target>
: Scannt NTP-Server (Network Time Protocol).
- SNMP:
Code: nmap -sU -p 161 --script snmp-sysdescr,snmp-syslocation <target>
: Ruft Systembeschreibung und Standort eines SNMP-fähigen Gerätes ab.
- IoT-Geräte:
Code: nmap --script http-title,http-useragent,telnet,ssh,upnp <target>
: Scannt auf typische IoT-Dienste und Protokolle.
- Cloud-Umgebungen:
Code: nmap --script aws-ec2,azure-vm,gcp-instance <target>
: Ermittelt Informationen über Instanzen in verschiedenen Cloud-Umgebungen.
Timing und Leistung:- Timing-Optionen:
- : Paranoid Scan (sehr langsam, aber gründlich)
- : Aggressive Scan (sehr schnell, aber möglicherweise weniger genau)
- : Legt die minimale Paketrate pro Sekunde fest.
- Rate Limiting:
- : Begrenzt die maximale Paketrate pro Sekunde.
Ausgabe und Berichte:- Ausgabeformate:
- : XML-Ausgabeformat
- : Grepable Ausgabeformat
- : Normales Ausgabeformat
- : Alle Ausgabeformate
- Berichterstellung:
Code: nmap --script-updatedb
: Aktualisiert die Script-Datenbank.
- : Zeigt detaillierte Informationen über die Ausführung von Scripts.
Weitere Nützliche Optionen:- DNS-Auflösung:
- : Deaktiviert DNS-Auflösung.
- Proxy-Verwendung:
- : Verwendet einen HTTP-Proxy.
- Spoofing:
- : Verwendet Decoys, um die wahre Quelle des Scans zu verschleiern.
- Greifbare Ausgabe:
- : Gibt die Ausgabe direkt auf der Konsole im Grepable-Format aus.
Beispiele für komplexe Scans:- 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>
Netzwerkdienste
- 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.
Zusätzliche Protokolle und Dienste
- 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>
Verzeichnisdienste- 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-Geräte- 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
Industrielle Steuerungssysteme (ICS)- 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>
Cloud-Umgebungen- 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.
Pentesting-Szenarien- 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
Code: nmap -sS -sV -O -p 22 --script ssh-auth <target>
Dieser Scan versucht, sich mit Standardpasswörtern bei SSH-Servern anzumelden.
- Aufdeckung von versteckten Diensten:
Bash
Code: nmap -sU -p 161,162 --script snmp-sysdescr <target>/24
Dieser Scan sucht nach SNMP-Diensten in einem Subnetz, die möglicherweise nicht über Firewall-Regeln geschützt sind.
Erweiterte Techniken- 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.
Beispiel:
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.
Beispiel:
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
-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.- Syntax:
Code: -D R:<decoy1>,<decoy2>...
- Typen:
- Random:
Fügt zufällige IP-Adressen als Decoys hinzu.
- Spezifisch:
Gibt explizite IP-Adressen als Decoys an.
- 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.
Wichtig: Die Verwendung von Decoys sollte ethisch vertretbar sein und nur in autorisierten Umgebungen erfolgen.
|