Ergebnis 1 bis 10 von 17

Baum-Darstellung

  1. #1
    Oruv rh z Xrksvi Avatar von Atbash
    Registriert seit
    13.10.2008
    Beiträge
    104

    Standard Sicherheitslücken in TCP/IP - heute [ARP-Spoofing]

    So hier mal der erste Teil einer geplanten Tutorialreihe über konzeptionelle Sicherheitslücken in TCP/IP, von Lidloses_Auge und meiner Wenigkeit.
    Ich hoffe, es erregt Interesse bei allen die etwas tiefer in die Materie eindringen wollen.

    I. Was ist ARP?

    ARP (=="Address Resolution Protocol")
    Wollen zwei Rechner in einem Netzwerk miteinander kommunizieren, genügt die IP-Adresse nicht, denn auch in der physikalischen Schicht des TCP/IP-Referenzmodells muss eine Adressierung stattfinden.
    Hierzu wird die MAC-Adresse (oder auch Hardwareadresse genannt) benötigt, um eine physische Verbindung zueinander aufzubauen.
    Diese MAC-Adresse ist fest mit einer Netzwerkkarte verbunden. (Allerdings gibt es doch die Möglichkeit eine falsche Hardwareadresse vorzutäuschen. Stichwort 'Wardriving')
    Befinden sich die zwei Kommunikationspartner in separaten physikalischen Netzwerken, wird die MAC-Adresse des entsprechenden Routers benötigt.

    II. Wie funktioniert ARP?

    Für die Verwaltung der IP-Adresssen mit den dazugehörigen MAC-Adressen besitzt jeder Rechner eine Tabelle - den sogenannten ARP-Cache.
    Ist eine benötigte Zuordnung nicht enthalten, muss erst ein neuer Eintrag im ARP-Cache geschaffen werden.
    Hierzu sendet der Rechner einen ARP-Request (ARP-Anfrage). Der ARP-Request ist ein Broadcast-Anfrage (geht an jeden Rechner im Netzwerk) und enthält die IP-Adresse des gesuchten Rechners, sowie die IP- und MAC-Adresse des suchenden Rechners.
    Da die Anfrage an jeden Rechner im Netzwerk geht, wird sie auch von jedem Rechner geprüft.
    Ist der angefrage Rechner nicht im Besitz der gesuchten IP-Adresse verwirft er das Paket einfach.
    Wenn er allerdings der gesuchte Rechner ist, dann trägt er zuerst die IP- und MAC-Adresse des anfragenden Rechners in seinen ARP-Cache ein, und sendet danach ein ARP-Reply (ARP-Antwort), in dem seine MAC-Adresse steht.
    Im Sniffer sieht das ganze dann so aus:

    Code:
    //192.168.1.1 sucht 192.168.1.2
    //192.168.1.1 sendet:
    
    ARP-Request
    
    Sender MAC address: 1a:2b:3c:4d:5e:6f
    Sender IP address: 192.168.1.1
    Target MAC address: 00:00:00:00:00:00
    Target IP address: 192.168.1.2
    
    //192.168.1.2 trägt in seinen Cache ein: '192.168.1.1 == 1a:2b:3c:4d:5e:6f'
    //192.168.1.2 sendet:
    
    ARP-Reply
    
    Sender MAC address: aa:bb:cc:44:55:66
    Sender IP address: 192.168.1.2
    Target MAC address: 1a:2b:3c:4d:5e:6f
    Target IP address: 192.168.1.1
    
    //192.168.1.1 trägt in seinen Cache ein: '192.168.1.2 == aa:bb:cc:44:55:66'
    Mitgekommen?
    Soweit so gut.

    III. Die Lücke

    Ein gravierendes Problem ist, dass ARP-Replys auch verarbeitet werden wenn keine ARP-Requests vorangegangen sind.
    Das heißt, sendet man ein gefälschtes ARP-Reply an einen Rechner wird dieses einfach stillschweigend im ARP-Cache geändert.

    (wikipedia spricht dazu allerdings, dass es moderne Implementierungen gibt, die den ARP-Cache erst nach vorangegangenem Request ändern.
    Habe allerdings mal gehört, dass dann einfach solang Replys gesendet werden, bis zufällig ein Request vorangegangen ist. [Eintragungen im ARP-Cache verfallen bereits nach wenigen Minuten] )

    Dies ermöglicht einen Angriff auf die Authentizität des Kommunikationspartners sowie auf die Integrigtät des Traffics.




    IV. So wird die Lücke ausgenutzt.

    Spinnen wir unser Beispiel vom Sniffer weiter.
    Hinzugefügt wird ein Angreifer mit der IP 192.168.1.3 und der MAC-Adresse 11:22:33:dd:ee:ff .

    192.168.1.1 kommuniziert nun mit 192.168.1.2

    Code:
    Der Angreifer (192.168.1.3) sendet nun ein ARP-Reply mit folgendem Inhalt an 192.168.1.1
    
    Sender MAC address 11:22:33:dd:ee:ff     // (Original MAC des Angreifers)
    Sender IP address 192.168.1.2        // (IP des Kommunikationspartners [gespooft] )
    Target MAC address 1a:2b:3c:4d:5e:6f    // (Original)
    Target IP address 192.168.1.1        // (Original)
    
    // 192.168.1.1 überschreibt nun in seinem ARP-Cache den ursprünglichen Eintrag
    // '192.168.1.2 == aa:bb:cc:44:55:66'
    // mit dem neuen gespooften Eintrag
    // '192.168.1.2 == 11:22:33:dd:ee:ff'
    
    Nun kommuniziert 192.168.1.1 mit 192.168.1.3, allerdings 192.168.1.2 immernoch mit 192.168.1.1
    Um dies noch zu unterbinden schickt der Angreifer abermals ein gefälschtes ARP-Reply. Nun an 192.168.1.2.
    
    Sender MAC address 11:22:33:dd:ee:ff    // (Original)
    Sender IP address 192.168.1.1        // (IP des Kommunikationspartners [gespooft] )
    Target MAC address aa:bb:cc:44:55:66    // (Original)
    Target IP address 192.168.1.2        // (Original)
    
    // 192.168.1.2 überschreibt nun auch in seinem ARP-Cache den ursprünglichen Eintrag
    // '192.168.1.1 == 1a:2b:3c:4d:5e:6f'
    // mit dem neuen gespooften Eintrag
    // '192.168.1.1 == 11:22:33:dd:ee:ff'
    Nun sendet 192.168.1.1 alles an 192.168.1.3 (Angreifer) ; und 192.168.1.2 alles an 192.168.1.3 (Angreifer) ;



    Wenn nun 192.168.1.3 die empfangenen Nachrichten von 192.168.1.1 an 192.168.1.2 und umgekehrt weiterleitet, fungiert er als eine Art Proxy.
    Aus 192.168.1.3 ist ein Man-in-the-Middle geworden.
    Für die visuellen Lerner unter euch.. das Ganze stellt sich dann so dar:


    Dies kann ausgenutzt werden um den gesamten Traffic zwischen 1.1 und 1.2 zu überwachen und gegebenenfalls zu manipulieren.
    Bei verschlüsselten Verbindungen ist das natürlich nicht so einfach. Es gibt allerdings spezielle Ansätze um auch dies zu ermöglichen. (Vielleicht später oder in einem anderen Tut.)

    V. Gegenwehr

    Nun da ARP auf der Physikalischen Schicht des TCP/IP-Modells arbeitet, und somit weit weg von der Anwendungsschicht und damit auch vom Anwender, fällt ein Angriff in der Regel garnicht groß auf.
    Allerdings gibt es Möglichkeiten um sich vor ARP-Spoofing zu schützen.
    Da wäre zum einen, dass man die Eintragungen im ARP-Cache manuell und statisch macht.
    Dies ist wohl ein nahezu 100%-er Schutz vor ARP-Spoofing, da Änderungen ebenfalls nur manuell getätigt werden können.
    Dieser Vorteil ist genauso auch Nachteil, da nun jede neue Netzwerkkarte mit ihrer spezifischen MAC-Adresse händisch neu in den ARP-Cache geschrieben werden muss.
    Dies kann ganz einfach per CMD mit dem Befehl 'arp' gemacht werden.

    Weitaus komfortabler sind dann solche Tools wie ARPwatch. Dieses kleine Spielzeug alarmiert den Administrator, wenn sich etwas in der IP/Ethernet-Zuordnung ändert, und logt die Daten des Angreifers.

    Das war erstmal das, so wie ich finde, Wichtigste was man über ARP-Spoofing wissen sollte.

    ____________________________________________

    Ich hoffe das Tutorial findet Gefallen, auch wenn es vielleicht ein bisschen trockener ist als die üblichen Tutorials.
    Wenn der Inhalt dich nicht interessiert hat, bitte ich dich trotzdem dir jeden Kommentar zu verkneifen.
    Wenn der Inhalt dich interessiert hat, aber deine Erwartungen nicht erfüllt wurden, dann bitte ich dich deine Kritik konstruktiv zu posten, um gegebenenfalls das Tut zu editieren.
    Lob ist natürlich auch gern gesehen

    Viel Spaß und Glück wünscht euch

    atbash
    Geändert von Atbash (11.09.2009 um 01:21 Uhr) Grund: Bilder sowie Ergänzung zu statischem Cacheeintrag hinzugefügt.
    [S] R34l L33t-H4(K3|2 bUDdY 4 m3

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    0x30 (17.06.2010), br00_pwn (13.08.2010), Cristhecrusader (17.06.2010), L!ke (13.08.2010), Master of Chaos (13.08.2010), MeGaM (17.06.2010)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •