ARP Cache Poisoning und Paket-Sniffing

© Eric Issele, 123RF

Ausgeschnüffelt

Um in geswitchten Netzwerken an sensible Informationen zu gelangen und ihre eigene Identität zu verbergen, verwenden Cracker Techniken wie ARP Cache Poisoning. Dieser Artikel erklärt, wie es funktioniert.
KVM etabliert sich als Standardlösung zur Virtualisierung unter Linux. Der ADMIN-Schwerpunkt hilft beim Bau virtueller Linux-Maschinen, stellt das ... (mehr)

In der Theorie sollten in einem Netzwerk mit Switches die Sicherheitsrisiken gering sein. Der Switch tauscht Daten nur mit dem Rechner aus, für den sie gedacht sind, statt sie wie bei einem Broadcast-Medium allen zugänglich über eine gemeinsame Leitung zu schicken. Doch wie so oft haben findige Hacker auch hier Sicherheitslücken ausgemacht, die die schöne Theorie Makulatur werden lassen.

Eine solche Methode besteht darin, die eigene MAC-Adresse zu fälschen und die ARP-Tabelle zu "vergiften" (im Englischen wird von ARP Cache Poisoning gesprochen). Die ARP-Tabellen in Netzwerkgeräten und Rechnern speichern die Zuordnung von IP- und den MAC-Adressen, die in der Hardware der Netzwerkkarte festgelegt sind, sich aber dennoch auch von Hand im Betriebssystem ändern lassen. Weil das ARP-Protokoll keine Zustandsinformationen speichert, lässt sich der ARP-Cache überschreiben, außer ein Eintrag ist explizit als "permanent" gekennzeichnet.

ARP Cache Poisoning verschafft einem Angreifer die Gelegenheit, die Daten zwischen zwei Rechnern unerlaubt mitzuschneiden. Der beteiligte Computer A denkt dabei, er würde mit B kommunizieren, aber aufgrund der gefälschten ARP-Einträge gehen die Pakete in Wahrheit an den Computer des Angreifers. Der wiederum kann entweder A direkt antworten oder die Pakete an B weiterleiten, nachdem er sie zur weiteren Verwendung gespeichert hat. Genauso macht er das mit den Paketen von B, er ist also bei diesem Angriff der klassische Man-in-the-Middle.

Tools

Um ARP Cache Poisoning anzuwenden, muss der Angreifer sich im selben Netzwerksegment befinden wie die Systeme, für die er sich interessiert. Der erste Schritt besteht darin, die IP-Adressen und die zugehörigen MAC-Adressen herauszufinden. Dafür gibt es einige Tools, zum Beispiel Ettercap [1], eine Suite von Programmen für Man-in-the-Middle-Angriffe in einem lokalen Netz. Es kann Verbindungen abhören (Sniffing), nach Inhalten filtern, unterstützt aktive wie passive Protokollanalyse und vieles mehr. Der Befehl

ettercap -T -M arp:remote //

bringt schnell alle Hosts im aktuellen Subnetz in Erfahrung. Um die Ergebnisse anzusehen, drücken Sie [L]. Mit der Taste [h] gibt das Tool einen Hilfetext aus. Um die fortlaufende Ausgabe der gelesenen Pakete abzustellen, drücken Sie die Leertaste.

Das Arpspoof-Tool aus dem Dsniff-Paket [2], einer freien Suite für Netzwerk-Auditing und Penetration-Testing, erlaubt das ARP-Poisoning einer bestimmten Adresse derart, dass das betroffene System nicht mehr mit anderen Rechnern kommunizieren kann. Das Paket enthält Programme wie »dsniff« , »filesnarf« , »mailsnarf« , »msgsnarf« , »urlsnard« und »webspy« , die passiv den Netzwerkverkehr auf interessante Daten hin untersuchen. Die Tools »arpspoof« , »dnsspoof« und »macof« helfen dabei, Pakete mitzulesen, die normalerweise in geswitchten Netzwerken nicht zu sehen wären. Das kompatible, aber eigenständige Arpspoof [3] kann einfacher als Ettercap Pakete umleiten:

