ARP-Spoofing

Grundlagen zu ARP-Spoofing

Im heutigen Artikel geht es um das Thema ARP (Address Resolution Protocol) und die möglichen Angriffsvektoren in diesem Kontext.

Beim ARP-Spoofing sendet ein Angreifer ARP-Antwort Pakete an gewählte Netzwerkteilnehmer und verändert so deren ARP-Tabelle um jeglichen Netzwerkverkehr mitlesen und ggf. manipulieren zu können.

Du willst Dir die Folgen eines erfolgreichen Angriffs auf
Dein IT-System ersparen?
Teste jetzt deine IT durch einen professionellen Penetrationstest!
Zum Penetrationstest

Wofür wird ARP verwendet?

Das Address Resolution Protocol wird in Broadcast-Domänen genutzt um MAC-Adressen die passende IPv4-Adresse zuzuordnen. Die Zuordnung wird lokal beim jeweiligen Netzwerkteilnehmer in einer ARP-Tabelle gespeichert.

Offense: Wie funktioniert ARP-Spoofing

Das Problem des Address Resolution Protocols liegt an der ARP-Anfrage und der ARP-Antwort. Beim ARP-Spoofing flutet ein Angreifer, mittels gefälschter ARP-Antworten die ARP-Tabellen aller Netzwerkteilnehmer. Sollte ein Netzwerkteilnehmer nun beispielsweise eine Verbindung zum Server aufbauen wollen, schaut er zuerst in seiner ARP-Tabelle nach, ob für die IP-Adresse des Servers eine MAC-Adresse hinterlegt ist. Da in der ARP-Tabelle des Clients jede IP-Adresse auf die MAC-Adresse des Angreifers zeigt, wird die Verbindung nicht zum Server sondern zum Angreifer aufgebaut.

Für einen klassischen Man-in-the-Middle Angriff, leitet der Angreifer die ankommenden Anfragen einfach weiter und kann den Netzwerkverkehr mitlesen und ggf. manipulieren. Er fungiert quasi als transparenter Proxy.

Der Angriff

Für den Man-in-the-Middle Angriff können unter anderem die Tools Ettercap und Bettercap verwendet werden. In diesem Beispiel wird in der Konsole Bettercap verwendet und Ettercap als Alternative mit grafischer Benutzeroberfläche.

In dem gezeigten Beispiel kommuniziert Client A (192.168.1.3) mit einem Client B (192.168.1.2) und der Angreifer (192.168.1.5) führt eine Man-in-the-Middle Attacke mittels ARP-Spoofing aus. Es wird gezeigt wie der Angreifer den Netzwerkverkehr mitschneiden kann. So wird auch die Anmeldung des Clients auf der vom Server gehosteten Website mitgeschnitten, bei der Authentifizierung handelt es sich hierbei um eine HTTP Basic Authentifizierung.

 

Ettercap

Man in the Middle Angriff mit grafischer Oberfläche:

Es werden folgende Schritte ausgeführt:

1. Start des Programms Ettercap.

2. “Accept” auswählen in der Leiste oben rechts.

3. Über die Lupe oben links können Hosts im Netzwerk über ARP gefunden werden und werden anschließend in der Host List (rechts neben der Lupe) angezeigt.

4. Mit dem Button “MITM Menu” kann über das Dropdown Menü “ARP-Spoofing” ausgewählt werden.

5. Werden nun unverschlüsselte Daten von einem gespooften Client verschickt, werden z.B. eingegebene Anmeldedaten im unteren Teil des Fensters angezeigt.

Bettercap

Zum Ausführen von Bettercap in der Konsole, wurde von uns der folgende Command verwendet:

				
					timeout 60 bettercap -iface eth0 -eval "set http.proxy.sslstrip true; set net.sniff.verbose true; set net.sniff.output /root/mitm.pcap; set arp.spoof.fullduplex true; arp.spoof.internal true; net.recon on; net.probe on; arp.spoof on; http.proxy on; net.sniff on"
				
			

timeout
Mit dem Zusatz timeout kann die Dauer des Man-in-the-Middle Angriffs festgelegt werden.
Dies ist besonders in umfangreichen Netzwerken vorteilhaft falls sich das für den Angriff verwendete System aufhängen sollte und der Angriff nicht mehr manuell gestoppt werden kann.

iface
Hiermit kann das Interface ausgewählt werden, welches für den Angriff verwendet werden soll.

eval
Mit diesem Flag, kann ein String an Settings an Bettercap direkt beim Start mitgegeben werden, sodass diese nicht manuell, eins nach dem anderen, gesetzt werden müssen.

net.sniff on
Dieses Modul ist ein Netzwerk-Paket-Sniffer und Fuzzer, der sowohl die BPF-Syntax als auch reguläre Ausdrücke zum Filtern unterstützt. Es ist auch in der Lage, mehrere wichtige Protokolle zu zerlegen, um Anmeldeinformationen zu sammeln.

http.proxy on
Ein vollwertiger transparenter HTTP-Proxy, der mit Javascript-Modulen programmiert werden kann. Wenn er zusammen mit einem Spoofer verwendet wird, wird der gesamte HTTP-Verkehr dorthin umgeleitet und es werden bei Bedarf automatisch Portumleitungen vorgenommen.

