nmap

In Matrix Reloaded scannt Trinity die Matrix mit folgendem Kommando: nmap -v -sS -O 10.2.2.2 So erfährt sie, das der ssh-Port offen ist. Anhand der eingesetzten ssh-Version, die ihr auch von Nmap angezeigt wird, sucht sie ein passendes Exploit. Für den weiteren Angriff benutzt sie das fiktive Tool sshnuke und setzt das root-Passwort auf Z10N0101 (Sie sollten für sich selbst vielleicht ein besseres wählen). Danach deaktiviert sie mit dem Kommando disable grid nodes 21 - 48 wie gewünscht die Stromversorgung und der Film kann weitergehen.


Nmap wurde entwickelt um Systemadministratoren und kuriosen Individuen die Moeglichkeit zu geben, ansprech­bare Systeme und die durch sie bereitgestellten Dienste in großen Netzwerken zu identifizieren.

Nmap benutzt rohe IP-Pakete auf neuartige Weise, um festzustellen, welche Hosts im Netzwerk verfügbar sind, welche Dienste (Anwendungsname und -version) diese Hosts bieten, welche Betriebssysteme (und Versionen davon) darauf laufen, welche Art von Paketfiltern/-Firewalls benutzt werden sowie Dutzende anderer Eigenschaften. Auch wenn Nmap üblicherweise für Sicherheitsüberprüfungen verwendet wird, wird es von vielen Systemen und Netzwerkadministratoren für Routineaufgaben benutzt, z.B. Netzwerkinventarisierung, Verwaltung von Ablaufplänen für Dienstaktualisierungen und die Überwachung von Betriebszeiten von Hosts oder Diensten.

Vorab: TCP-Handshake

Vor der eigentlichen Datenübertragung wird beim TCP-Protokoll zuerst eine Verbindung aufgebaut. Dieser Vorgang wird als Drei-Wege-Handschlag (engl. Tree-Way-Handshake) bezeichnet. Vereinfacht dargestellt sendet ein Client zunächst ein SYN-Paket an einen Server, der auf einem Port einen Dienst bereitstellt. Ist der Port für den Client erreichbar / offen, wird der Server den Empfang bestätigen und damit signalisieren, dass eine Verbindung aufgebaut werden kann. Der Erhalt des SYN-Pakets wird also bestätigt, indem der Server ein SYN/ACK-Paket an den Client zurückschickt. Den Erhalt dieses SYN/ACK-Pakets quittiert der Client durch das Senden eines ACK-Pakets. Die Verbindung zwischen den beiden Systemen ist nun aufgebaut.

nmap installieren

NMap ist verfügbar für: Linux, Windows, Solaris, FreeBSD, OpenBSD, MacOS X und HP-UX.
Die neuste, stabile Version ist unter http://nmap.org/download.html zu finden. Alle Installationsanweisungen sind auf der Seite beschrieben. Da nmap das wohl meist verwendete Netzwerktool ist, gibt es kaum eine Linux Distribution die nmap nicht nativ anbietet. So wird unter ubuntu nmap einfach so nachinstalliert:

sudo apt-get install nmap

nmap verwenden

Die neueste Liste der nmap-Befehle ist immer unter http://nmap.org/data/nmap.usage.txt verfügbar. Sie hilft dabei, sich die am häufigsten benutzten Optionen zu merken, ist aber kein Ersatz für die detaillierte Dokumentation im Rest dieses Scripts. Einige obskure Optionen werden hier nicht einmal erwähnt.

Ein Ziel angeben

nmap unterstützt Adressen im CIDR-Stil.Die CIDR-Notation ist kurz, aber nicht immer flexibel genug. Daher kann man auch mit Wildcards arbeiten. Hier einige Beispiele:

