Was ist überhaupt nmap?
nmap steht für Network Mapper und ist ein Tool zum Scannen von Netzwerken und zur Erkennung von Hosts, das bei verschiedenen Schritten von Penetrationstests sehr nützlich ist. Nmap ist ein freies, quelloffenes und vielseitiges Tool, welches auf vielen verschiedenen Betriebssystemen wie Windows, Linux, BSD, etc. ausgeführt werden kann.
Viele System- und Netzwerkadministratoren nutzen es für Routineaufgaben wie Netzwerkinventarisierung, Verwaltung von Diensten, Upgrade-Planung und Überwachung der Betriebszeit von Hosts oder Diensten.
Für welche Zwecke kann nmap verwendet werden?
...um die aktiven Hosts im Netzwerk zu erkennen (Host Discovery)
...um offene Ports auf dem Host aufzuspüren (Port Discovery oder Enumeration)
...um die Software und die Version des jeweiligen Ports zu erkennen (Service Discovery)
...um das Betriebssystem, die Hardware-Adresse (MAC-Adresse) und die Software-Version zu ermitteln
...für Erkennung von Schwachstellen und Sicherheitslücken (nmap-Skripte)
nmap Scanverfahren
TCP SYN-Scan: Standard-Scan. Der Vorteil dieses Scans ist, dass er die Verbindungen nicht unterbricht, was ihn diskret macht. Er sendet ein SYN-Paket und wartet auf eine Antwort, als ob er eine Verbindung öffnen wollte.
Eine SYN/ACK-Antwort zeigt an, dass der Port zuhört (offen ist), während ein RST (Reset) anzeigt, dass er nicht zuhört oder gefiltert ist.
TCP Connect Scan: Er stellt eine Verbindung mit dem entfernten Rechner her, was mehr "Lärm" verursacht.
UDP-Scan: Obwohl die meisten Dienste auf TCP basieren, werden auch UDP-Dienste häufig verwendet. DNS, SNMP oder DHCP sind die gängigsten Beispiele. Der UDP-Scan kann mit einem TCP-Scan kombiniert werden.
TCP ACK-Scan: Er wird verwendet, um Firewall-Regelsätze zu erstellen und festzustellen, ob sie zustandsabhängig sind oder nicht und welche Ports gefiltert werden.
TCP Idle Scan: Hierbei werden Pakete an ein Ziel gesendet, wobei eine gefälschte IP-Adresse verwendet wird. Die Geräte, die für diese Art von Scan verwendet werden, heißen Zombies.
Hilfreiche Syntax für verschiedene Scanmöglichkeiten
Scan-Typen
-sS / sT / sA / sW / sM > Scannt TCP SYN/Connect/ACK/Windows/Maimon
-sN / sF / sX > Scannt TCP Null, FIN, Xmas
-sU > Scannt UDP
Dienste- und Versionserkennung
-sV > Testet die offenen Ports, um herauszufinden welcher Dienst in welcher Version "dahinter" steckt
-A > Aktiviert Betriebssystem- und Versionserkennung
Spezifizierung der zu scannenden Port
-p <Port-Range> > Scannt die spezifizierten Ports; Beispiel: -p 22; -p 1-1024
-p > Scannt alle Ports
-Pn > Deaktiviert die Erkennung von Hosts und zwingt nmap, jedes System so zu scannen, als ob es aktiv wäre: sehr nützlich, um versteckte Dienste zu entdecken
Reporting
-oX MeinBericht.xml > Der Bericht wird im XML-Format generiert
xsltproc MeinBericht.xml -o MeinBericht.html > Konvertiert den XML Bericht ins HTML-Format
Offene Ports eines Systems finden
Befehl: nmap -v -n <Ziel-IP>
Beschreibung: Wir scannen die mitgegebenen IP-Adresse ohne Namensauflösung (-n) und durch den Schalter -v bekommen wir angezeigt, was Nmap bisher gefunden hat.
-v = verbose (ausführlich)
-n = keine DNS-Namensauflösung
Service Fingerprinting
Befehl: nmap -sV -n <Ziel-IP>
Beschreibung: Scan der genannten Ziel-IP mit entsprechender Versionserkennung (-sV) und keiner Namensauflösung (-n)
-sV = Versionserkennung
-n = keine DNS-Namensauflösung
Service Fingerprinting für bestimmten Port
Befehl: nmap -sV -p 80 <Ziel-IP>
Beschreibung: Scan der genannten Ziel-IP mit entsprechender Versionserkennung für den Port 80 (http)
Kompletter Scan (dauert lange)
Befehl: nmap -p -A -v -sS -U -Pn -sV <Ziel-IP>
TCP/UDP Dienst-Scan
Befehl: nmap -p -v -A -sS -sU <Ziel-IP>
Scannen der 20 meistgenutzten UDP-Ports
Befehl: nmap -sU --top-port 20 <Ziel-IP>