[Hacking] DosAngriffe

Dieses Thema im Forum "Security Tutorials" wurde erstellt von sammy1990, 8. April 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 8. April 2006
    DosAngriffe

    1. Einleitung
    2. SYN-Flooding
    3. Ping of Death alias Large Packet Attack
    4. Finger
    5. Ping Flooding
    6. Moderne DDOS Tools

    1.) Einleitung

    Eigentlich sollte das hier nur eine kleine Beschreibung des
    Ping of Deaths werden, aber dann fand ich auch Interesse an
    einigen anderen DoS Attacken (die zu dem Thema passen) und wollte
    diese hier nicht unerwähnt lassen ( freut euch ). Da ich leider
    keinen Text zum simplen Übersetzen fand, der meiner Meinung nach
    alles Wichtige enthielt, entschied ich mich dafür eine Zusammenfassung
    der DoS Attacken zu schreiben, die TCP/IP ausnutzen. (mehr oder weniger
    Eine DoS (Denial of Service) Attacke ist eigentlich eine Forderung
    an einen fremden Rechner, die er nicht erfüllen kann oder bei
    deren Erfüllung Probleme auftreten, die sich dann zu unseren Gunsten
    auswirken. Oft bestehen diese Probleme darin, das der Fremdrechner
    abstürzt oder für einige Zeit hängt. Meistens wird aber nicht nur eine
    dieser Anforderungen gesendet, sondern Tausende, durch die Unmenge an
    Daten wird versucht den Server zu überlasten. Dieser Effekt wird nun
    versucht zu verstärken, in dem man noch einige Sicherheitslücken
    ausnutzt.


    2.) SYN-Flooding

    SYN Flooding ist eine Attacke, die benutzt werden kann um einen Server
    zum kurzweiligen hängen zu bringen, damit er keine anderen Verbindungen
    mehr aufbauen oder annehmen kann. Diese Art der Attacke zum Beispiel
    auch verwendet, um Shimomuras X-Terminal zu hacken (siehe Sequence
    Number Guessing). TCP Pakete können mehrere Flags enthalten, die dem
    Fremdrechner sagen, was man von ihm will. Eines dieser Flags ist das SYN
    Flag. Wenn nur dieses Flag gesetzt ist, zeigt das dem anderen Rechner,
    das man mit ihm eine Verbindung aufbauen will, worauf dieser mit TCP
    Paketen, die die entsprechenden Flags (SYN+ACK) enthalten antwortet.
    Diese SYN-Pakete kann man an jeden beliebigen Port eines Rechners
    schicken, der von aussen Zugänglich ist. Man muss also für eine solche
    Attacke wissen: IP des anderen und einen offenen Port. Nun schickt man
    eine Menge SYN Pakete an den anderen Rechner. Dieser wird diese
    speichern und eine Rückmeldung (SYN+ACK) schicken. Im Gegenzug
    erwartet der Rechner nun wieder eine Meldung, um die Einleitung
    der Verbindung zu vollenden (ACK). Wenn wir aber nun unsere TCP Pakete
    so ändern das sie von einem nicht existierenden Rechner stammen, wird
    der Zielrechner vergebens auf eine Rückmeldung warten. Nach einer
    gewissen Zeit löscht er die SYN-Anfragen aber wieder aus seinen Speicher.
    Das wäre kein Problem bei einem SYN-Paket. Wird ein Rechner aber mit
    diesen bombadiert, dann füllt sich mit der Zeit sein Speicher und er
    kann keine weiteren Pakete aufnehmen oder beantworten. Er geht einfach
    davon aus, das wichtige Anfragen nocheinmal gesendet werden, wenn die
    Masse der SYN-Pakete bearbeitet ist. Dadurch haben wir ihn also vom Netz
    genommen, da er keine Antworten mehr gibt. Dies ist besonders
    interessant bei Spoofing Versuchen, bei denen Trusted Systems ausgenutzt
    werden, da man vorgibt, eine andere IP zu haben, schickt das Ziel
    die Antworten auf unsere Anfragen an die Fake-IP, damit diese nicht
    auf die Antworten reagiert, kann man diesen Rechner mit SYN-Flooding
    aus dem Verkehr ziehen. Wer den Sourcecode für eine solche Attacke
    sucht, findet den in Phrack 49 Artikel 7.


    3.) Ping of Death alias Large Packet Attack

    Diese DoS-Attacke hat den Namen Ping of Death nur daher erhalten, da
    sich das kleine Programm ping, das bei jedem OS dabei ist besonders
    gut dafür eignet diese Attacke durchzuführen. Die Auswirkungen der
    Attacke sind recht unterschiedlich und hängen vom OS des Betroffenen
    ab, sie reichen von kurzem hängen der Maschine bis zu kompletten
    Absturz des Systems. Normalerweise testet man mit ping ob ein Server
    noch am Leben ist, bzw wie gut die Verbindung steht. Man bekommt nach
    einem ping gesagt, wie lange der Weg eines Paketes hin und zurück
    gedauert hat. Man schickt also ein oder mehrere Pakete an einen
    Zielrechner, der diese dann zurücksendet und jenachdem wieviel
    Zeit zwischen Senden und Emfang verstrichen ist, weiß man ob die
    Verbindung perfekt oder total am Ende ist. Die eigentliche Attacke
    beruht aber wie gesagt nicht auf dem ping sondern auf einer Ausbeutung
    des Internet Protokolls (IP). Wenn man einem anderen Rechner Daten
    schickt, werden sie mit Hilfe des IP's in handliche, kleine Pakete
    verpackt, die dann einzeln gesendet werden, und auf dem Zielrechner
    mit Hilfe von IP wieder zusammengebastelt werden. Diese Pakete sind
    maximal 65,535 (2^16-1) bytes groß, da der IP Header nur ein 16-bit
    Feld für die Größe des Paketes vorgesehen hat. Der IP Header an sich
    ist 20 bytes groß, wodurch uns noch ganze 65,515 bytes für sinnlosen
    Datenmüll bleiben <g>. Da die Protokolle unter IP meistens nur noch
    kleinere Pakete verarbeiten können (Ethernet kann nur 1500 bytes
    gebrauchen) werden diese Pakete nochmals zerkleinert. Dann werden sie
    an den Zielrechner gesendet, der sie dann wieder zusammenbastelt.
    Zuerst baut es die IP Pakete zusammen, und dann die enthaltenen Daten.
    Soweit der Normalfall, aber der interessiert in diesem Artikel nur am
    Rande . Was passiert aber nun, wenn wir es schaffen, ein IP Paket zu
    basteln, das größer als 65,535 bytes ist ? Es wird zerkleinert, an
    den Zielrechner gesandt und der versucht nun das übergroße IP-Paket
    wieder zusammenzusetzen. Dabei findet er aber heraus, das das Paket
    größer als erlaubt ist und bekommt einen Speicherüberlauf, was ihn
    arg ins schwitzen bringen kann (wie gesagt, je nach OS).
    Soviel zur Attacke, aber was hat ping nun damit zu tun ? Ok, was macht
    ping ? Es verschickt Pakete, deren größe man selbst bestimmen kann.
    Unter Win95 und WinNT gibt es nun einen kleinen Fehler.
    Per 'ping -l 65508 targethost' (auf der dos Kommando Ebene) schickt
    man ein 65508 bytes großes Paket. Kein Problem, ist ja noch in der
    akzeptablen Größe, wäre da nicht noch der 8 bytes lange ping header
    und der 20 Bytes große IP header..

    65,508 + 8 + 20 = 65,536 > 65,535

    Dumm gelaufen, aber das eine Byte kann ausreichen. Dadurch kam das
    Programm ping zur Ehre ein DoS-Tool zu werden. Diese Attacke kann
    aber auch mit anderen Programmen durchgeführt werden, die dann
    auch mehr als nur 1 byte überlauf erzeugen können.
    Wobei dieser Bug auf den meisten Systemen behoben wurde und sich
    auch nur noch das 'alte' Win95 Ping dazu eignet.


    4.) Finger

    Nein, hier wird nicht gefummelt,.. ;P
    Diese Attacke hat zwar nicht allzuviel mit TCP-IP zu tun und ist 'etwas'
    älter aber ich finde sie recht interessant. Finger ist ein brauchbares
    Unix/Linux Tool, das man verwendet um Informationen über den User
    einer E-Mail Addresse herauszufinden. Viele dieser Finger Varianten
    (fast jedes Unix/Linux hat seine eigene) erlauben es, so zu tun, als
    würde die Anfrage von einem anderen Server kommen. Normalerweise startet
    man finger folgendermaßen:
    finger SnakeByte@gmx.de
    Wenn man aber das ganze durch einen anderen Server leiten will:
    finger SnakeByte@yahoo.com@gmx.de
    Wenn man nun aber folgendes probiert
    finger SnakeByte@@@@@@@@@@@@@@@@@@@@gmx.de
    werden lauter Prozesse angeleiert, die mächtig Bandbreite, Speicherplatz
    und ähnliches fressen, also das ganze auf dem Zielrechner ausführen.
    Es wird versucht durch den eigenen Sever, das finger Programm
    anzusprechen, das wieder auf dem eigenen Server das finger Programm
    anspricht, das... etc ;P


    5.) Ping Flooding

    Hier setzt man dem Zielrechner eine Menge an Ping Paketen vor, die er
    alle zu beantworten hat. Das kostet ihn natürlich ne Menge an
    Rechenzeit und Bandbreite. Da man die Ping Pakete aber selber schicken
    muss lohnt es sich das ganze auf einer shell zu starten.
    Unter Linux/Unix werden solange ping Pakete gesendet, bis der User
    mit Strg+C abbricht, daher kann man einfach mit
    ping -s hostip
    ne Menge an Ping Paketen schicken unter Win9x / NT geht man auf
    Start - Ausführen und gibt einige Male (15-20)
    PING -T -L 256 <Zielip>
    ein und der Zielrechner hat zu arbeiten.


    6.) Moderne DDOS Tools

    Das Problem beim fluten anderer Server ist, das diese meistens eine große Bandbreite
    besitzen, die hier aufgeführten Attacken werden also voraussichtlich nur bei
    Rechnern funktionieren, deren Bandbreite kleiner oder gleich eurer ist.
    Jedoch haben die meisten modernen DDOS (Distributed DOS) Programme es geschafft
    dieses Problem zu lösen. Man installiert auf mehreren Rechnern Backdoors
    ( z.B. TRINOO, TFK, Stacheldraht ), diesen kann man nun per Client übermitteln,
    welche IP sie mit welcher Attacke angreifen sollen. Dadurch erreicht man
    einen Datenstrom, der wie man in der Vergangenheit bemerkt hat auch große
    Server wie YAHOO lahmlegen kann.
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.