Nmap Aufgaben 8421: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Nmap Praxis – Cybersecurity Training = == Netzwerkübersicht == {| class="wikitable" ! Segment !! Netz !! Relevante Hosts |- | WAN || 192.168.Y.0/24 || h…“)
 
Zeile 51: Zeile 51:
 
</pre>
 
</pre>
  
{{Hinweis|'''Lernziel:''' Verstehen, warum <code>-Pn</code> nötig sein kann, wenn eine Firewall ICMP blockiert (OPNsense DMZ-Regeln).}}
+
 
  
 
----
 
----

Version vom 25. Februar 2026, 06:47 Uhr

Nmap Praxis – Cybersecurity Training

Netzwerkübersicht

Segment Netz Relevante Hosts
WAN 192.168.Y.0/24 host200, Roadwarrior
DMZ 10.0.10.0/24 www.microsott.de (Apache2 + Wazuh Agent), waf.microsott.de
LAN 172.26.53.0/24 win11, kali
Server 172.26.54.0/24 win2022, sensor, mqtt, aktor, wazuh, elk, ubuntu

Wichtige Hinweise zur Umgebung:

  • Der Kali-Client (172.26.53.0/24) wird als Angreifer-System für alle Scans verwendet.
  • Auf www.microsott.de läuft ein Apache2-Webserver mit einem Wazuh Agent, der die Apache2-Logs an den Wazuh-Server weiterleitet.
  • Scans gegen die DMZ werden dadurch in Wazuh detektiert und geloggt – ideal für Blue Team Übungen.

Phase 1 – Host Discovery (Ping Scans)

Ziel: Welche Hosts sind überhaupt erreichbar?

ICMP Echo Request (klassischer Ping-Scan)

nmap -sn 172.26.54.0/24

Kombinierter Discovery (TCP SYN + UDP + ICMP)

nmap -sn -PE -PS22,80,443 -PU53 172.26.54.0/24

ARP-Scan im eigenen Segment (LAN)

nmap -sn --send-eth 172.26.53.0/24

Alle drei Segmente auf einmal

nmap -sn 10.0.10.0/24 172.26.53.0/24 172.26.54.0/24

Discovery deaktivieren (wenn ICMP geblockt)

nmap -Pn 172.26.54.0/24



Phase 2 – Port Scanning Techniken

TCP Connect Scan (kein Root nötig)

nmap -sT 172.26.54.10

SYN Stealth Scan (Standard, Root erforderlich)

sudo nmap -sS 172.26.54.10

UDP Scan

UDP-Scans sind langsam, aber wichtig für Dienste wie DNS, SNMP und DHCP.

sudo nmap -sU --top-ports 20 172.26.54.0/24

# Spezifisch auf DNS, SNMP, DHCP
sudo nmap -sU -p 53,161,162,67,68 172.26.54.0/24

Alle Ports scannen

sudo nmap -p- 172.26.54.10

# Schneller mit min-rate
sudo nmap -p- --min-rate 5000 172.26.54.10

Top-Ports und manuelle Port-Auswahl

nmap --top-ports 100 172.26.54.0/24
nmap --top-ports 1000 172.26.54.0/24

# Manuelle Port-Auswahl
nmap -p 22,80,443,3389,8080,8443 172.26.54.0/24

Firewall-Test gegen DMZ

# Zeigt gefilterte Ports deutlich
sudo nmap -sS -p 1-1000 10.0.10.0/24

Vorlage:Hinweis


Phase 3 – Service & Version Detection

Service-Versionen erkennen

sudo nmap -sV 172.26.54.0/24

# Intensität erhöhen (0-9, Standard 7)
sudo nmap -sV --version-intensity 9 172.26.54.10

OS-Erkennung

sudo nmap -O 172.26.54.10
sudo nmap -O --osscan-guess 172.26.54.10

Kombination aus Service + OS

sudo nmap -sV -O 172.26.54.0/24

Zielgerichtete Scans je Host

Host Ports Begründung
win2022 22, 135, 139, 445, 3389, 5985, 5986 RDP, SMB, WinRM
wazuh 1514, 1515, 55000, 9200, 443 Wazuh Manager + API
elk 9200, 9300, 5601, 5044 Elasticsearch, Kibana, Logstash
mqtt 1883, 8883, 8083, 8084 MQTT Broker (plain + TLS)
ubuntu 22, 80, 443, 8080 SSH, Webdienste
www.microsott.de 80, 443 Apache2 (Wazuh Agent aktiv!)
# Beispiel: win2022
sudo nmap -sS -sV -p 22,135,139,445,3389,5985,5986 172.26.54.X

