Aktive Reconnaissance — Grundlagen
Sie kommen aus zwei Wochen stiller Aufklärung. Diese Woche wird gehandelt. Jedes Paket, das Sie senden, kann gesehen, protokolliert, korreliert werden. Ein falsch eingestellter Scan bedeutet ein schreiendes IDS, einen anrufenden Kunden, einen Test, der im Roten beginnt.
Ein Portscan auf eine IP-Adresse, die Ihnen nicht gehört und für die Sie keine schriftliche Genehmigung haben, ist in den meisten Rechtsordnungen eine feindliche Handlung im rechtlichen Sinne — selbst wenn Sie nichts finden. Diese gesamte Lektion wird in Ihrem Lab oder auf Zielen ausgeführt, die durch ein RoE abgedeckt sind.
Was Sie nach dieser Lektion können
- Den richtigen Scan für den richtigen Moment wählen (schnell, vollständig, diskret, aggressiv).
- Ein Nmap-Ergebnis Zeile für Zeile lesen, einschließlich
filtered,open|filtered,unfiltered. - Einen Windows-Dienst mit
enum4linux-ng,smbclient,crackmapexecenumerieren. - Wireshark verwenden, um zu prüfen, was Ihr Scan tatsächlich auf der Leitung erzeugt.
- Ein Paket von Hand mit Scapy fälschen, wenn
nmapnicht das tut, was man will. - Die Rauschkosten eines Scans einschätzen, bevor man ihn startet.
1. Der Übergang passiv → aktiv: Was sich wirklich ändert
Im passiven Modus weiß niemand, dass Sie existieren. Im aktiven Modus steht Ihre IP in den Logs des Ziels. Drei konkrete Konsequenzen:
- Ihre Spuren sind datiert. Ein
nmap -p-aufvictim.comum 03:14 Uhr am 12. April lässt sich zurückverfolgen. - Ihre Spuren sind zuordenbar. Quell-IP, TCP/IP-Fingerabdruck, HTTP-
User-Agent, Paketreihenfolge — all das verrät, wer Sie sind. - Die Abwehr schlägt zurück. Ein IDS kann Ihre IP im laufenden Betrieb blockieren. Eine WAF kann Sie kappen. Ein SOC kann Ihren Kunden anrufen, um nachzufragen.
Gut durchgeführt bleibt aktive Reconnaissance unauffällig oder vernachlässigbar. Schlecht durchgeführt wird sie zum Absatz „Vorfall" im Bericht des CISO.
2. Die Logik des geschichteten Scans
Ein Pentester startet niemals von Anfang an nmap -A --script vuln. Man geht in Schichten vor, vom Feinsten zum Breitesten. Jede Schicht beantwortet eine Frage.
| Schicht | Frage | Werkzeug | Rauschen |
|---|---|---|---|
| 1. Host-Discovery | Wer ist aktiv? | nmap -sn, arp-scan | Niedrig |
| 2. Port-Scanning | Was lauscht? | nmap -sS -p- | Mittel |
| 3. Versionserkennung | Wer lauscht, in welcher Version? | nmap -sV | Mittel-hoch |
| 4. Gezielte NSE-Skripte | Was sagt dieser Dienst? | nmap --script <spezifisch> | Variabel |
| 5. Applikations-Enumeration | Konten, Freigaben, Endpunkte | enum4linux-ng, gobuster | Hoch |
Die Regel: Jede Schicht baut auf der vorherigen auf. Man führt -sV nur auf offenen Ports aus, nicht blind auf allen 65.535. Man startet NSE-Skripte nur auf identifizierten Diensten, nicht standardmäßig.
3. Die Nmap-Portzustände — hören Sie auf, sie falsch zu lesen
Sechs mögliche Zustände. Bringen Sie sie nicht länger durcheinander:
| Zustand | Bedeutung |
|---|---|
open | Ein Dienst lauscht und antwortet. |
closed | Nichts lauscht — das Ziel antwortet mit RST (TCP) oder ICMP port unreachable (UDP). |
filtered | Eine Firewall absorbiert Ihr Paket. Weder Ja noch Nein. |
unfiltered | Das Ziel antwortet, aber man weiß nicht, ob der Port offen ist (selten, bei -sA). |
open|filtered | Keine Antwort — entweder offen oder gefiltert (bei UDP tatsächlich häufig). |
closed|filtered | Dasselbe, aber man tendiert zu geschlossen (Zombie-Scan). |
Was das für Sie bedeutet:
- Ein
filtered-Port ist eine Information: Jemand hat eine Firewall eingerichtet, also steckt etwas Sensibles dahinter. - Ein
open|filtered-Port bei UDP ist sehr häufig: Wiederholen Sie mit-sU --reason, um Klarheit zu bekommen. - Ein
nmap-Bereich, der überallfilteredliefert, ist oft eine Netzwerk-Firewall, kein ausgeschalteter Rechner.
4. Die TCP-Scan-Techniken — welche, wofür
| Technik | nmap-Option | Was sie tut | Wann sie wählen |
|---|---|---|---|
| SYN-Scan (Halbverbindung) | -sS | Sendet ein SYN, liest SYN/ACK, vollendet den Handshake nicht. | Standard. Schnell und diskret. Erfordert root. |
| Connect-Scan | -sT | Vollständiger Handshake (nutzt das OS). | Ohne root, oder um bestimmte Fingerabdrücke zu vermeiden. |
| ACK-Scan | -sA | Kartiert Firewalls (nicht die offenen Ports). | Erkennung einer zustandsbehafteten vs. zustandslosen Firewall. |
| FIN / NULL / Xmas | -sF / -sN / -sX | Sendet ungewöhnliche Flag-Kombinationen. | Umgehung schlecht konfigurierter Firewalls (RFC 793). |
| Idle-Scan | -sI zombie | Nutzt eine Drittmaschine als Relais. Ihre IP spricht nie mit dem Ziel. | Extreme Unauffälligkeit (und Komplexität). |
| UDP-Scan | -sU | Erzwingt das Scannen von UDP. Sehr langsam. | Entdeckung von DNS, SNMP, NTP, IKE, SIP … |
Für 90 % der Aufträge: -sS bei TCP, -sU -p <interessante UDP-Ports> bei UDP, wenn nützlich.
5. Die Timing-Templates — -T verstehen
nmap bietet sechs Geschwindigkeiten: -T0 bis -T5. Das sind keine Geschenke, sondern Entscheidungen.
| Template | Rate | Verwendung |
|---|---|---|
-T0 paranoid | 5 Min zwischen Paketen | Nur für extreme IDS-Umgehungen. |
-T1 sneaky | 15 s zwischen Paketen | Ebenfalls für Umgehung, aber weniger langsam. |
-T2 polite | 400 ms zwischen Paketen | Fragile Hardware, Industrienetzwerke. |
-T3 normal | Standard. | Klassischer Pentest im Lab oder LAN. |
-T4 aggressive | Schnell. | Robustes Ziel, breite Anbindung. |
-T5 insane | Sehr schnell. | Geringere Genauigkeit, häufige Falsch-Negative. |
Regel: -T3, außer es gibt einen konkreten Grund, es anders zu machen. -T4 bei modernen Cloud-Zielen. Niemals -T5 in der Produktion, auch nicht bei einem lauten Test.
Sie können mit --max-rate, --min-rate, --scan-delay, --host-timeout fein justieren — aber in 95 % der Fälle genügt ein -T.
6. Die NSE-Skripte — enorme Macht, enorme Vorsicht
nmap bringt mehr als 600 Skripte mit (/usr/share/nmap/scripts/). Sie sind in Kategorien eingeteilt. Die nützlichsten:
| Kategorie | Was sie tut | Vorsicht |
|---|---|---|
default (oder -sC) | Gängige, nicht destruktive Skripte. | Gering. |
safe | Beeinträchtigt den Dienst nicht. | Gering. |
discovery | Findet Dinge, ohne zu exploitieren. | Gering. |
version | Verbessert die Versionserkennung. | Gering. |
auth | Erkennt Auth-Konfigurationen, versucht manchmal Logins. | Mittel. |
vuln | Erkennt bekannte Schwachstellen. Löst sie oft teilweise aus. | Hoch. |
exploit | Exploitiert aktiv. | Nicht ohne klare Absicht starten. |
intrusive | Kann den Dienst zum Absturz bringen. | Niemals in der Produktion starten. |
dos | Bringt den Dienst zum Absturz. | Außerhalb des Labs verboten. |
Gute Praxis: --script "safe and default" beim Discovery-Scan. Gezielte Skripte (smb-vuln-*, http-shellshock usw.), sobald eine Spur identifiziert ist.
Schlechte Praxis: --script vuln als breiter Scan. Sie zerstören Dinge und wissen nicht, welches.
7. Die Windows-/SMB-Enumeration
In einer Windows-/Active-Directory-Umgebung ist die wahre Goldgrube SMB (Port 445) und LDAP (389, 636). Die Werkzeuge:
| Werkzeug | Was es tut |
|---|---|
enum4linux-ng | Enumeriert Benutzer, Gruppen, Freigaben, Richtlinie über Null-Session oder mit Zugangsdaten. |
smbclient -L //cible/ -N | Listet Freigaben ohne Authentifizierung. |
crackmapexec smb <cible> | Das Schweizer Taschenmesser für SMB: Banner, Freigaben, Auth-Tests, Remote-Ausführung. |
nxc smb <cible> | Gepflegter Nachfolger von crackmapexec (NetExec). |
smbmap -H <cible> -u <user> -p <pass> | Listet die Rechte auf jeder Freigabe. |
ldapsearch -x -H ldap://<cible> | Anonyme LDAP-Abfragen, sofern erlaubt. |
Wonach man sucht:
- Ein Zugriff per Null-Session (
-u '' -p ''), der die Benutzerliste liefert = Gold. - Eine lesbare
SYSVOL- oderNETLOGON-Freigabe ohne Passwort = ungewöhnlich, außer auf einem DC. IPC$-,ADMIN$-,C$-Freigaben, die mit einem Standard-Domänenkonto zugänglich sind.- Die Passwortrichtlinie (Länge, Ablauf, Sperrung) — später nützlich für das Password Spraying.
8. Wireshark — prüfen, was man wirklich aussendet
Wireshark ist streng genommen kein offensives Werkzeug. Aber ein Pentester, der es nicht nutzt, ist ein blinder Pentester.
Drei Anwendungen:
- Den eigenen Datenverkehr prüfen. Einen
nmap-Lauf starten und Wireshark beobachten: sehen, wie viele Pakete man wirklich sendet. Einnmap -T4auf ein/24kann in 30 Sekunden Zehntausende SYN-Pakete versenden. - Fehler verstehen. Ein Scan liefert
filtered— warum? Wird das rücklaufende ICMP blockiert, oder wird das RST absorbiert? - Überraschende Protokolle finden. Ein klassischer
nmap-Lauf sieht Ports. Wireshark sieht Konversationen — ein geschwätzigesmDNS, ein nicht deaktiviertesLLMNR, einElasticsearch, das per Broadcast antwortet.
Filter, die man auswendig kennen sollte:
tcp.flags.syn == 1 and tcp.flags.ack == 0 # Ausgehende SYN
tcp.flags.reset == 1 # Empfangene RST
smb2 # SMB2-Verkehr
dns.qry.name contains "internal" # Verdächtige DNS-Anfragen
9. Scapy — wenn nmap nicht mehr ausreicht
Scapy ist eine Python-Bibliothek, mit der man ein Paket von Hand, Feld für Feld, zusammenbauen kann. Nützlich, wenn:
- Sie eine bestimmte Flag-Kombination testen wollen, die
nmapnicht nativ anbietet. - Sie ein einzelnes Paket senden und die Antwort im Klartext sehen wollen.
- Sie ein leichtes Protokoll-Fuzzing durchführen wollen.
Das absolute Minimum:
from scapy.all import IP, TCP, UDP, ICMP, sr1
reponse = sr1(IP(dst="10.10.10.12") / TCP(dport=445, flags="S"), timeout=2, verbose=0)
if reponse and reponse.haslayer(TCP):
print("Empfangene Flags:", reponse[TCP].flags)
Rückgabe von flags:
0x12(SYN+ACK) → der Port ist offen.0x14(RST+ACK) → der Port ist geschlossen.None→ gefiltert.
Sie haben soeben in drei Zeilen einen Portscan geschrieben, der die Signaturen von nmap, die manche IDS erkennen, umgeht. Das ist die Stärke von Scapy.
10. Die Fehler, die teuer werden
-Avon Anfang an starten. Sie vermischen Discovery, Versionen, OS, Skripte und Traceroute. Sie wissen nicht mehr, was woher kommt. Arbeiten Sie in Schichten.- Dem ersten Scan glauben. Ein Port kann wegen eines vorübergehenden IPS
filteredsein. Wiederholen, korrelieren. - UDP vergessen. Sie verpassen SNMP, IKE, SIP, TFTP — Dienste, die oft den Schlüssel enthalten.
- Nicht mitschneiden. Ergebnisse immer mit
-oA <prefix>speichern. Die.xml-Datei dient fürmsfconsole → db_import. - Nachts in einem Firmen-LAN scannen. Das SOC schläft nicht. Informieren Sie den Eskalationskontakt vorher.
- Nur eine IP-Adresse verwenden. Eine früh in der Mission verbrannte IP verlangsamt die Mission. Planen Sie einen Plan B (VPN, zweite Schnittstelle).
11. Was Sie sich merken sollten
- Aktiv = Pakete beim Ziel. Halten Sie sich das bei jedem Befehl bewusst vor Augen.
- Scan in Schichten: Discovery → Ports → Versionen → gezieltes NSE.
- Sechs Portzustände. Jeder erzählt eine Geschichte.
-T3als Standard,-sSals Standard. Danach feinjustieren.- NSE:
safestandardmäßig,vulnnur bei identifizierten Zielen,intrusiveniemals ohne Plan. - SMB ist die Windows-Goldgrube — lernen Sie
nxc smbauswendig. - Wireshark zum Verstehen, Scapy zum Herstellen.
Nächste Lektion: Wir greifen unser Lab aus Woche 1 wieder auf, fügen ein zweites Linux-Opfer hinzu und kartieren alles sauber.