Im Intranet basiert die Adressierung, anders als im Internet, nicht auf Layer 3 (IP), sondern auf Layer 2 (Ethernet). Ein Paket findet sein Ziel über die MAC-Adresse. Damit die Auflösung zwischen IPv4- und MAC-Adressen reibungslos funktioniert, kommt ARP (Address Resolution Protocol) beziehungsweise sein Pendant RARP (Reverse ARP) zum Einsatz.
Möchte Computer A mit Computer B kommunizieren, schickt A einen ARP-Request an die Broadcast-Adresse, um die MAC-Adresse von B in Erfahrung zu bringen. Computer B antwortet mit einem ARP-Reply. Im TCP-Dump sieht solch eine Konversation folgendermaßen aus:
13:37:23.694077 ARP, Request who-has 192.168.0.42 tell 192.168.0.17, length 28
13:37:23.698098 ARP, Reply 192.168.0.24 is-at c0:d3:de:ad:be:ef, length 46
Das Ergebnis der Abfrage wird im ARP-Cache gespeichert. Die Anzahl Sekunden, bis ein erneuter ARP-Request gesendet wird, definiert unter Linux der Wert in »/proc/sys/net/ipv4/neigh/default/ gc_stale_time
«
. Der Administrator kann den Wert auch pro Interface setzen unter »/proc/sys/net/ipv4/neigh/eth0/gc_stale_time
«
.
Der einfachste Angriff auf ARP-Ebene basiert darauf, dass der Angreifer kontinuierlich ARP-Reply-Pakete an Computer A schickt und so seine eigene MAC-Adresse für die IP-Adresse von Computer B setzt. Sendet er nun noch ein ARP-Reply an Computer B, in dem seine MAC-Adresse für die von Computer A eingetragen ist, verfügt er über eine bidirektionale Man-in-the-Middle-Verbindung. Dieser Angriff wird auch Network Hijacking genannt. Nun ist der Angreifer in der Lage, sämtlichen Traffic zwischen den beiden Computern zu lesen und zu manipulieren.
Dass dies kein Hexenwerk ist, lässt sich einfach an einem kurzen Python-Skript (Listing 1: "ARP-Angriff mit Scapy") demonstrieren, das den Paketgenerator
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.