# Beispiel: www.microsott.de (Wazuh Agent loggt mit!)
sudo nmap -sS -sV -p 80,443 10.0.10.X

Phase 4 – NSE (Nmap Scripting Engine)

Script-Kategorien

Kategorie Beschreibung
safe Harmlose Informationsabfragen
default Standard-Scripts (wie -sC)
discovery Dienst- und Netzwerkerkennung
vuln Schwachstellen-Checks
intrusive Aktive Tests, können Systeme beeinflussen
brute Passwort-Brute-Force
exploit Exploit-Versuche

Default Scripts

sudo nmap -sC 172.26.54.0/24

SMB-Enumeration (win2022)

sudo nmap --script smb-enum-shares,smb-enum-users,smb-os-discovery -p 445 172.26.54.X
sudo nmap --script smb-vuln* -p 445 172.26.54.X

# EternalBlue (MS17-010) Check
sudo nmap --script smb-vuln-ms17-010 -p 445 172.26.54.X

HTTP/HTTPS Enumeration (DMZ)

Achtung: Der Wazuh Agent auf www.microsott.de loggt Apache2-Zugriffe. Diese Scans sind in Wazuh/ELK sichtbar!

sudo nmap --script http-headers,http-title,http-methods -p 80,443 10.0.10.X
sudo nmap --script http-enum -p 80,443 10.0.10.X
sudo nmap --script http-robots.txt -p 80 10.0.10.X

# SSL/TLS Informationen
sudo nmap --script ssl-cert,ssl-enum-ciphers -p 443 10.0.10.X

SSH Enumeration

sudo nmap --script ssh-auth-methods,ssh-hostkey -p 22 172.26.54.0/24
sudo nmap --script ssh2-enum-algos -p 22 172.26.54.0/24

MQTT-spezifisch

sudo nmap --script mqtt-subscribe -p 1883 172.26.54.X

Vulnerability Scanning

# Vorsicht: Kann Systeme beeinflussen!
sudo nmap --script vuln 172.26.54.X

# Gegen Apache2 auf www.microsott.de (Wazuh detektiert dies!)
sudo nmap --script vuln -p 80,443 10.0.10.X

Phase 5 – Firewall & IDS Evasion

Wichtig: Diese Techniken zeigen, wie Angreifer versuchen, Wazuh und den sensor zu umgehen. Ideal für Red/Blue Team Vergleiche.

Fragmentierte Pakete

sudo nmap -f 10.0.10.0/24

Decoy Scan (eigene IP verschleiern)

sudo nmap -D RND:5 172.26.54.X
sudo nmap -D 192.168.1.1,192.168.1.2,ME 172.26.54.X

Timing-Templates

Template Name Verwendung
-T0 Paranoid Extrem langsam, maximale IDS-Evasion
-T1 Sneaky Langsam
-T2 Polite Netzwerkschonend
-T3 Normal Standard
-T4 Aggressive Schnell
-T5 Insane Sehr schnell, sehr laut
sudo nmap -T0 172.26.54.X   # IDS-Evasion
sudo nmap -T5 172.26.54.X   # Maximale Geschwindigkeit

Source Port Manipulation

sudo nmap --source-port 53 172.26.54.X
sudo nmap --source-port 80 172.26.54.X

Idle/Zombie Scan

# Wenn ein geeigneter Zombie-Host verfügbar ist
sudo nmap -sI 172.26.53.X 172.26.54.X

Weitere Evasion-Techniken

# Randomisierte Host-Reihenfolge
sudo nmap --randomize-hosts 172.26.54.0/24

# MTU anpassen
sudo nmap --mtu 16 172.26.54.X

Phase 6 – Output & Reporting

# Normal Output
nmap -oN scan_results.txt 172.26.54.0/24

# XML Output (für Metasploit importierbar)
nmap -oX scan_results.xml 172.26.54.0/24

# Grepbares Format
nmap -oG scan_results.gnmap 172.26.54.0/24

# Alle Formate gleichzeitig
sudo nmap -sS -sV -sC -oA full_scan 172.26.54.0/24

# Nur offene Ports filtern
grep "open" scan_results.gnmap

Phase 7 – Aggressive Kombinations-Scans

# Aggressiver Scan (-A = OS + Version + Scripts + Traceroute)
sudo nmap -A 172.26.54.0/24

# Vollständiger Audit-Scan
sudo nmap -sS -sU -sV -sC -O -p- --min-rate 1000 -oA full_audit 172.26.54.X

# Schneller Netzwerk-Überblick
sudo nmap -sS -sV --top-ports 100 -T4 -oA quick_scan 172.26.54.0/24

Übungsszenarien

Szenario 1 – Red Team Reconnaissance