arp.spoof on 
Dieses Modul täuscht ausgewählte Hosts im Netzwerk mit gefälschten ARP-Paketen vor, um einen MITM-Angriff durchzuführen.

net.probe on
Wenn dieses Modul aktiviert ist, sendet es verschiedene Arten von Probe-Paketen an jede IP-Adresse im aktuellen Subnetz, damit das net.recon-Modul sie erkennen kann.

net.recon on
Dieses Modul ist für das regelmäßige Auslesen der ARP-Tabelle des Systems zuständig, um neue Hosts im Netz zu erkennen.

arp.spoof.fullduplex on 
Wenn auf „true” gesetzt, werden sowohl die Ziele als auch das Gateway angegriffen, andernfalls nur das Ziel (wenn der Router jedoch über einen ARP-Spoofing-Schutz verfügt, schlägt der Angriff fehl).

net.sniff.output
Wenn diese Option gesetzt ist, schreibt der Sniffer die erfassten Pakete in diese pcap-Datei.

net.sniff.verbose
Wenn auf „true” gesetzt, wird jedes erfasste und analysierte Paket an den „events.stream” zur Anzeige gesendet, andernfalls nur die auf der Anwendungsschicht (sni, http usw.) analysierten Pakete.

http.proxy.sslstrip
Aktivieren oder deaktivieren Sie SSL-Stripping. 

Um das SSL zu “strippen”, greift ein Angreifer in die Umleitung des HTTP- auf das sichere HTTPS-Protokoll ein und fängt eine Anfrage des Benutzers an den Server ab. … Bei einem SSL-Strip leitet der Angreifer seinerseits die Anfrage des Opfers an den Server des z.B. Online-Shops weiter und erhält die sichere HTTPS-Bezahlseite.

arp.spoof.internal
Wenn auf “true” gesetzt, werden auch lokale Verbindungen zwischen Computern des selben Subnetz gefälscht, ansonsten nur Verbindungen, die über das eingetragene Gateway aus dem Subnetz geroutet werden (Im Falle des Fullduplex-Angriffes, werden auch die Pakete vom Gateway zu den Clients über den Angreifer geleitet).

Anbei ein Screen des, vom Bettercap generierten, PCAP Files in dem man die Basic-Auth wiederfindet.

Defence: Möglichkeiten den Angriff zu verhindern

DHCP Snooping + Dynamic ARP Inspection

Um den Angriff erkennen und auch verhindern zu können setzt man auf einen Service der in einem Großteil von Netzwerken vorhanden ist: der DHCP Server.

Der DHCP Server hat eine Übersicht über alle dynamisch vergebenen IP-Adressen (und deren MAC-Adressen) im Netzwerk. Im Zusammenhang der Defense and Detection von ARP-Spoofing Angriffen zeigt sich, warum auch statische IP-Adressen mithilfe des DHCP-Server gepflegt werden sollten.

Um nicht direkt auf die Daten des DHCP-Servers zugreifen zu müssen, bieten einige Switche eine Funktionalität an, die wir uns für die Verteidigung von ARP-Spoofing zunutze machen.

DHCP Snooping:

DHCP Snooping ist eine Funktionalität die dazu dient DHCP-Angriffe zu verhindern.

Beim DHCP Snooping werden an Switchen “Trusted Ports” konfiguriert, von dem DHCP-Offers akzeptiert werden. An einem dieser “Trusted Ports” ist der DHCP-Server angeschlossen, da dieser der einzige ist, der IP-Adressen dynamisch vergeben sollte. Auch Trunk-Ports müssen den “trusted” Status im Kontext des DHCP-Snoopings haben, da hier valide DHCP-Offers übertragen werden. Stellt der Switch fest, das ein DHCP-Offer über einen anderen Port stattfindet, verwirft er das Paket.

Ein Nebeneffekt des DHCP Snoopings ist die DHCP Snooping Database in der alle IP-und MAC-Adressen vermerkt sind die durch den DHCP-Server am “Trusted Port” vergeben wurden.

Anbei der Link zur Erläuterung / Konfiguration von Cisco: DHCP Snooping

				
					configure terminal
ip dhcp snooping vlan <vlan-number>
interface <interface-name>
ip dhcp snooping trust
exit
				
			

Dynamic ARP Inspection

Die Dynamic ARP Inspection wird nun genutzt um Traffic von IP-/MAC-Adress Kombinationen zu verwerfen, die nicht in der DHCP Snooping Database stehen.

Sollte ein Angreifer nun einen ARP-Spoof Angriff durchführen, würde der Switch feststellen, dass an dem Port ARP-Pakete in das Subnetz gesendet werden, die nicht mit den Informationen aus der DHCP-Snooping-Tabelle übereinstimmen und diese Pakete dann verwerfen. Ist zudem ein Ratelimit für ARP-Pakete am jeweiligen Interface konfiguriert, würde das Interface bei Überschreitung des Limits deaktiviert werden.

				
					configure terminal
ip arp inspection vlan <vlan-number>
interface <interface-name>
ip arp inspection trust
exit
				
			