192.168.1.12Scannt genau diese Adresse
192.168.1.1,4,12,123Scannt 4 Rechner
192.*.1.1Scannt Rechner alle B-Class Netze im 192er A-Class Netz, die mit .1 enden
192.168.*.1-200,255Scannt die Rechner alle C-Class Netze von 1-200 und 255
192.168.1.1/16Scannt ein Subnetz

Scangeschwindigkeit

Dei Scangeschwindigkeit pro Rechner ist abhängig von der gewünschten Genauigkeit und der Möglichkeit Das Netzwerk und di eLogdatei der Firewall zu schonen.Wirft ein Zielhost die Meldung „Skipping host localhost … due to host timeout“ zurück, war der Scan zu schnell. Eine Verringerung des Werts kann hier hilfreich sein.

OptionNameGeschwindigkeit
-T1Paranoid300-400 Sekunden pro Port
-T2Sneaky15 Sekunden pro Port
-T3Polite35 Ports pro Sekunde
-T4Aggressive65000 Ports in 100 Sekunden
-T5Insane15 Sekunden für 10000 Ports

Die Suche verwenden

msf> search EternalBlue type:exploitfind every exploit that refers to EternalBlue.
msf> search platform:„Windows XP SP3“ type:exploit -o /root/xpsp3_exploits.csvfind every exploit that applies to Windows XP SP3 and save to xpsp3_exploits.csv.
msf> search Windows/VNC type:payloadfind every VNC payload that applies to Windows.
msf> search Windows/MSSOL type:exploitfind every exploit that can be used against Microsoft SQL running on Windows.
msf> search Windows/SMB type:exploit -S greatfind all Windows-based SMB exploits that have an excellent (most reliable) ranking (have the string „excellent“ in the row results).
msf> search scanner/smbsearch for every scanner that has to do with SMB.
msf> search scanner/mssqlcsearch for every scanner that has to do with Microsoft SQL.

Searchsploit

searchsploit wurde entwickelt, um die lokale Exploit-Datenbank zu durchsuchen. Dieses Tool ist praktisch, wenn Sie keine Internetverbindung haben und nach Exploits suchen müssen. Wenn jedoch die Exploit-Datenbank nicht aktualisiert wird, erhalten Sie möglicherweise nicht die Exploit-Informationen, nach denen Sie gesucht haben. Sie können eine Suche anhand des Titels durchführen und sogar einen Exploit untersuchen.
Dafür starten wir in Kali eine neue Shell und updaten die DB von Searchsploit

searchsploit -u

Mit einer frischen Datenbank können wir nach beliebigen Exploits suchen

searchsploit MS17-010                               # sucht nach explizitem Exploit
searchsploit -t windows remote                      # sucht alle Windows remote Exploits
searchsploit -m 39166                               # kopiert 39166 in den Ordner /root/
searchsploit 39166 --examine                        # untersucht ein Exploit
searchsploit Windows iis -w                         # zeigt Update-Informationen an
searchsploit --exclude=Windows                      # schließt alle Treffer mit "Windows" aus
searchsploit windows | grep “Privilege Escalation”  # greppen kann man auch
searchsploit -c XSS                                 # case-sensitive Suche

Den Host ansprechen

Ports Scannen

Die Kunst des perfekten Portscan. Experten kennen Dutzende von Scan-Methoden und wählen für jede Aufgabe die geeignete aus. Unerfahrene Benutzer und Script-Kiddies versuchen gerne jedes Problem mit dem standardmäßigen SYN-Scan zu lösen. Unwissen ist das einzige Hindernis auf dem Weg zur Meisterschaft im Port-Scanning.

Scantypen

Diese drei Scan-Typen haben exakt dasselbe Verhalten und unterscheiden sich nur in den TCP-Flags ihrer Testpakete. Wenn ein RST-Paket empfangen wird, wird der Port als geschlossen betrachtet, während keine Antwort bedeutet, dass er offen|gefiltert ist. Der Port wird als gefiltert markiert, falls ein ICMP Unreachable-Fehler (Type 3, Code 1, 2, 3, 9, 10 oder 13) empfangen wird.
Der Schlüsselvorteil dieser Scan-Arten ist, dass sie sich an bestimmten zustandslosen Firewalls und paketfilternden Routern vorbeschleichen können. Ein weiterer Vorteil ist, dass diese Scan-Arten ncoh ein wenig unauffälliger sind als ein SYN-Scan.

