IP-Fragmentierung (Ping of Death) °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ========================= || von mr.gentleman || || m.r.gentleman@gmx.de || || www.anthraxLP.de || ========================= Vorwort Ein einzelnes IP-Paket ist inklusive Header maximal 65'535 Bytes lang, Ethernet-Pakete können jedoch maximale 1'500 Bytes Daten übertragen. Grössere Pakete werden fragmentiert und beim Empfänger wieder defragmentiert, wobei die Zusammensetzung anhand eines Offset-Wertes erfolgt. Dies wird gemacht, um Netzwerkabschnitte zu überwinden, welche lediglich eine maximale Paketlänge unterstützen. Jedes Paketfragment erhält neben dem Offset-Wert auch noch eine Identifikationsnummer, aber nur das erste enthält den TCP-Header und damit die Port-Nummer. Dieser Offset-Wert bestimmt für jedes Fragment, wohin es gehört oder wohin es soll. Dadurch ist es möglich, dem letzten Fragment einen Offset zu geben, der inklusive Fragmentgrösse einen grösseren Wert als die maximalen 65'535 Bytes ergibt. Dieses übergrosse Ping-Paket erzeugt anschliessend einen Buffer-Overflow. Dieser Angriff funktioniert nicht nur mit ICMP und Ping, sondern auch mit UDP und TCP. Obwohl ein ordentlicher Ping-Befehl keine Pakete grösser als 65'507 Bytes (65'535 Bytes abzüglich 20 Bytes IP-Header und 8 Bytes ICMP-Header) zulässt, bot bei den ersten Versionen von Windows 95 der dort implementierte Ping-Befehl das antsprechende Feature in Form eines Parameters. Einfach "ping -l 65510 zielhost" eingeben, und der Todes-Ping wird ausgeführt. Angriffsmöglichkeiten Als eine der erfolgreichsten Angriffsmöglichkeiten gegen Sniffer sind solche mit fragmentierten IP-Paketen. TCP-Filter können auch in der Regel nicht mehr sicher unterscheiden, ob die Paket ins interne Netz gelassen werden dürfen, da die Port-Information bei den meisten Paketen fehlt. Wenn die Zielstation nun auch noch unvollständige Paketfragmentfolgen auswertet - und jene auch nicht verwirft - kann eine Firewall ohne grössere Probleme umgangen werden. Ein einfacher aber wirkungsvoller Angriff, der IP-Fragmentierung ausnutzt, ist der sogenannte "overlapping fragment attack" nach RFC 1858. Die derzeitige Internet-Protokoll Spezifikation RFC 791 beschreibt einen Reassemblierungs-Algorithmus, der neue Fragmente produziert und dabei jeden überlappenden Teil der zuvor erhaltenen Fragmente überschreibt. Wird ein solcher Algorithmus angewendet, so kann ein Angreifer eine Folge von Paketen konstruieren, in denen das erste Fragment (mit einem Offset der Länge Null) harmlose Daten beinhaltet (und dadurch von einem Paketfilter weitergeleitet werden kann). Ein beliebiges nachfolgendes Paket mit einem Offset, der größer als Null ist, könnte TCP-Header-Informationen (z.B. destination port) überlappen. Diese würden durch den Algorithmus modifiziert (überschrieben). Dieses zweite Paket wird von vielen Paketfiltern nicht gefiltert. Gegenmaßnahme hierzu ist, Paketfilter zu verwenden, die ein Minimum an Fragment Offset für Fragmente verlangen. Nur wenige neuere TCP/IP-Stacks erkennen dieses Problem und korrigieren dieses. Ältere Router lassen sich mit diesem Trick einfach durchtunneln, sie bieten keinen Schutz. Besonders aber Firewalls, die auf der Basis der Stateful Paket Filterung (SPF) arbeiten, wie z.B. RAPTOR EAGLE und FIREWALL-1 liessen sich so durchtunneln. Content-Anbieter im Internet und ISP´s, die mit diesen Firewalls NT-Server schützen wollten, wurden so Ziel der unzähligen Angreifer, die neue Exploits mal testen wollten. Schutzmassnahmen Anfang 1997 war von dieser Attacke so ziemlich alles betroffen, was einen IP-Stack hatte. Von der Workstation bis zum Drucker war damals praktisch nichts dagegen gewappnet. Abhilfe schafft nur eine vollständige Reassemblierung der TCP/IP-Pakete oder der Einsatz eines Proxy. Nachteil dieser Lösung ist ein enormer Einbruch in der Performance, der den Vorteil der SPF-Firewalls völlig zunichte macht. Dies zeigt aber, daß Firewalls keineswegs perfekt sind. Will man solchen Angriffen zuvorkommen, so ist man als Betreiber eines mission critical Systems auf die ständige Betreuung eines Experten angewiesen. Da von diesem Angriff nur spoofende Versionen existieren, können die Täter oft nicht aufgespürt werden. So ich hoffe ihr habt viel Sapß, aber richitet keine finanziellen Schaden an, denn so zieht ihr andere Hacker in den Dreck mr.gentleman m.g.gentleman@gmx.de danke schön an einen freund, der mir eine teil dieses textes geschrieben hat!