Network Scanning mit Nmap

Write-up zu Network Scanning mit Nmap #

Aufgabenstellung - Eternal blue #

Es sollen zuerst die für eine smb Lücke (Eternal blue) verwundbaren Hosts gefunden werden.

Tools #

  • Es soll natürlich nmap als Netzwerk-Scanner verwendet werden (docu).
  • Die Auswertung des Resultats geht am einfachsten über XML und deshalb soll ein Xml-Filter-Tool xmllint verwendet werden
  • Als Hilfe für xpath gibt es ein CSS <-> XPATH Cheatsheet.
  • Als Hilfe, um die Befehle aus dem Internet zu kopieren und sich erklären zu lassen gibt es explainshell

Vorgehen #

  1. Definiere das Zielnetz
  2. Suche oder erstelle ein Script, dass die Schwachstelle findet
  3. Skript-Scan mit nmap und dem mb-vuln-ms17-010 Skript
  4. Auswertung des Xml-Resultat mit xmllint
  5. Fragen beantworten

Um das XML zu parsen am Besten das Script unter /usr/share/nmap/scripts/ ansehen, da dort ein leeres Skelett zu sehen ist. Anhand diesem kann dann ein kurzes xpath erstellt werden.

Umsetzung #

Eternal blue Aufgabe #

Das Zielnetz ist 152.96.6.193/26. Damit lautet der Vulnerability-Scan-Befehl für nmap:

nmap -n -Pn -p 445 --script smb-vuln-ms17-010 -oA nmap_script_eternalblue "152.96.6.193/26"

Das Resultat kann anschliessend mit dem xmllint Tool leichter ausgewertet werden:

xmllint --xpath "//hostscript/../address/@addr" --format nmap_script_eternalblue.xml

und zu folgender Ausgabe führt:

 addr="152.96.6.212"
 addr="152.96.6.249"
 addr="152.96.6.251"

Die verwundbaren Hosts sind also 152.96.6.212, 152.96.6.249, 152.96.6.251.

Fragen zu nmap #

Um einen vollen TCP Scan durchzuführen wird der Befehl verwendet: #

-sT

Um einen syn Scan durchzuführen wird der Befehl verwendet: #

-sS

Um einen half-open Scan durchzuführen wird der Befehl verwendet: #

-sS weil ein Sync Scan den 3-way-handshake nie beendet.

Um die OS Version herauszufinden wird der Befehl verwendet: #

-O -v

Die Idee / Daseinsberechtigung von der Nmap Scripting Engine (NSE) ist: #

Es soll eine Plattform geschaffen werden, die durch Bausteine (Skripte) erweitert werden kann. Dadurch können viel schneller, sicherer und einfacher Funktionen ergänzt werden, da ‘’nur’’ die Daten ausgewertet werden müssen und so von den Details der Plattform befreit ist. Die NSE bringt auch viele libraries mit, die in Skripten verwendet werden können, beispielsweise die smb library. Die mitgelieferten Skripte findet man meistens unter /usr/share/nmap/scripts/ und eine Anleitung ist auch verfügbar.

Um alle verfügbaren Skripte anzuzeigen wird der Befehl verwendet: #

nmap --script-help=

Um während eines längeren Scans auf Statistiken zuzugreifen wird der Befehl verwendet: #

ENTER

Zusatz Parameter Beschreibung für nmap #

nmap -n -Pn -p 445 --script smb-vuln-ms17-010 "152.96.6.193/26" -oA nmap_script_eternalblue

  • -n (No DNS resolution) . Weist Nmap an, niemals eine umgekehrte DNS-Auflösung für die gefundenen aktiven IP-Adressen durchzuführen.
  • -p port ranges (Only scan specified ports) . Diese Option gibt an, welche Ports gescannt werden sollen und überschreibt die Standardeinstellung.
  • –script filename|category|directory|expression|all[,…] . Führt eine Skriptprüfung anhand der kommagetrennten Liste von Dateinamen, Skriptkategorien und Verzeichnissen durch.
  • -oA basename (Output to all formats) . Zur Vereinfachung kann -oA basename angeben werden, um die Scanergebnisse in den Formaten normal, XML und grepable gleichzeitig zu speichern. Sie werden in basename.nmap, basename.xml bzw. basename.gnmap gespeichert.
Calendar September 21, 2021