Une liste organisée de ressources sur le fuzzing ( Livres, cours - gratuits et payants, vidéos, outils, tutoriels et applications vulnérables pour s'entraîner ) pour apprendre le fuzzing et les phases initiales du développement d'exploits, comme l'analyse des causes racines.
Une liste organisée de ressources sur le fuzzing (livres, cours - gratuits et payants, vidéos, outils, tutoriels et applications vulnérables pour s'entraîner) pour apprendre le fuzzing et les phases initiales du développement d'exploits, comme l'analyse des causes profondes.
Livres sur le fuzzing
Fuzzing: Brute Force Vulnerability Discovery par Michael Sutton, Adam Greene, Pedram Amini.
Fuzzing for Software Security Testing and Quality Assurance par Ari Takanen, Charles Miller, Jared D Demott et Atte Kettunen.
Open Source Fuzzing Tools par Gadi Evron et Noam Rathaus.
Gray Hat Python par Justin Seitz.
The Fuzzing Book par Andreas Zeller, Rahul Gopinath, Marcel Böhme, Gordon Fraser, et Christian Holler.
Remarque : Certains chapitres des livres suivants sont consacrés au fuzzing.
- The Shellcoder's Handbook: Discovering and Exploiting Security Holes ( Chapter 15 ) par Chris Anley, Dave Aitel, David Litchfield et d'autres.
- iOS Hacker's Handbook - Chapter 1 par Charles Miller, Dino DaiZovi, Dion Blazakis, Ralf-Philip Weinmann, et Stefan Esser.
Cours / vidéos de formation sur le fuzzing
NYU Poly ( voir la section vidéos pour plus d'informations ) - Mis à disposition gratuitement par Dan Guido.
Modern Binary Exploitation ( RPISEC ) - Chapitre 15 - par RPISEC.
Offensive Computer Security - Semaine 6 - par W. Owen Redwood et le professeur Xiuwen Liu.
Vidéos sur les techniques, outils et bonnes pratiques de fuzzing
Fuzzing 101 (Partie 1) - par Mike Zusman.
Fuzzing 101 (Partie 2) - par Mike Zusman.
Fuzzing 101 (2009) - par Mike Zusman.
Fuzzing - Cours de sécurité logicielle sur Coursera - par l'Université du Maryland.
Playlist YouTube de diverses conférences et présentations sur le fuzzing - Beaucoup de bon contenu dans ces vidéos.
Chasse aux bugs navigateur - Mémoires d'un dernier homme debout - par Atte Kettunen
Fuzz Theory - par Brandon Falk
Tutoriels et blogs qui expliquent la méthodologie, les techniques et les bonnes pratiques du fuzzing
Fuzzing efficace de formats de fichiers - Mateusz “j00ru” Jurczyk @ Black Hat Europe 2016, Londres
Une année de fuzzing des polices du noyau Windows, partie 1 : les résultats - Article incroyable de Google Project Zero, décrivant ce qu'il faut pour faire du fuzzing et créer des fuzzers.
Une année de fuzzing des polices du noyau Windows, partie 2 : les techniques - Article incroyable de Google Project Zero, décrivant ce qu'il faut pour faire du fuzzing et créer des fuzzers.
Bugs et ressources intéressants du projet fuzzing - par fuzzing-project.org.
Workflows de fuzzing ; un travail de fuzz du début à la fin - par @BrandonPrry.
Une introduction en douceur au fuzzing de code C++ avec AFL et libFuzzer - par Jeff Trull.
Une introduction de 15 minutes au fuzzing - par les équipes de MWR Security.
Remarque : Les personnes de fuzzing.info ont fait un excellent travail en collectant d'excellents liens, je ne vais pas dupliquer leur travail. J'ajouterai les articles qu'ils ont manqués, ainsi que ceux de 2015 et 2016. Articles sur le fuzzing - par fuzzing.info
Blogs et livres sur le fuzzing - par fuzzing.info
Analyse des causes profondes du crash pendant le fuzzing - par Corelan Team.
Analyse des causes profondes des débordements d'entiers - par Corelan Team.
Ccréation de publishers Peach fuzzer personnalisés - par Open Security Research
7 choses à considérer avant de fuzzer un grand projet open source - par Emily Ratliff.
Du fuzzing à la 0-day - par Harold Rodriguez (@superkojiman).
Du crash à l'exploit - par Corelan Team.
Fuzzing avec Peach, partie 1 - par Jason Kratzer de l'équipe corelan
Fuzzing avec Peach, partie 2 - par Jason Kratzer de l'équipe corelan.
Génération automatique de fichiers pit/fuzzers Peach - par Frédéric Guihéry, Georges Bossert.
Workflows de fuzzing ; un travail de fuzz du début à la fin - par @BrandonPrry.
Fuzzing de capstone en mode persistant AFL - par @toasted_flakes
Comment fuzzer un serveur avec American Fuzzy Lop - par Jonathan Foote
Fuzzing avec Spike - par samclass.info
Fuzzing avec FOE - par Samclass.info
Z3 - Un guide - Démarrage avec Z3 : un guide
Créer un fuzzer à rétroaction - par @fady_othman
Outils qui aident à fuzzer des applications
Fuzzers qui aident au fuzzing dans des environnements cloud.
Cloudfuzzer - Framework de fuzzing cloud qui permet d'exécuter facilement des tests de fuzzing automatisés dans des environnements cloud.
ClusterFuzzer - ClusterFuzzer, infrastructure de fuzzing open source évolutive. Elle est utilisée par Google pour fuzzer le navigateur Chrome.
Fuzzit - Fuzzit, plateforme de fuzzing continu en tant que service. Gratuit pour l'open source. Utilisée par divers projets open source (systemd, radare2) et projets propriétaires. Pour rejoindre le programme oss, envoyez un message à [email protected]
Fuzzers qui aident à fuzzer des formats de fichiers comme pdf, mp3, swf, etc.
MiniFuzz - Lien Wayback Machine - Outil de fuzzing de formats de fichiers de base de Microsoft. (N'est plus disponible sur le site Web de Microsoft).
BFF de CERT - Basic Fuzzing Framework pour les formats de fichiers.
Fuzzer AFL (Linux uniquement) - American Fuzzy Lop Fuzzer par Michal Zalewski, alias lcamtuf
Win AFL - Un fork d'AFL pour fuzzer des binaires Windows
Shellphish Fuzzer - Une interface Python pour AFL, permettant l'injection facile de cas de test et d'autres fonctionnalités.
TriforceAFL - Une version modifiée d'AFL qui prend en charge le fuzzing d'applications dont le code source n'est pas disponible.
AFLGo - Fuzzing greybox dirigé avec AFL, pour fuzzer des emplacements ciblés d'un programme.
Peach Fuzzer - Framework qui aide à créer des fuzzers personnalisés, simples (dumb) ou intelligents (smart).
MozPeach - Un fork de Peach 2.7 par Mozilla Security.
Failure Observation Engine (FOE) - outil de test de fuzzing mutationnel basé sur des fichiers pour les applications Windows.
rmadair - fuzzer de fichiers basé sur la mutation qui utilise PyDBG pour surveiller les signaux d'intérêt.
honggfuzz - Un fuzzer polyvalent et facile à utiliser avec des options d'analyse intéressantes. Prend en charge le fuzzing piloté par rétroaction basé sur la couverture de code. Prend en charge GNU/Linux, FreeBSD, Mac OS X et Android.
zzuf - Un fuzzer d'entrées d'application transparent. Il fonctionne en interceptant les opérations sur les fichiers et en modifiant des bits aléatoires dans l'entrée du programme.
radamsa - Un fuzzer polyvalent et un générateur de cas de test.
binspector - Un outil d'analyse et de fuzzing de formats binaires.
grammarinator - Outil de fuzzing pour formats de fichiers basé sur les grammaires ANTLR v4 (de nombreuses grammaires déjà disponibles depuis le projet ANTLR).
Sloth - Sloth 🦥 est un framework de fuzzing guidé par la couverture pour fuzzer les bibliothèques natives Android, qui utilise libFuzzer et l'émulation en mode utilisateur de QEMU.
ManuFuzzer - Fuzzer binaire par couverture de code pour macOS, basé sur libFuzzer et LLVM.
Fuzzers qui aident à fuzzer des applications utilisant des protocoles réseau comme HTTP, SSH, SMTP, etc.
Peach Fuzzer - Framework qui aide à créer des fuzzers personnalisés, simples (dumb) ou intelligents (smart).
Sulley - Un framework de développement de fuzzers et de tests de fuzzing composé de multiples composants extensibles, par Pedram Amini.
boofuzz - Un fork et successeur du framework Sulley.
Spike - Un framework de développement de fuzzers comme Sulley, un prédécesseur de Sulley.
Metasploit Framework - Un framework qui contient certaines capacités de fuzzing via des modules auxiliaires.
Nightmare - Une suite de tests de fuzzing distribuée avec administration web, prenant en charge le fuzzing via des protocoles réseau.
rage_fuzzer - Un fuzzer/rejeu de paquets non guidé (dumb) et indépendant du protocole.
Fuzzotron - Un fuzzer réseau simple prenant en charge TCP, UDP et le multithreading.
Mutiny - Le Mutiny Fuzzing Framework est un fuzzer réseau qui fonctionne en rejouant des PCAP via un fuzzer mutationnel.
Fuzzing For Worms - Un framework de fuzzing pour les serveurs réseau.
AFL (avec patch réseau) - Un american fuzzy lop non officiel capable de fuzzing réseau.
AFLNet - Un fuzzer greybox pour protocoles réseau (une extension d'AFL).
Pulsar - Apprentissage de protocoles, simulation et fuzzer avec état.
BFuzz - Un framework de fuzzing de navigateurs basé sur les entrées. Fuzzinator - Fuzzinator, framework de test aléatoire Grizzly - Un framework de fuzzing de navigateurs multiplateforme.
Autres fuzzers notables comme les fuzzers de noyau, les fuzzers polyvalents, etc.
Choronzon - Un fuzzer évolutionnaire basé sur la connaissance.
QuickFuzz - Un outil écrit en Haskell conçu pour tester des entrées inattendues de formats de fichiers courants sur des logiciels tiers, en tirant parti de fuzzers connus et prêts à l'emploi.
gramfuzz - Un fuzzer basé sur une grammaire qui permet de définir des grammaires complexes pour modéliser des formats de données texte et binaires.KernelFuzzer - Framework de fuzzing de noyau multiplateforme.
honggfuzz - Un fuzzer polyvalent et facile à utiliser avec des options d'analyse intéressantes.
Hodor Fuzzer - Encore un fuzzer à usage général.
libFuzzer - Moteur de fuzzing évolutif, guidé par la couverture et en processus, pour des cibles écrites en C/C++.
syzkaller - Fuzzer distribué, non supervisé et guidé par la couverture pour les appels système Linux.
ansvif - Un framework de fuzzing multiplateforme avancé conçu pour trouver des vulnérabilités dans le code C/C++.
Tribble - Framework de fuzzing JVM facile à utiliser et guidé par la couverture.
go-fuzz - Tests guidés par la couverture des paquets Go.
FExM - Framework automatisé de fuzzing à grande échelle
Jazzer - Un fuzzer en processus, guidé par la couverture, pour la machine virtuelle Java, basé sur libFuzzer.
cifuzz - Un outil en ligne de commande pour exécuter des tests de fuzz guidés par la couverture dans plusieurs langages et sur plusieurs cibles.
WebGL Fuzzer - WebGL Fuzzer
fast-check - Un outil de fuzzing écrit en TypeScript et conçu pour exécuter des entrées inattendues contre du code JavaScript.
Comment l'entrée utilisateur affecte l'exécution
kfetch-toolkit - Outil permettant une journalisation avancée des références mémoire effectuées par les noyaux des systèmes d'exploitation
moflow - Un framework de sécurité logicielle contenant des outils pour la recherche, la découverte et le triage de vulnérabilités.
Z3 - Un prouveur de théorèmes de Microsoft Research.
SMT-LIB - Une initiative internationale visant à faciliter la recherche et le développement en Satisfiabilité Modulo Théories (SMT)
Exécution symbolique avec KLEE : de l'installation et l'introduction à la recherche de bogues dans les logiciels open source - Une série de quatre vidéos pédagogiques présentant KLEE, depuis la prise en main jusqu'à une démo qui trouve des bogues de corruption mémoire dans du code réel.
Je n'ai pas inclus certaines légendes comme AxMan, veuillez consulter le lien suivant pour plus d'informations. https://www.ee.oulu.fi/research/ouspg/Fuzzers
Outils du métier pour les développeurs d'exploits et les ingénieurs en rétro-ingénierie
Windbg - Le débogueur préféré des auteurs d'exploits.
Immunity Debugger - Immunity Debugger par Immunity Sec.
OllyDbg - Le débogueur de choix des ingénieurs en rétro-ingénierie et des auteurs d'exploits.
Mona.py ( Plugin pour windbg et Immunity dbg ) - Des outils géniaux qui facilitent la vie des développeurs d'exploits.
x64dbg - Un débogueur open-source x64/x32 pour Windows.
Evan's Debugger (EDB) - Interface frontale pour gdb.
GDB - Gnu Debugger - Le débogueur Linux préféré.
PEDA - Assistance au développement d'exploits en Python pour GDB.
Radare2 - Framework pour la rétro-ingénierie et l'analyse de binaires.
Désassembleurs, frameworks de désassemblage, etc.,
IDA Pro - Le meilleur désassembleur
binnavi - IDE d'analyse binaire, annote les graphes de flux de contrôle et les graphes d'appels du code désassemblé.
Capstone - Capstone est un framework de désassemblage léger, multiplateforme et multi-architecture.
ltrace - Intercepte les appels aux bibliothèques
strace - Intercepte les appels système
Exploit-DB - https://www.exploit-db.com (recherchez et sélectionnez les exploits dont les applications respectives sont disponibles en téléchargement, reproduisez l'exploit en utilisant le fuzzer de votre choix)
PacketStorm - https://packetstormsecurity.com/files/tags/exploit/
Fuzzgoat - Programme C vulnérable pour tester les fuzzers.
vulnserver - Un serveur vulnérable pour tester les fuzzers.
Fuzzer Test Suite - Ensemble de tests pour les moteurs de fuzzing. Inclut différents bogues bien connus tels que Heartbleed, le bug à 100 000 $ de c-ares et d'autres.
Fuzzing Corpus - Un corpus, comprenant divers formats de fichiers pour fuzzer plusieurs cibles dans la littérature sur le fuzzing.
Awesome Directed Fuzzing : une liste organisée d'articles de recherche exceptionnels sur le fuzzing dirigé.
Merci aux personnes suivantes qui ont contribué à ce projet.