arpspoof -i eth0 -t Target Host

Die Angabe der Netzwerkschnittstelle ist optional, aber erforderlich, wenn man mehr als eine Netzwerkkarte im Rechner stecken hat. Die Option »-t« gibt den Rechner an, dessen Traffic man übernehmen möchte. Der Host kann etwa das Default Gateway sein, was dann verhindert, dass der angegriffene Rechner Ziele außerhalb seines lokalen Netzes erreichen kann.

Arpspoof leitet Pakete um, indem es ARP-Antworten fälscht. Dazu verwendet es die »arp_send()« -Funktion, die ein ARP-Paket mit Quell-/Ziel-IP und der MAC-Adresse verschickt. Die Libnet ist eine Bibliothek, die eine API für Netzwerkprogrammierung in verschiedenen Protokollen bietet.

Wie genau ARP-Poisoning funktioniert, lässt sich gut mit dem Nemesis-Tool [4] nachvollziehen. Hat man die IP- und die MAC-Adresse des Zielrechners, kann man mit Nemesis die ARP-Informationen manipulieren. Nemesis ist ein Kommandozeilentool, mit dem sich laut Dokumentation ARP-, DNS-, Ethernet-, ICMP-, IGMP-, IP-, OSPF-, RIP-, TCP- und UDP-Pakete zusammenstellen und ins Netz einschleusen lassen. Listing 1 zeigt, wie man mit Nemesis zwei Pakete schnürt, die den ARP-Cache manipulieren.

Listing 1

ARP-Pakete mit Nemesis

01 $ while true
02 > do
03 > sudo nemesis arp -v -r -d eth0 -S 192.168.1.2 -D 192.168.1.133 -h 00:22:6E:71:04:BB -m 00:0C:29:B2:78:9E -H  00:22:6E:71:04:BB -M  00:0C:29:B2:78:9E
04 > sudo nemesis arp -v -r -d eth0 -S 192.168.1.133 -D 192.168.1.2 -h  00:22:6E:71:04:BB -m 00:22:6B:7E:AD:7C -H  00:22:6E:71:04:BB -M  00:22:6B:7E:AD:7C
05 > echo "Redirecting"
06 > sleep 10
07 > done

Die verwendeten Nemesis-Optionen zeigt Tabelle 1. Die beiden Kommandos fälschen die ARP-Antworten von 192.168.1.2 an 192.168.1.133 und dann von 192.168.1.33 an 192.168.1.2 und senden falsche ARP-Antworten, damit der gefälschte ARP-Cache erhalten bleibt. Um das sicherzustellen, läuft Listing 1 in einer Schleife, die die beiden Befehle alle zehn Sekunden aufs Neue ausführt. Der angegriffene Rechner ist dann offline und nicht mehr in der Lage, mit anderen zu kommunizieren.

Tabelle 1

ARP-Optionen von Nemesis

Option

Funktion

-S

Quell-IP-Adresse

-D

Ziel-IP-Addresse

-h

MAC-Adresse des Senders

-m

MAC-Adresse des Ziels

-H

Quell-MAC-Adresse

-M

Ziel-MAC-Adresse

Sniffing

Ein Ziel eines ARP-Angriffs ist es, den Angreifer in die Lage zu versetzen, interessante Informationen, die über das Netz gehen, mitzuschneiden und weiterzuverwenden. Dafür gibt es wieder mehrere Tools. So bietet Ettercap den Bridge Mode, der gelesene Pakete mitschneidet, die sich später auswerten oder auch gleich manipulieren lassen, bevor man sie an seine Angriffsziele weiterleitet. Der Bridge Mode (Abbildung 1) setzt zwei Netzwerkkarten voraus, die sich im gleichen Netzwerksegment befinden. Solchermaßen aufgesetzte Rechner sind sehr schwer zu finden:

