
Ein reines Python-Framework für vollautomatisiertes und unbeaufsichtigtes Fuzzing.
Wenn du nach einem aktiv gepflegten Fork von Sulley suchst, wirf einen Blick auf BooFuzz.
Sulley ist eine Fuzzing-Engine und ein Fuzz-Test-Framework, das aus mehreren erweiterbaren Komponenten besteht. Sulley (IMHO) übertrifft die Fähigkeiten der meisten zuvor veröffentlichten Fuzzing-Technologien, sowohl kommerzieller als auch gemeinfreier. Das Ziel des Frameworks ist es, nicht nur die Datendarstellung zu vereinfachen, sondern auch die Datenübertragung und Instrumentierung zu vereinfachen. Sulley ist liebevoll nach der Kreatur aus Die Monster AG benannt, denn, nun ja, er ist fuzzy.
Offensichtlich ist er auch furchtlos.
Moderne Fuzzer konzentrieren sich größtenteils ausschließlich auf die Datengenerierung. Sulley hat nicht nur eine beeindruckende Daten- generierung, sondern geht noch einen Schritt weiter und enthält viele weitere wichtige Aspekte, die ein moderner Fuzzer bieten sollte. Sulley beobachtet das Netzwerk und führt methodisch Aufzeichnungen. Sulley instrumentiert und überwacht den Zustand des Ziels, und kann es mithilfe mehrerer Methoden in einen bekannten guten Zustand zurückversetzen. Sulley erkennt, verfolgt und kategorisiert erkannte Fehler. Sulley kann parallel fuzzen, was die Testgeschwindigkeit erheblich erhöht. Sulley kann automatisch bestimmen, welche eindeutige Sequenz von Testfällen Fehler auslöst. Sulley erledigt all dies und noch mehr automatisch und ohne Aufsicht. Es ist nicht ungewöhnlich, dass ein Fuzz-Lauf tagelang nahtlos läuft, sodass du (als Sicherheitsforscher) dich auf andere Bereiche der Ausnutzung konzentrieren kannst und zu Sulleys Ergebnissen zurückkehrst, wann immer es dir passt.
Ein guter Ausgangspunkt, wenn du unter Windows arbeitest, ist der Wiki-Artikel zur Windows-Installation, und wenn du dich traust, wirf einen Blick auf den instabilen Branch von Sulley. Wenn du auf *nix unterwegs bist, warte einfach ab, die Dokumentation für das Installationsverfahren ist unterwegs, aber wenn du *nix benutzt, kannst du es wahrscheinlich sowieso selbst herausfinden.
Dieser Master-Branch gilt als der 'stabile' Branch von Sulley 1.0. Alle Änderungen, die ich vornehme, fließen in Sulley 1.1 ein, das unter https://github.com/OpenRCE/sulley/tree/Sulley1.1 zu finden ist.
Wenn du weitere Fragen/Verbesserungen/Funktionen hast, die du gerne sehen würdest, zögere nicht, mir eine E-Mail zu schreiben!