Ziel: Möglichst unauffällig das Netzwerk erkunden.

# Schritt 1: Stilles Discovery
sudo nmap -sn -T2 172.26.54.0/24 -oG hosts_up.gnmap

# Schritt 2: Ports auf gefundene Hosts
sudo nmap -sS --top-ports 1000 -iL <(grep "Up" hosts_up.gnmap | awk '{print $2}')

# Schritt 3: Services + Schwachstellen
sudo nmap -sV --script vuln -iL targets.txt

Szenario 2 – Blue Team Detection Test

Ziel: Prüfen, ob Wazuh und ELK den Scan detektieren.

# Lauten Scan gegen www.microsott.de durchführen
sudo nmap -A -T4 10.0.10.X

Danach in Wazuh und ELK prüfen:

  • Wurden Alerts für den Apache2-Zugriff generiert?
  • Welche Rule IDs hat Wazuh ausgelöst?
  • Hat der sensor im Server-Netz den Scan-Traffic erfasst?
  • Ist der Scan im ELK-Dashboard sichtbar?

Szenario 3 – WAF-Test in der DMZ

Ziel: Den Unterschied zwischen www.microsott.de (ohne WAF) und waf.microsott.de (mit WAF) sichtbar machen.

Wichtig: Die WAF leitet HTTP auf HTTPS um (301), daher curl mit -sk verwenden.

echo "=== OHNE WAF – www.microsott.de (10.0.10.108) ==="
curl -s -o /dev/null -w "Normal:         %{http_code}\n" "http://10.0.10.108/"
curl -s -o /dev/null -w "SQLi:           %{http_code}\n" "http://10.0.10.108/?id=1' OR '1'='1"
curl -s -o /dev/null -w "XSS:            %{http_code}\n" "http://10.0.10.108/?q=<script>alert(1)</script>"
curl -s -o /dev/null -w "Path Traversal: %{http_code}\n" "http://10.0.10.108/../../../etc/passwd"

echo ""
echo "=== MIT WAF – waf.microsott.de (10.0.10.110) ==="
curl -sk -o /dev/null -w "Normal:         %{http_code}\n" "https://10.0.10.110/"
curl -sk -o /dev/null -w "SQLi:           %{http_code}\n" "https://10.0.10.110/?id=1' OR '1'='1"
curl -sk -o /dev/null -w "XSS:            %{http_code}\n" "https://10.0.10.110/?q=<script>alert(1)</script>"
curl -sk -o /dev/null -w "Path Traversal: %{http_code}\n" "https://10.0.10.110/../../../etc/passwd"

Erwartetes Ergebnis:

=== OHNE WAF – www.microsott.de (10.0.10.108) ===
Normal:         200
SQLi:           200   ← kein Schutz
XSS:            200   ← kein Schutz
Path Traversal: 200   ← kein Schutz

=== MIT WAF – waf.microsott.de (10.0.10.110) ===
Normal:         200
SQLi:           403   ← geblockt!
XSS:            403   ← geblockt!
Path Traversal: 403   ← geblockt!

Szenario 4 – Wazuh/Apache2 Log-Analyse

Ziel: Den Zusammenhang zwischen HTTP-Zugriff und Wazuh-Alert verstehen.

  1. Scan gegen www.microsott.de durchführen (Apache2 + Wazuh Agent):
sudo nmap -sS -sV -p 80,443 10.0.10.108
sudo nmap --script http-headers,http-title,http-enum -p 80 10.0.10.108
  1. Überprüfe danach auf dem Wazuh-Server die Alerts:
# Auf dem Wazuh-Manager (172.26.54.X):
tail -f /var/ossec/logs/alerts/alerts.log | grep -i "apache\|web\|http"
  1. Oder im ELK-Dashboard (Kibana) nach dem Index wazuh-alerts-* filtern.

Cheat Sheet – Wichtigste Flags

Flag Bedeutung
-sS SYN Stealth Scan
-sT TCP Connect Scan
-sU UDP Scan
-sV Version Detection
-sC Default Scripts (wie --script=default)
-O OS Detection
-A Alles (OS + Version + Scripts + Traceroute)
-p- Alle 65535 Ports
-Pn Host-Discovery überspringen
-T0-T5 Timing (langsam → schnell)
-oA Output in alle Formate (Normal, XML, Grepbar)
--script NSE Script(s) laden
-f Fragmentierte Pakete (Evasion)
-D Decoy-Scan (IP verschleiern)
--source-port Quellport manuell setzen
--min-rate Mindest-Paketrate (z.B. --min-rate 5000)
-iL Ziele aus Datei einlesen

Weiterführende Quellen