DNS-Spoofing mit Ettercap
Vorwort
Diese Dokumentation beschreibt DNS-Spoofing mit Ettercap.
Bitte vergewissern Sie sich, dass Ihr System über die nötigen Voraussetzungen verfügt, wie in der Infobox beschrieben. Weiterhin sind Grundkenntnisse im Umgang mit Linux erforderlich, da die Vorgehensweise, wie sie hier beschrieben ist, in manchen Teilen abweichen kann. Kein System ist wie das Andere. Die Dokumentation wurde sorgfältig von mir geprüft. Dennoch kann ich keinerlei Haftung für Schäden an Ihrem System oder eine Gewährleistung übernehmen. Bitte verwenden Sie diese Dokumentation auf eigene Gefahr.
Diese Dokumentation beschreibt Methoden, mit denen gezielt die Verwundbarkeit eines Netzwerks oder IT-Systems gegenüber Hacking- und Manipulationsversuchen analysiert werden kann.
Ohne die ausdrückliche Zustimmung der zu testenden Organisation und/oder der betroffenen Personen sind diese Methoden illegal und können eine Straftat darstellen.
Verwendete Software:
Voraussetzungen:
- physikalischer Zugriff auf das "Opfer-Subnetz"
Weitere, empfohlene Dokumentationen:
Schritt für Schritt
Die folgende Beschreibung bezieht sich auf Kali Linux. In dieser Distribution sind die benötigten Programme bereits vorinstalliert.
Wichtig ist, dass eine funktionierende Netzwerkverbindung besteht. Falls eine virtuelle Maschine (VM) eingesetzt wird, sollte diese im Bridge Mode laufen. Als weitere Einschränkung gilt, dass man sich im selben Netzwerk (Subnetz) wie das Ziel befinden muss.
DNS-Spoofing mit Ettercap
Beim DNS-Cache-Poisoning oder -Spoofing werden Systemschwachstellen in DNS-Servern ausgenutzt, um Datenverkehr von legitimen DNS-Servern auf Gefälschte umzuleiten. Dies bedeutet im Grunde, dass ein Angreifer alle DNS-Anforderungen und damit den gesamten Datenverkehr auf seinen Computer umleiten (Man-In-The-Middle-Angriff) und auf böswillige Weise manipulieren und möglicherweise übermittelte Daten stehlen kann.
Ein guter Pentest sollte den DNS-Spoofing-Angriff beinhalten, da es einer der gefährlichsten Angriffe ist (das gilt insbesondere in öffentlichen Netzen wie an Flughäfen, in Hotels, Bars etc.). Zudem ist er sehr schwer zu erkennen.
Allerdings führt DNS-Spoofing mittlerweile nur selten zum gewünschten Erfolg, da die meisten Webserver HSTS einsetzen und auch gängige Browser (Chrome, Firefox, etc.) keine Verbindungen auf SSL-geschützte Webseiten zulassen, wenn MITM-, Proxy-Angriffe oder HTTP-Datenstörungen jeglicher Art erkannt werden.
In unserem Beispiel wird versucht, die Domain example.com
inklusive aller Sub-Domains (*.example.com
) auf einen lokal installierten Apache-Webserver umgeleitet.
Im Verzeichnis /var/www/html
würde der Angreifer z.B. eine Kopie der Anmeldeseite von example.com
(oder Facebook, etc.) anlegen. Meldet sich der Angegriffene auf dieser "Seite" an, ist es ein Leichtes die Eingabe des Benutzernamens und des Passworts abzufangen.
etter.conf bearbeiten
Erstellen Sie zunächst eine Sicherheitskopie der Original-Datei:
# cp /etc/ettercap/etter.conf /etc/ettercap/etter.conf.ori
Öffnen Sie die Datei /etc/etter.conf
und bearbeiten Sie folgende Parameter:
# nano /etc/ettercap/etter.conf
# etter.conf [...] ec_uid = 0 # nobody is the default ec_gid = 0 # nobody is the default [...] # if you use iptables: redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport" redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport" [...]
etter.dns bearbeiten
Benennen Sie zunächst die /etc/ettercap/etter.dns
um, damit Sie eine Sicherheitskopie der Original-Datei haben:
# mv /etc/ettercap/etter.dns /etc/ettercap/etter.dns.ori
Erstellen Sie eine neue Datei /etc/ettercap/etter.dns
nach folgendem Syntax:
# nano /etc/ettercap/etter.dns
example.com A <IP-Adresse des Angreifers> *.example.com A <IP-Adresse des Angreifers>
Apache starten
Starten Sie den Apache-Webserver:
# service apache2 start
Angriff starten
Über die Kommandozeile
In unserem Beispiel wird das Netzwerk-Interface eth0
verwendet. Natürlich kann auch ein anderes Interface, z.B ein WLAN-Interface verwendet werden.
Es werden folgende Parameter verwendet:
-T Text-Only-Interface, Ausgabe direkt auf der Kommandozeile -q Quiet-Mode -M Man-in-the-Middle-Methode, ARP-Spoofing:Remote (Die Option remote ist erforderlich, um den von den Hosts über das Standard Gateway übertragenen Datenverkehr zu überwachen) -i Interface, eth0 -P Plugin, DNS-Spoofing // // Gesamtes Subnetz, alle MACs/IPs/Ports
Öffnen Sie ein Terminal-Fenster und rufen Sie ettercap
auf:
- Angriff auf das gesamte Subnetz:
# ettercap -T -q -M arp:remote -i eth0 -P dns_spoof // //
- Angriff auf eine bestimmte IP-Adresse:
ettercap -T -q -M ARP -i eth0 -P dns_spoof /<IP-Adresse des Opfers>/ /<IP-Adresse des Standard-Gateways>/
Wenn die Unterstützung von IPv6 aktiviert ist, müssen drei statt zwei Schrägstriche angegeben werden:
# ettercap -T -q -M arp:remote -i eth0 -P dns_spoof /// ///
ettercap -T -q -M ARP -i eth0 -P dns_spoof /<IP-Adresse des Opfers>// /<IP-Adresse des Standard-Gateways>//
Mit graphischer Oberfläche
Starten Sie ettercap
im Grafikmodus:
# ettercap -G
Im ersten Schritt wird der Sniffing Typ und das Netzwerk-Interface ausgewählt.
Wählen Sie Sniff --> Unified Sniffing --> eth0 aus (oder Strg + U):
Nach Auswahlt des Netzwerk-Interfaces wird der Sniffing-Vorgang automatisch gestartet. Da wir aber noch weitere Einstellungen vornehmen müssen, wird der Sniffing-Vorgang vorerst beendet.
Wählen Sie Start --> Stop sniffing (oder Umschalt + Strg + W) aus, um den Sniffing-Vorgang zu beenden:
Im nächsten Schritt werden alle Hosts des Subnetzes gescannt und anschliessend angezeigt.
Wählen Sie dazu Hosts --> Scan for hosts (oder Strg + S) aus und wählen Sie anschliessend Hosts --> Hosts list (oder Strg + H) aus:
Nun müssen zwei Ziele (Targets) ermittelt werden.
1. Das "Opfer"
2. Das Standard-Gateway
Wählen Sie zunächst den "Opfer-Host" aus der Hostliste und klicken Sie anschliessend auf Add to Target 1.
In gleicher Weise wird mit dem Standard-Gateway verfahren:
Auswahl in der Hostliste mit anschließendem Klick auf Add to Target 2.
(Ist das Netzwerk unbekannt, kann das Standard-Gateway mit dem Befehl route -n
ermittelt werden.)
Nun wird der ARP-Spoofing-Vorgang gestartet. Wählen Sie dazu Mitm --> ARP poisoning und aktivieren Sie anschliessend den Paramater Sniff remote connections:
Für den DNS-Spoofing-Angriff muss jetzt noch das passende Plugin geladen werden.
Wählen Sie Plugins --> Manage the plugins (oder Strg + P) aus und aktivieren Sie mit Doppelklick das Plugin dns_spoof:
Nun sind alle Vorbereitungen getroffen und der Sniffing-Vorgang kann mit Start --> Start sniffing (oder Umschalt + Strg + W) gestartet werden: