########################################### ARP-Spoofing für Man-In-The-Middle-Attacken ########################################### Grundlegendes: # Was ist das ARP? --------------------------- ARP steht für Address Resolution Protocol ein Netzwerkprotokoll, das die Zuordnung von Hardwareadressen (MAC) zur IP ermöglicht. # Wie Funktioniert das ARP? --------------------------- Bsp. für ein LAN: Eine ARP-Anforderung mit der IP-Adresse des gesuchten Computers wird gesendet. Irgendein Host, der die IP-Adresse kennt, sendet die passende MAC-Adresse zurück. Es muss nicht unbedingt der gesuchte Host sein der Antwortet, da jeder einen ARP-Cache über verfügbare Hosts besitzt. Wenn ein Host eine ARP-Anforderung oder Antwort erhält, wird der ARP-Cache aktualisiert. Hier werden IP- und MAC-Adresse eingetragen. Dieser Eintragt läuft, wenn er nicht genutzt wird, im normalfall nach 20 Minuten ab. Anzeigen des ARP-Cache: Windows: arp -a Schnittstelle: 192.168.0.3 --- 0x2 Internetadresse Physikal. Adresse Typ 192.168.0.1 00-0c-f6-08-0b-89 dynamisch 192.168.0.4 00-10-dc-0a-8d-be dynamisch Linux/Unix: arp -e [drwhiteletter@dwl drwhiteletter]$ /sbin/arp -e Address HWtype HWaddress Flags Mask Iface 192.168.0.3 ether 00:06:F4:04:AA:70 C eth0 192.168.0.1 ether 00:0C:F6:08:0B:89 C eth0 # Was ist ARP-Spoofing? --------------------------- Hier geht es darum, den ARP-Cache des Remote-Rechners, mit gefälschten ARP-Paketen so zu modifizieren, dass der eigene Rechner für einen anderen gehalten wird und wir so den Ansatz für eine Man-In-The-Middle-Attacke setzen. Als Man-In-The-Middle-Attacken (MIM) bezeichnet man das abhören zweier Hosts indem wir uns zwischen die Verbindung "schalten". Genaueres gleich. # Wie Funktioniert eine "Man-In-The-Middle-Attacke"? ------------------------------------------------------ Nehmen wir an, wir befinden uns in folgendem Netzwerk: Oliver Peter \ / Switch | Hacker-Hans Jetzt muss man sich das so vorstellen, das Hacker-Hans Oliver erzählt, dass er Peter ist und Peter erzählt Hacker-Hans er sei Oliver. Wenn jetzt Peter dem Oliver etwas erzählen will, redet er mit Hacker-Hans und dieser erzählt das daraufhin Oliver. So weiß Hacker-Hans immer was die beiden miteinander besprechen. Oliver <-> Hacker-Hans <-> Peter Ok, aber wie sieht das Ganze jetzt im Netzwerk aus? Rechnername: Oliver Peter IP-Adresse: 192.168.0.1 192.168.0.2 MAC-Adresse: 00-40-f4-f4-f4-f4 00-50-f4-f4-f4-f4 \ / Switch | Rechnername: Hacker-Hans IP-Adresse: 192.168.0.3 MAC-Adresse: 00-60-f4-f4-f4-f4 Wenn nun ein Paket von Oliver an Peter verschickt wird, sieht der Host zunächst in seinem ARP-Cache nach ob er die Informationen für diesen Host bereits besitzt. Ist dies nicht der Fall wird eine Anfrage an alle Clients im Netz versendet (siehe weiter oben: Wie Funktioniert das ARP?). Nun weiß der Host zu der IP die zugehörige MAC-Adresse und sendet sein Paket an diese. Doch nun kommt Hacker-Hans ins Spiel und sendet gefälschte Requests an Oliver und Peter. Diese Requests enthalten als Angabe, das zur IP-Adresse von Oliver (192.168.0.1) die MAC-Adresse von Hacker-Hans gehört. Genauso bei Peter, auch hier werden dann im ARP-Cache die Angaben übernommen, dass zur IP-Adresse von Peter (192.168.0.2) die MAC-Adresse von Hacker-Hans gehört. Der ARP-Cache von Oliver würde also in etwa so aussehen: C:\>arp -a Schnittstelle: 192.168.0.1 on Interface 0x1000003 Internetadresse Physikal. Adresse Typ 192.168.0.2 00-60-f4-f4-f4-f4 dynamisch und der von Peter so: C:\>arp -a Schnittstelle: 192.168.0.2 on Interface 0x1000003 Internetadresse Physikal. Adresse Typ 192.168.0.1 00-60-f4-f4-f4-f4 dynamisch Nun werden alle Pakete über Hacker-Hans geleitet. Als nächstes geht es darum, welche Tools Hacker-Hans für diese Aktion benutzen könnte und wie deren Benutzung aussieht. # Praktische Umsetzung mit winarp_mim (Windows) ------------------------------------------------------ Erstmal muss hier IP-Forwarding aktiviert werden, wie das funktioniert ist in der README von diesem Tool nachzulesen (Auch in Deutscher ergänzter Version erhältlich auf dem Login-club unter: www.login-club.org...). Auch ist auf die richtigen WinPcap-Treiber zu achten, näheres ist auch hier in der Deutschen README zu finden. Eingabe von Hacker-Hans: winarp_mim -a 192.168.0.1 -b 192.168.0.2 # Praktische Umsetzung mit arpspoof (Linux) ------------------------------------------------------ ARP-Spoof ist ein Teil des dsniff Pakets das wie der Name schon sagt fürs ARP-Spoofing entwickelt wurde. Erstmal muss Hacker-Hans sein System so präparieren, dass es wie auch unter Windows schon, die Pakte weiterleitet (IP-forwarding). Fragroute ist hier sehr geeignet: [root@dwl drwhiteletter]# /usr/sbin/fragrouter -B1 fragrouter: base-1: normal IP forwarding Nun kann es losgehen und Hans tippt folgendes: arpspoof -t 192.168.0.1 192.168.0.2 Jetzt kann Hacker-Hans alle Daten die von Oliver an Peter gesendet werden mit einem beliebigen Sniffer mitlesen oder aufzeichnen. # Praktische Umsetzung mit ettercap GUI (Linux) ------------------------------------------------------ Hier hat es Hacker-Hans ganz einfach. Ettercap ist ein Sniffer für geswitchte Netzwerke, der auch eine GUI (Grafisches Benutzerinterface) zur Verfügung hat. Mit /usr/sbin/ettercap -G wird ein Fenster gestartet, dort klickt Hacker-Hans dann im linken Fenster die IP von Oliver und im Rechten Fenster die IP von Peter an. Dann wählt er sich eine Sniff-Art aus und das wars. # Wie kann man ARP-Spoofing erkennen oder Verhindern? ------------------------------------------------------ Eine Möglichkeit wären statische ARP-Einträge zu erzeugen. Leider ist dies nicht immer wirksam, da manche Betriebssysteme auch diese Einträge überschreiben wenn eine ARP-Antwort eintrifft. Statische Einträge für Windows und Linux: arp -s Andere Möglichkeiten wären z.B. Intelligente Hardware die solche Attacken wirkungslos machen kann oder auch das überwachen mit ArpWatch, Arpwarp oder XArp. # Software: ------------- Spoofing-Software - arpspoof - http://www.monkey.org/~dugsong/dsniff/ - (win)arp_mim - http://www.arp-sk.org/ (unter www.login-club.org unter downloads/Netzwerk findet ihr ein Archiv mit einer Deutschen Readme zu diesem Programm) - (win)arp_sk - http://www.arp-sk.org/ Sniffer - Ethereal - http://www.ethereal.com/ - Ettercap - http://sourceforge.net/projects/ettercap/ - tcpdump - http://www.tcpdump.org/ Forwarding - fragrouter - http://www.securityfocus.com/tools/176 Verteidigung - Arpwatch - http://www.securityfocus.com/tools/142 http://www.login-club.org | http://board.login-club.org | irc://irc.euirc.net:6667/loginclub Loginclub Info: Geschrieben von "DrWhiteLetter" (DrWhiteLetter@login-club.org) September 2004 __ _ ________ __ / / ___ ___ (_)___ / ____/ /_ __/ /_ / / / __ \/ __ \/ / __ \/ / / / / / / __ \ / /__/ /_/ / /_/ / / / / / /___/ / /_/ / /_/ / /____/\____/\__ /_/_/ /_/\____/_/\____/_____/ / /_/ / \____/ # Kopieren erlaubt, verändern verboten!