Port angeben

Versionserkennung

Betriebssystem erkennen

Ausgabe definieren

Zusätzlich zu verschiedenen Ausgabeformaten bietet Nmap Optionen zur Steuerung der Ausführlichkeit dieser Ausgabe sowie Debugging-Meldungen. Die Ausgaben können an die Standardausgabe oder an benannte Dateien gehen, die Nmap überschreiben bzw. an die es seine Ausgabe anfügen kann. Mit den Ausgabedateien können außerdem abgebrochene Scans fortgesetzt werden

Ergebnisse interpretieren

Die sechs von Nmap erkannten Port-Zustände sind:

Zusammenfassung

TCP Connect Scan -sST

Probe Response Assigned State
TCP SYN/ACK response open
TCP RST response closed
No response received (even after retransmissions) filtered

TCP SYN (Stealth) Scan -sS

Probe Reponse Assigned State
TCP SYN/ACK response open
TCP RST response closed
No response received (even after retransmissions) filtered
ICMP unreachable error (type 3, code 1, 2, 3, 9, 10, or 13) filtered

UDP Scan -sU

Probe Reponse Assigned State
Any UDP response from target port (unusual) open
No response received (even after retransmissions) open/filtered
ICMP port unreachable error (type 3, code 3) closed
Other ICMP unreachable errors (type 3, code 1, 2, 9, 10, or 13 filtered

TCP ACK Scan (-sA)

Probe Reponse Assigned State
TCP RST response unfiltered
No response received (even after retransmissions) filtered
ICMP unreachable error (type 3, code 1,2, 3,9, 10, or 13 filtered

Beispiele

nmap -v scanme.nmap.org

Scannt alle reservierten TCP-Ports auf dem Rechner scanme.nmap.org. -v schaltet den ausführlichen Modus an.

nmap -sS -O scanme.nmap.org/24

Startet einen Stealth-SYN-Scan auf allen aktiven Rechnern unter den 256 IPs im Netzwerk der Größe “Klasse C”, in dem Scanme sitzt. Es versucht auch herauszufinden, welches Betriebssystem auf jedem aktiven Host läuft. Wegen des SYN-Scans und der Betriebssystemerkennung sind dazu root-Rechte notwendig.

nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127

Startet eine Host-Auflistung und einen TCP-Scan in der ersten Hälfte von allen 255 möglichen acht-Bit-Unternetzen im Klasse-B-Adressraum 198.116. Dabei wird getestet, ob die Systeme SSH, DNS, POP3 oder IMAP auf ihren Standardports laufen haben oder irgendetwas auf Port 4564. Falls einer dieser Ports offen ist, wird eine Versionserkennung benutzt, um festzustellen, welche Anwendung darauf läuft.

nmap -v -iR 100000 -PN -p 80

Verlangt von Nmap, 100.000 Hosts zufällig auszuwählen und sie nach Webservern (Port 80) zu scannen. Eine Host-Auflistung wird mit -PN unterbunden, weil es Verschwendung ist, zuerst eine Reihe von Testpaketen zu senden, um festzustellen, ob ein Host aktiv ist, wenn Sie auf jedem Zielhost ohnehin nur einen Port testen.

nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20

Das scannt 4096 IPs nach Webservern (ohne sie anzupingen) und speichert die Ausgabe im grepbaren und im XML-Format.

nmap -sV -p 53 -Pn -T5 --host-timeout 2m --script=dns* -v 192.168.0.1

Ein Scan ob DNS auf Port 53 läuft. Dafür laden wir das Script dns

Übersicht