ARP Address Resolution Protocol

Was ist das Address Resolution Protocol?

Heute schauen wir uns die Man-in-the-Middle-Attacke über das Address Resolution Protocol – kurz ARP – an.

Die Aufgabe von ARP ist es, die physischen Adressen – also die Mac-Adressen – Netzwerk Adressen, beispielsweise IPv4, zuzuordnen. Die Mac-Adressen und die Zuordnung zu den jeweiligen IP Adressen wird bei allen Rechnern in der sogenannten ARP Tabelle hinterlegt.

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

Der Versuchsaufbau für den ARP Angriff

Um den ARP Angriff zu simulieren, haben wir eine kleine Testumgebung aufgebaut. In dieser haben wir drei Geräte an einen Switch angebunden. Neben einem Server mit der IP Adresse 10.10.0.2, haben wir zwei Clients mit den IP-Adressen 10.10.0.3 und 10.10.0.4.

Wenn jetzt der Client mit der IP Adresse 10.10.0.3 eine Webseite auf dem Server aufruft, fragt dieser mit einem sogenannten ARP Request an, zu welchem Client die IP Adresse 10.10.0.2 gehört. Der dazugehörige Client – in unserem Fall der Server – antwortet dem Anfragenden über ARP, dass die IP-Adresse 10.10.0.2 ihm gehört und schickt ihm ein ARP Paket mit seiner MAC-Adresse. 

Unser zweiter Client – mit der IP Adresse 10.10.0.4 – simuliert in unserem Versuch den Angreifer. Dieser sendet nun ebenfalls ARP Pakete mit seiner eigenen MAC-Adresse in das Netzwerk, in denen er behauptet, der Server mit der IP 10.10.0.2 und der Client mit der IP 10.10.0.3 zu sein. Das heißt im Umkehrschluss, dass alle Geräte im Netzwerk die MAC-Adresse des Angreifers zusammen mit den IP Adressen der Clients in ihren ARP Tabellen speichern. Wenn nun der Client 10.10.0.3 eine Website auf dem Server 10.10.0.2 aufruft, dann würde der gesamte Traffic über den Angreifer laufen. Das schauen wir uns jetzt in der Praxis an.

ARP Angriff über Man-in-the-Middle

Um den Man-in-the-Middle-Angriff in der Praxis zu simulieren, verwenden wir Ettercap. Wir wählen das entsprechende Netzwerkinterface aus und scannen einmal nach den Hosts im Netzwerk. Als Ziel wählen wir die IP 10.10.0.2 und 10.10.0.3, damit wir den Traffic in beide Richtungen mithören können. Jetzt wählen wir ARP-Poisoning um den Angriff zu beginnen. 

Datenverkehr mit Wireshark sichtbar machen

Um besser sehen zu können, was genau während des Angriffs passiert, verwenden wir Wireshark, um den Netzwerkverkehr zu sichten. Dazu setzten wir einen Filter auf “ARP”. Bevor wir das ARP Poisoning starten, sehen wir unter dem “ARP” Filter keinerlei Datenverkehr. Wenn wir den Man-in-the-Middle-Angriff nun über Ettercap starten, dann sieht man ARP Pakete im Datenverkehr fliegen. Wireshark erkennt diese Pakete als Duplikate, da wir als Angreifer alle IP-Adressen per Broadcast auf unsere MAC-Adresse ins Netzwerk senden.

Wenn wir unseren Filter nun auf “http” anpassen, dann sehen wir was passiert, wenn ein Client nun versucht eine Webseite aufzurufen. Wir rufen also nun von unserem Client 10.10.0.3 die Webseite 10.10.0.2 auf. Wireshark zeigt uns nun, dass Anfragen der IP-Adresse 10.10.0.3 an den Server 10.10.0.2 gesendet werden. Da es sich hierbei um ganz normale, unverschlüsselte HTTP-Pakete handelt, können wir diese komplett mitlesen.

Methoden zum Unterbinden des Angriffs

Wie kann man diese ARP-Angriffe unterbinden? Dafür gibt es verschiedene Möglichkeiten der Erkennung.

Infrastructure Based (Dynamic ARP Inspection)​

Eine Methode, diese Art von Angriffen zu unterbinden, ist es direkt Sicherheitseinstellungen an unserer Hardware vorzunehmen. In unserem Fall ist dies ein Cisco Switch. An diesem schalten wir die “ARP Inspection” ein. Dadurch werden die MAC-Adressen im Ethernetframe mit der MAC-Adresse im ARP Paket verglichen. Stellt der Switch nun fest, dass es sich im unterschiedliche Adressen handelt, dann schaltet er den dazugehörigen Port sofort ab. 

Wenn wir den Filter in Wireshark zurück auf “http” setzten und nun erneut versuchen die Webseite aufzurufen, sieht man, dass der Angreifer keinen Traffic mehr mitlesen kann. Der Angriff wurde somit komplett unterbunden. Der Angreifer ist komplett aus dem Netzwerk ausgeschlossen .

Host basiert (DHCP-Server)

Eine weitere Methode um ARP-Angriffe zu verhindern ist der Einsatz eines DHPC-Servers. Damit der DHCP Server jede IP-Adresse im Netzwerk kennt, sollten auch statische Adressen im DHCP Server gepflegt werden. Nun kann man eine Übersicht aller bekannten IP- und MAC-Adressen als CSV oder XML auf einer SMB-Freigabe bereitstellen. Bei der Host basierten Lösung erstellt der Client einen Snapshot seines ARP-Caches und vergleicht diesen mit der bereitgestellten Übersicht auf dem SMB-Share. So erkennt der Client, ob es sich bei dem Gegenüber um einen authentifizierten Netzwerkteilnehmer handelt. 

Mit Hilfe von Programmen wie OSSEC – einem Open-Source Intrusion Detection-System – können dann solche Angriffe erkannt werden.

Network IDS based (DHCP)

Die Network IDS basierte 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 werden, 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. 

ANDERE BEITRÄGE
LLMNR Poisoning Header Knowledge Base
LLMNR Poisoning

Was ist LLMNR und warum ist das “Vergiften” dieser Pakete so gravierend? Um den LLMNR-Poisoning Angriff zu erklären gehen wir zunächst

Mehr lesen »

Inhaltsverzeichnis

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.