Port Scanning
Port Scanning ist eine Reconnaissance-Technik die herausfindet, welche Netzwerkports auf einem System offen sind und welche Dienste dahinter laufen. Es ist der erste Schritt bei Penetrationstests und Angreifer-Reconnaissance - und gleichzeitig ein wichtiges Werkzeug für Systemadministratoren zur Inventarisierung.
Port Scanning ist das Aufspüren offener Türen in einem Netzwerk: Jeder Port repräsentiert einen potenziellen Dienst, jeder offene Port eine mögliche Angriffsfläche. Nmap ist das meistverwendete Tool - von Penetrationstestern, Systemadministratoren und leider auch Angreifern. Der Unterschied liegt im Kontext und in der Genehmigung.
Nmap - Das Standard-Tool
# Einfachster Scan (TCP SYN auf häufige Ports):
nmap 192.168.1.1
# Einzelner Host, alle Ports:
nmap -p- 192.168.1.1
# Netz scannen:
nmap 192.168.1.0/24
# Service und Versionserkennung:
nmap -sV 192.168.1.1
# OS-Erkennung (erfordert Root):
nmap -O 192.168.1.1
# Aggressiver Scan (sV + OS + Scripts + Traceroute):
nmap -A 192.168.1.1
# Häufig verwendete Kombination für Pentest:
# -sC: Default NSE Scripts
# -sV: Service-Versionserkennung
# -oA: Output in allen Formaten (nmap, gnmap, xml)
nmap -sC -sV -oA scan_results 192.168.1.1
Scan-Techniken im Detail
TCP-Scan-Typen
SYN Scan (-sS, Stealth Scan):
- Halboffene Verbindung (SYN → SYN-ACK → RST)
- Keine vollständige TCP-Verbindung → weniger in Logs
- Standard für Root-User
- Erfordert Root-Rechte (raw sockets)
Connect Scan (-sT):
- Vollständige TCP-Verbindung
- Ohne Root möglich
- Mehr Logging auf Zielseite
UDP Scan (-sU):
- Wichtig! UDP-Dienste werden oft übersehen
- DNS (53), SNMP (161), TFTP (69), NTP (123)
- Langsamer als TCP-Scans
nmap -sU -p 53,161,500 192.168.1.1
Null Scan (-sN), FIN Scan (-sF), Xmas Scan (-sX):
- Umgehung einfacher Paketfilter (IDS Evasion)
- Senden keine Standard-Flags → Firewalls reagieren anders
- Nur auf Unix-Systemen zuverlässig
SCTP Scans:
- Für Telekommunikations-Netzwerke (SS7, Diameter)
nmap -sY 192.168.1.1 # SCTP INIT Scan
Scan-Geschwindigkeit (-T)
| Stufe | Name | Beschreibung |
|---|---|---|
| T0 | Paranoid | Sehr langsam, IDS-Evasion |
| T1 | Sneaky | Langsam, IDS-Evasion |
| T2 | Polite | Reduzierte Bandbreite |
| T3 | Normal | Standard |
| T4 | Aggressive | Schnell, für gut verbundene Netzwerke |
| T5 | Insane | Maximalgeschwindigkeit, kann Hosts übersehen |
Für Pentests: T4 üblich (schnell, zuverlässig). Für Produktions-Scans: T2-T3 (kein Ausfall der Dienste).
Nmap Scripting Engine (NSE)
NSE erweitert Nmap um Lua-Skripte. Vordefinierte Skript-Kategorien:
| Kategorie | Beschreibung |
|---|---|
auth | Authentifizierungsprüfungen |
broadcast | Netzwerk-Discovery per Broadcast |
brute | Brute-Force-Angriffe (ACHTUNG!) |
default | Standard-Skripte (-sC) |
discovery | Service-Enumeration |
dos | Denial of Service Tests (ACHTUNG!) |
exploit | Exploit-Versuche (nur mit Genehmigung!) |
fuzzer | Fuzzing gegen Protokolle |
intrusive | Aufdringliche Tests |
malware | Backdoor-Erkennung |
safe | Sichere Informationssammlung |
version | Service-Version-Erkennung |
vuln | Schwachstellenprüfung |
# SMB-Schwachstellen prüfen (EternalBlue/MS17-010):
nmap --script smb-vuln-ms17-010 -p 445 192.168.1.0/24
# HTTP-Server-Informationen:
nmap --script http-headers,http-title -p 80,443 192.168.1.1
# SSH-Algorithmen prüfen:
nmap --script ssh2-enum-algos -p 22 192.168.1.1
# FTP-Anonym-Login:
nmap --script ftp-anon -p 21 192.168.1.0/24
# MySQL ohne Passwort:
nmap --script mysql-empty-password -p 3306 192.168.1.0/24
# SNMP Community Strings:
nmap --script snmp-brute -p 161/udp 192.168.1.0/24
# Gesamter Vulnerability-Scan:
nmap --script vuln -sV 192.168.1.1
Port-Scanning im Pentestbericht
Typische Findings aus Port-Scans
Kritisch:
- RDP (3389) direkt aus dem Internet erreichbar → Brute-Force, BlueKeep (CVE-2019-0708)!
- SMB (445) aus dem Internet erreichbar → EternalBlue, WannaCry-Angriffsvektor!
- Telnet (23) offen → Plaintext-Kommunikation
- FTP (21) mit Anonymous-Login
Hoch:
- SSH (22) mit Passwort-Auth (statt Key-Auth)
- RDP ohne Network Level Authentication (NLA)
- Veraltete SSL/TLS-Versionen (SSLv3, TLS 1.0)
- SNMP v1/v2 mit Default Community String “public”
Mittel:
- Unnötige Dienste offen (HTTP-Server ohne Funktion)
- ICMP erlaubt (Information Leakage)
- Nicht dokumentierte offene Ports
Schutzmaßnahmen gegen Port-Scanning
- Firewall: nur explizit benötigte Ports öffnen
- Default Deny: alles blockieren was nicht gebraucht wird
- Port Knocking: Port öffnet sich nur nach geheimer Sequenz
- IPS: Nmap-Scans erkennen und blockieren (Snort-Regeln)
- Honeypot-Ports: Alert bei Zugriff auf nicht-existente Dienste
- VPN-First: kein direkter Internet-Zugang zu internen Systemen
Rechtliche Hinweise
Port Scanning ohne Genehmigung ist in Deutschland strafbar! §202a StGB: Ausspähen von Daten. Immer schriftliche Genehmigung vor jedem Scan einholen! Scope-Definition: welche IPs/Ranges dürfen gescannt werden?