Statische vs. Dynamische IP's

Im oben genannten Beispiel von DHCP Snooping im Zusammenspiel mit Dynamic ARP Inspection werden vorerst nur dynamisch vergebene DHCP-Leases bedacht. Es kommt natürlich immer wieder vor, dass Systeme mit statischen IP-Adressen konfiguriert werden. Hier besteht zum einen die Möglichkeit auch “feste” IPs über IP-Reservierungen durch den DHCP-Server zu verteilen. Dies hat den Vorteil, dass auch diese “statisch” über DHCP vergebenen IP-Adressen in der DHCP-Snooping-Tabelle auftauchen und die DAI somit auch hier funktioniert. Bei manuell vergebenen statischen IP-Adressen funktioniert die Dynamic ARP Inspection nicht. Es gibt aber fast immer die Möglichkeit ARP ACLs (Access Control Lists) am Switch zu konfigurieren, die auch für statische IPs Anwendung finden. Diese ARP-ACLs haben bei der Prüfung Vorrang gegenüber der Prüfung durch die DAI.

DHCP Snooping Database

An dem gezeigten Beispiel wird die DHCP Snooping Database auf dem Switch gespeichert und genutzt, in großen Infrastrukturen stoßen Switche schnell an die Ressourcengrenze. Hierfür kann man beispielsweise bei Cisco die DHCP Snooping Database zentral auf einem FTP/TFTP Server ablegen und jedem Switch zur Verfügung stellen. Hierbei ist darauf zu achten, die Management-Ports der Switche und den FTP/TFTP Server in einem eigenen abgetrennten Netzbereich zu platzieren, damit nicht jeder Client Zugriff auf diese hat.

Client Isolation

Da der Angriff nur auf Broadcast Traffic basiert, ist eine elegante Lösung die Client Isolation. Über private VLANs können so Clients voneinander getrennt werden und der Broadcasttraffic kann nicht einfach durch einen Angreifer im Netzwerk mitgelesen und manipuliert werden.

Detect

Host-based detection

Bei der Host basierten Erkenneung macht man sich die Übersicht aller IP-Adressen des DHCP Servers zu Nutze. Die Übersicht der IP-Adressen kann man den Clients beispielsweise auf einer Freigabe zur Verfügung stellen.

Um einen ARP-Spoofing Angriff zu erkennen, müssen die Clients in regelmäßigen Abständen, automatisiert, ihre ARP-Tabelle anhand der DHCP Übersicht überprüfen um Unregelmäßigkeiten festzustellen. Sollten Unregelmäßigkeiten festgestellt werden, können diese in eine Datei ausgegeben werden und, beispielsweise mit Hilfe von OSSEC, überprüft werden.

IDS-based detection

Die Network IDS Lösung basiert ebenfalls auf einer Liste des DHCP Servers, die alle bekannten IP- und MAC-Adressen beinhaltet. Mithilfe von Tools wie Snort – einem IPS / IDS – können IDS-Regeln geschrieben, die bekannte MAC-Adressen mit den MAC-Adressen der eingehenden Verbindungen vergleichen und melden, wenn Unstimmigkeiten erkannt werden. IPS Regeln können nun, je nach Konfiguration, IP-Adressen blockieren oder weitere Schritte ausführen.

DHCP Snooping + Dynamic ARP Inspection

Einen ARP Spoof Angriff kann man auch über die Verteidigung mittels DHCP Snooping und Dynamic ARP Inspection erkennen. Hierzu können die Switche beispielsweise über SNMP an ein Monitoring angebunden werden und man sieht so einen vereitelten Angriff.

React

Reaktion bei Erkennung

Switche sollten bei Erkennung von ARP-Spoofing über die Dynamic ARP Inspection den verantwortlichen Port abschalten. Jegliche Fehlermeldungen der Switche können über SNMP (Simple Network Management Protocol) überwacht werden.

Das verursachende Gerät sollte isoliert und auf Kompromittierung untersucht werden.

Steigere jetzt die Sicherheit Deines IT-Systems!
Von uns erhältst Du eine ausführliche Beratung!
Jetzt kontaktieren

Referenzen

Bei der Befassung mit den folgenden ISMS-Framework-Controls spielt die Schwachstelle und deren Behebung eine Rolle:

ISO 27001:

A. 9.1.2 Zugang zu Netzwerken und Netzwerkdiensten

A.13.1.2 Sicherheit von Netzwerkdiensten

BSI Grundschutz:

NET.1.1.A7

Für die Schwachstelle gibt es einen Eintrag im MITRE ATT&CK Framework:
Attack.mitre.org

Die Schwachstelle ist unter der folgenden CVE beschrieben:
CVE-1999-0667

PSN-ID: PS-TN-2020-0001

ANDERE BEITRÄGE

Inhaltsverzeichnis

Willst Du Teil unseres Teams werden?

Wir verwenden Cookies, um Ihnen die bestmögliche Erfahrung zu bieten. Wenn Sie unsere Website weiterhin besuchen, stimmen Sie der Verwendung von Cookies zu, wie in unserer Datenschutzerklärung beschrieben.