Dark ITSec

Attacks

(Distributed) Denial of Service
(Distributed) Denial of Service bedeutet soviel wie "etwas ausser Betrieb setzen".

Eine Denial of Service Attacke, die auf das RL (Real Life) zurück greift wäre wenn man z.B.
an einem intakten Automaten den Schlitz verstopft, in dem man das Geld hinein steckt.

Eine Distributed Denial of Service Attacke wäre, die auf das RL zurück greift wäre wenn man z.B.
mit mehreren Leuten zusammen an einem intakten Automaten den Schlitz verstopft, in dem man das Geld hinein steckt.

Land
Durch Land wurde ein relativ komplexer Angriff gefahren,
indem ein SYN Paket mit identischem Absender und Empfängerport erzeugt wurde.
Anschließend wurde dieses Paket an einen offenen Port gesendet,
an dem das Paket durch die vielen IP Stacks eine Art Race Condition erzeugte und dadurch das OS gecrashed hat.
Land wurde 1997 entdeckt oder zumindest bekannt.

Die Auswirkungen waren sehr begrenzt, denn viele Rechner waren schon durch die Attacken vorhergehender Tools geschützt
und die Systemverwalter trafen schnell Sicherheitsvorkehrungen.

CISCO-Router waren jedoch oft von Land Attacken betroffen.

OOB
Der "Out of Band" Angriff bzw. die Möglichkeit das er entstehen konnte lag an MicroSoft bzw.
dessen Implementierung des NETBIOS.
Wenn wirre Zeichen oder Daten über Port 139 eintrafen kam es zum Systemcrash.

Der erste OOB Nuker war "WinNuke" der - wie Land - 1997 bekannt wurde.
OOB Attacken verloren schnell ihren Reiz da es Plugins für Win95 gab und Win98 von vorne rein darauf vorbereitet war.

Dieser Fehler von MicroSoft war erschreckend primitiv und die Nuker wurden immer besser.
Man konnte nach einiger Zeit sogar Nuker finden die "MassNuke"-Funktionen hatten, dem Opfer Nachrichten zukommen ließen
oder gleich einen Ping ausführten um zu sehen ob das Opfer wirklich aus dem Netz gefegt wurde.

Bufferoverflow
Eigentlich ist das ganze leichter als man denkt, es geht hier einfach darum mehr in den Puffer zu schreiben als dieser eigentlich aufnehmen kann. Allerdings ist das garnicht mal so selten, oft passieren solche Programmierfehler unfreiwillig, indem z.B. ein String länger ist als sein zugewiesener Bereich und somit die Bereiche dahinter mit überschreibt. Hier ein Beispiel:
void main() {
  char ZuGross[256];
  /* wir initialisieren die Variable ZuGross mit 256 Bytes */
  int i;  /* Laufvariable */
  for( i = 0; i < 255; i++)
    ZuGross[i] = 'A';
    /* eine Schleife die den Speicherbreich mit A's füllt */
  Overflow(ZuGross);
}
/*Hier ist die Function die den Fehler verursachen wird */
void Overflow(char *string) {
   char PufferZuKlein[16];
   /* Puffer ist kleiner als unsere ZuGross Variable die wir übergeben haben */
   strcpy(PufferZuKlein, string);  
 /* Wir versuchen Puffer mit 256 Bytes vollzuschreiben obwohl
   nur 16 Bytes möglich wären, dadurch wird der ganze Bereich
   dahinter überschrieben */
}
Da die meisten die Größenüberprüfung nicht machen sondern immer die MAX_PATH oder andere Definitionskonstanten dafür nehmen, kracht es wenn es mehr zu kopieren gibt als dazu platz reserviert wurde.
Das was mit CodeRed der hat den IIS so als erstes gekrascht und dann müsste man untersuchen wie man es am besten die Zugroße Eingabe macht um die Rücksprungadresse zu überschreiben denn dann ist es möglich Code ausführen zu lassen, der in dem überlauf string mit übergeben wird, das ist aber viel Debugging und Assembler wissen was man vermitteln müsste und das wollte ich euch nicht antun.

Ping of Death
Durch "übergrosse" Ping-Pakete wurde ein Buffer Overflow erzeugt.
"Ping of Death" funktionierte nicht nur über ICMP mit Ping, sondern auch über UDP und TCP.

Diese DoS Attacke war auch Jahrgang 1997 und so ziemlich alles was einen IP Stack hatte war betroffen.
Es war die einzige Attacke mit der man sein Opfer auf einen Schlag crashen konnte und das sogarvon Windows aus!

Man bracuhte mit dem Standard Programm "Ping" von Windows nur eine ping mit einem entsprechend grossem Wert angeben.
So erzeugt man einen Ping of Death unter Windows:
Start --> Ausführen --> Ping -l 65510 www.target.com --> Enter
Mitlerweile sind die meisten Hosts sicher vor Angriffen solcher Art.

Smurf
Bei "Smurf" schickt man mehrere Pings an mehrere Hosts und spooft(fälscht) den Absender so,
das Absender mit dem eigentlichen Ziel gleich ist.
Senden wir nur 1000 Pakete pro Sekunde an 1000 Rechner, die alle antworten,
so erhält das eigentliche Opfer 1.000.000 Pakete/s, die es durch den unglaublichen Traffic zum Crash bringen.

Wir sehen also das Smurf eine DDoS Attacke ist.
Sie war unter dem Namen "ICMP Storm" schon länger bekannt, aber das Tool "Smurf" wurde erst 1997 programmiert.

Leider, oder auch nicht - je nachdem wie man es sehen mag - ist Smurf/ICMP Storm heute eher selten noch wirksam.

SYN Flooding
Beim "SYN Flooding" werden TCP Connections zum Opfer mit dem "three-way-handshake" aufgebaut.

Normalerweise wird ein SYN Paket gesendet, auf dem mit einem SYN/ACK Paket geantwortet wird und darauf wiederum
wird mit ACK bestätigt.

Bei der "SYN Flooding" Attacke wird beim "three-way-handshake" die Absenderadresse gespooft.
Dadurch wird das SYN/ACk Paket ins leere laufen.
Wenn nun nach einiger Zeit keine ernaute Antwort auf diese erfolgt wird der Verbindungsversuch als erfolglos klassifiziert.
In der Zeit bis zum Abbruch wird das Opfer mit SYN Paketen geflutet bzw. überflutet 8-)

Das SYN Flooding wurde 1996 sehr populär.

Teardrop
Der "teardrop" Angriff hat strake Ähnlichkeit mit dem "Ping of Death".
Während der Ping of Death eine übergroße Fragmentierung erzeugte,
überlappte Teardrop die Fragmente einfach und brachte damit Linux & Windows in Probleme.
Diese Attacke führte in den meisten Fällen auch zum Systemcrash.

Wie könnte es auch anders sein? Auch eine 97er Attacke...

Teardrop wurde durch Patches schnell ein Ende gesetzt.