ettercap -Tq -i eth0 -B eth1
Abbildung 1: Im Bridge Mode schneidet Ettercap die Pakete mit, die zwischen zwei Rechnern ausgetauscht werden.

Der Schalter »-i« setzt das primäres Interface »eth0« fest, als Bridging-Interface dient »eth1« . Im der grafischen Schnittstelle von Ettercap, die sich mit »-G« starten lässt, findet sich die Funktion unter »Sniff | Bridged Sniffing« .

Um alle Pakete in eine Datei zu schreiben, gibt es eine Reihe von Tools, darunter »p0f« , ein passives Betriebssystem-Fingerprinting-Programm. Mit dem Parameter »-w« aufgerufen, schreibt »p0f« eine Tcpdump-kompatible Datei:

p0f -w dumpfile.pcap

Genauso funktioniert das mit dem Dsniff-Tool aus dem gleichnamigen Paket:

dsniff -w dumpfile.pcap

Auch Ettercap kann die mitgeschnittenen Pakete in ein File schreiben:

ettercap -T -M arp:remote /192.168.1.1/ /192.168.1.130/ -w dumpfile.pcap

Zuverlässiger ist es, nur die Pakete von einem bestimmten Computer mitzuschneiden statt den kompletten Traffic. Dabei stürzt Ettercap gelegentlich ab.

Um die gespeicherten Daten zu untersuchen, können Sie Scapy [5] verwenden, das ebenso spezielle Datenpakete anfertigen kann, wie auch Netze scannen, Routen tracen und so weiter. Im interaktiven Modus starten Sie »scapy« und lesen die Protokolldatei ein, dann zeigt Scapy eine Grafik ähnlich der in Abbildung 2.

Abbildung 2: Scapy bereitet Paket-Dump-Dateien auf Wunsch grafisch auf und zeigt dabei den Inhalt der TCP/IP-Pakete im Detail an.
>>> a=rdpcap("dumpfile.pcap")
>>> a
<dumpfile.pcap: TCP:9522 UDP:2386 IMCP:15 Other:611>
>>> a[423].pdfdump(layer_shift=1)

Scapy kann auch grafisch darstellen, was im Netzwerk passiert, indem es ein einfaches Diagramm des Datenflusses erstellt. Dazu bietet es die Methode »conversations()« , die voraussetzt, dass die Pakete Graphviz und Imagemagick installiert sind. So schneidet der folgende Befehl den WLAN-Verkehr mit und zeigt ihn grafisch an.

>>> a=sniff(iface="wlan0", prn=lambda x: x.summary())
>>> a.conversations()

Das Ergebnis ist in Abbildung 3 zu sehen. Mit der rechten Maustaste öffnet sich auf dem dargestellten Fenster ein Menü, mit dem sich das Diagramm in verschiedenen Formaten speichern lässt.

Abbildung 3: Scapy gibt eine Übersicht über den Datenfluss im Netz.
comments powered by Disqus

Artikel der Woche

Support-Ende von SMBv1

Mit dem aktuellen Update für Windows 10 und Windows Server 2016 steht eine Änderung ins Haus, die gerade für Benutzer älterer Linux-Distributionen große Auswirkungen hat. Nachdem Microsoft es über viele Jahre schon angekündigt hat, entfernt der Konzern mit dem aktuellen Update-Release den Support für das SMB-Protokoll 1. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Linux-Backup

Welche Backup-Lösung setzen Sie für Linux im professionellen Umfeld ein?

  • keine
  • eigene Scripts
  • rsnapshot
  • rdiff-backup
  • Bacula
  • Bareos
  • Borg
  • Duplicity
  • Amanda
  • Burp
  • Clonezilla
  • Acronis
  • Arkeia
  • SEP sesam
  • Veeam
  • Redo Backup
  • Relax-and-Recover
  • andere kommerzielle Software
  • andere Open-Source-Software

Google+

Ausgabe /2017

Microsite