2. Juli 2007

Fuzzing

Category: Hacking — Christian @ 21:23

Ich muss mal ein paar Zeilen über Fuzzing schreiben. Wikipedia schreibt dazu nicht ganz zutreffend:

    Fuzzing ist eine spezielle Technik für Software-Tests. Hierfür werden automatisch mit Tools zufällige Daten erzeugt, die über Eingabeschnittstellen eines Programms verarbeitet werden.

Das ist so nicht ganz richtig. Fuzzer sind nicht auf Dateien beschränkt, es gibt natürlich auch Fuzzer für Netzwerkdienste, die beispielsweise durch fehlerhafte oder zufällig erzeugte Datenpakete zum Absturz gebracht werden können. Fuzzer wurden lange Zeitlang kaum beachtet, haben jedoch u.a. durch die Arbeit von HD Moore eine Renaissance erlebt. Auf der Webseite des Month of the Browser Bug sind einige Fuzzer, u.a. AxMan, Hamachi, CSS-die, DOM-Hanoi und MangleMe verlinkt. Insbesondere der ActiveX-Fuzzer AxMan hat sich als sehr wirkungsvoll erwiesen, vermutlich weil die meisten ActiveX-Controls nur auf Funktionalität und nicht in Hinblick auf Sicherheit entwickelt wurde. ActiveX von Microsoft gehört meines Erachtens generell zu den Technologien, die besser nicht entwickelt worden wären.

Das beliebteste Ziel von Fuzzern sind weiterhin offensichtlich Browser, hier gibt es auch die größte Auswahl wie die Seite von HD Moore beweist. Sehr spannend finde ich auch SIP-Fuzzer, mit denen man beispielsweise Telefonanlagen und IP-Telefone sehr gut angreifen kann. Als Fuzzer gegen Webserver gibt es beispielsweise den Spike Proxy oder Wapiti, und kommerzielle Produkte wie beStorm sind natürlich auch nicht weit.

Aus Deutschland gibt es jetzt auch einen Browser-Fuzzer:

JdM (Jacques de Molay, ein großer Name) hat einen neuen Browser-Fuzzer aufgelegt, den BrowserCrashTest Ride the Monkey, aktuell in der Version 0.2 und komplett im Source Code unter der GPL freigegeben. Der Fuzzer ist in Visual Basic programmiert und lässt sich daher nur unter Windows kompilieren. Ich persönlich würde ja eine leichter portierbare Software z.B. in Java bevorzugen. Dafür integriert er Funktionen wie DLL-Injection von iDefense und kann damit recht mächtige Funktionen ausführen. Insgesamt jedoch durchaus ein interessantes Tool.

Ob es ökonomisch Sinn macht, sich mit Browsern zu beschäftigen wage ich jetzt mal zu bezweifeln. Bei Browsern gibt es nur wenige Anbieter (Microsoft IE, Mozilla Firefox, Opera, Konqueror, Safari und ein paar Nischenprodukte), wenn man da Lücken im Browser findet ist das für das Ego sicher gut, lässt sich aber kaum in klingende Münze umwandeln. Viel interessanter finde ich Fuzzer für Dienste oder Protokolle die neu und in vielen Unternehmen eingesetzt werden. Und da stößt man unweigerlich auf Dienste wie VoIP (SIP, SCCP, H.323) mit vielen verschiedenen Telefon- und Anlagenanbietern und immer wieder VPN (IKE, IPSEC, PPTP, HTTPS), das inzwischen überall verbreitet ist. Ich denke, angefangen mit diesen Protokollen ließe sich leicht auch ein kommerziell erfolgreicher Fuzzer entwickeln.

Die Finnen sind da schon auf dem richtigen Weg.

5 Comments

  1. Danke für Die Erwähnung meines Fuzzers :–)

    Aufgrund der wenigen Zeit die mir für das Projekt bleibt, habe ich auf eine „Programmiersprache“ zurückgreifen müssen, die mir selber nicht wirklich gefällt aber unheimlich schnell geschrieben ist (VB6).

    Mit VB(6) + VC++ hat man schon zwei sehr gute, sich ergänzende, Sprachen (VB für GUI und VC++ für die kritischen Operationen) mit denen man sehr schnell sehr umfangreiche Applikationen umsetzen kann.

    Bisher hatte ich keine Gelegenheit mal in die Java-Programmierung reinzuschnuppern.
    Die Portierung auf andere Systeme ist zugegeben nicht ohne ein Umschreiben möglich, aber ich denke wenn man sich über Ansätze austauschen kann und dann jeweils auf einem anderen System umsetzt können sehr interessante Ergebnisse dabei herauskommen.

    Es werden in Zukunft (in Kürze) noch einige Features kommen, so viel kann ich schon verraten. Momentan ruht der Crash Test und der Trash Gen wird entwickelt.

    Seid gespannt
    Euer
    JdM
    23sr security research – browser fuzzing

    Comment by JdM — 8. Juli 2007 @ 17:11

  2. Hallo JdM,

    ich beobachte halt was so passiert und eine deutsche Browser Fuzzing Site fällt mir natürlich schon auf. Das blöde an VB ist halt, daß man das nicht in die gängigen Hacking-Live-CDs wie BackTrack integrieren kann. Und die sind schon weit verbreitet und häufig im Einsatz.

    Was ich mir wünschen und auch mit machen würde, wäre eigentlich ein Protokollfuzzer-Framework. Das sollte diverse Netzwerkprotokolle fuzzen können und modular schön erweiterbar sein. Außerdem natürlich portierbar, also in einer Sprache wie Perl oder Ruby oder so geschrieben. Quasi ein Metasploitfuzzer. Wenn Du das irgendwann mal anfangen solltest, dann sag Bescheid, da mach ich dann mit.

    Comment by Christian — 10. Juli 2007 @ 14:03

  3. Hi JDM,

    Where is your tool and source code ?

    Plz mail me the link

    Comment by Ahelpyguy — 28. August 2007 @ 10:21

  4. Ahelpyguy,

    check out here:
    http://235sr.23.funpic.de/index.php?page_id=22
    compiled binary and source code, GPL licensed.

    Comment by Christian — 29. August 2007 @ 19:55

  5. Kommentare wegen Spam gesperrt. Falls noch jemand was dazuschreiben möchte, bitte kurz Nachricht, dann sperre ich gerne wieder auf.

    Comment by Christian — 24. November 2007 @ 18:36

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.