
Uma lista selecionada de recursos de fuzzing (livros, cursos — gratuitos e pagos, vídeos, ferramentas, tutoriais e aplicações vulneráveis para praticar) para aprender Fuzzing e as fases iniciais do Desenvolvimento de Exploits, como análise de causa raiz.
Uma lista selecionada de recursos de fuzzing ( Livros, cursos - gratuitos e pagos, vídeos, ferramentas, tutoriais e aplicativos vulneráveis para praticar ) para aprender Fuzzing e as fases iniciais de Desenvolvimento de Exploits, como análise de causa raiz.
Livros sobre fuzzing
Fuzzing: Brute Force Vulnerability Discovery por Michael Sutton, Adam Greene, Pedram Amini.
Fuzzing for Software Security Testing and Quality Assurance por Ari Takanen, Charles Miller, Jared D Demott e Atte Kettunen.
Open Source Fuzzing Tools por Gadi Evron e Noam Rathaus.
Gray Hat Python por Justin Seitz.
The Fuzzing Book por Andreas Zeller, Rahul Gopinath, Marcel Böhme, Gordon Fraser e Christian Holler.
Nota: Os capítulos dos livros a seguir são dedicados a fuzzing.
- The Shellcoder's Handbook: Discovering and Exploiting Security Holes ( Capítulo 15 ) por Chris Anley, Dave Aitel, David Litchfield e outros.
- iOS Hacker's Handbook - Capítulo 1 Charles Miller, Dino DaiZovi, Dion Blazakis, Ralf-Philip Weinmann e Stefan Esser.
Cursos/Vídeos de treinamento sobre fuzzing
NYU Poly ( veja os vídeos para mais informações ) - Disponibilizado gratuitamente por Dan Guido.
Samclass.info ( confira a seção de projetos e o capítulo 17 ) - por Sam.
Modern Binary Exploitation ( RPISEC ) - Capítulo 15 - por RPISEC.
Offensive Computer Security - Semana 6 - por W. Owen Redwood e Prof. Xiuwen Liu.
Offensive Security, Cracking The Perimeter ( CTP ) e Advanced Windows Exploitation ( AWE )
SANS 660/760 Advanced Exploit Development for Penetration Testers
Exodus Intelligence - Master class de desenvolvimento de vulnerabilidades
Ada Logics - Fuzzing Aplicado de Código-Fonte
FuzzingLabs Academy (fuzzing em C/C++, Rust, Go)
Signal Labs - Pesquisa de Vulnerabilidades & Fuzzing
Vídeos que falam sobre técnicas, ferramentas e melhores práticas de fuzzing
Fuzzing 101 (Parte 1) - por Mike Zusman.
Fuzzing 101 (Parte 2) - por Mike Zusman.
Fuzzing 101 (2009) - por Mike Zusman.
Fuzzing - Curso de Segurança de Software na Coursera - pela Universidade de Maryland.
Atacando o Driver de Kernel de Software Antivírus
Fuzzing do Kernel do Windows - OffensiveCon 2020
Playlist do Youtube com várias palestras e apresentações de fuzzing - Muito conteúdo bom nesses vídeos.
Caça a bugs em navegadores - Memórias de um último sobrevivente - por Atte Kettunen
Coverage-based Greybox Fuzzing as Markov Chain
DerbyCon 2016: Noções básicas de fuzzing...ou como quebrar software
Fuzz Theory - por Brandon Falk
Tutoriais e blogs que explicam metodologia, técnicas e melhores práticas de fuzzing
ARMored CoreSight: Towards Efficient Binary-only Fuzzing
Fuzzing do Cliente RDP da Microsoft usando Canais Virtuais: Visão Geral & Metodologia
Fuzzing de Visualizadores de PDF de Código Fechado
Fuzzing no Parsing de Imagens no Windows, Parte Um: Perfis de Cor
Fuzzing no Parsing de Imagens no Windows, Parte Dois: Memória Não Inicializada
Fuzzing no Parsing de Imagens no Windows, Parte Três: RAW e HEIF
Effective File Format Fuzzing - Mateusz “j00ru” Jurczyk @ Black Hat Europe 2016, Londres
A year of Windows kernel font fuzzing Part-1 the results - Artigo incrível do Google Project Zero, descrevendo o que é necessário para fazer fuzzing e criar fuzzers.
A year of Windows kernel font fuzzing Part-2 the techniques - Artigo incrível do Google Project Zero, descrevendo o que é necessário para fazer fuzzing e criar fuzzers.
Bugs e recursos interessantes no projeto de fuzzing - por fuzzing-project.org.
Fluxos de trabalho de fuzzing; um trabalho de fuzz do início ao fim - por @BrandonPrry.
Uma introdução suave ao fuzzing de código C++ com AFL e libFuzzer - por Jeff Trull.
Uma introdução de 15 minutos ao fuzzing - pelo pessoal da MWR Security.
Nota: O pessoal do fuzzing.info fez um ótimo trabalho coletando alguns links incríveis. Não vou duplicar o trabalho deles. Vou adicionar artigos que eles não incluíram e de 2015 e 2016. Artigos sobre Fuzzing - por fuzzing.info
Blogs e Livros sobre Fuzzing - por fuzzing.info
Análise de Causa Raiz do Crash durante o Fuzzing - pela Equipe Corelan.
Análise de causa raiz de fluxo de inteiros - pela Equipe Corelan.
Criando publishers personalizados para o fuzzer Peach - por Open Security Research
7 Coisas a Considerar Antes de Fuzzing em um Grande Projeto Open Source - por Emily Ratliff.
De fuzzing a 0-day - por Harold Rodriguez(@superkojiman).
Do crash ao exploit - pela Equipe Corelan.
Fuzzing com Peach Parte 1 - por Jason Kratzer, da equipe corelan.
Fuzzing com Peach Parte 2 - por Jason Kratzer, da equipe corelan.
Geração automática de arquivos/fuzzers Peach pit - por Frédéric Guihéry, Georges Bossert.
Criando um harness de fuzzing para a função ConvertToPDF do FoxitReader 9.7
50 CVEs em 50 Dias: Fuzzing no Adobe Reader
Fuzzing em sockets, parte 1: servidores FTP
Fuzzing de software: desafios comuns e possíveis soluções (Parte 1)
Fuzzing de software: truques avançados (Parte 2)
Fluxos de trabalho de fuzzing; um trabalho de fuzz do início ao fim - por @BrandonPrry.
Fuzzing no capstone usando o modo persistente do AFL - por @toasted_flakes
Discos RAM e como poupar seu SSD do fuzzing com AFL
Caça a bugs com American Fuzzy Lop
Uso avançado do American Fuzzy Lop com exemplos do mundo real
Causando segfault em Python com afl-fuzz
Fuzzing com AFL-Fuzz, um Exemplo Prático ( AFL vs Binutils )
A Importância de Fuzzing...Emuladores?
Como a Heartbleed poderia ter sido encontrada
Fuzzing de sistemas de arquivos com American Fuzzy Lop
Fuzzing de módulos Perl/XS com AFL
Como fazer fuzzing em um servidor com American Fuzzy Lop - por Jonathan Foote
Workshop de Fuzzing com AFL - um conjunto de desafios sobre vulnerabilidades reais
Caçando bugs no VirtualBox (Primeira tentativa)
Workshop de libFuzzer: "Fuzzing moderno de projetos C/C++"
RCE de Double-Free no VLC. Um guia prático de honggfuzz
Fuzzing com Spike para encontrar overflows
Fuzzing com Spike - por samclass.info
Fuzzing com FOE - por Samclass.info
Z3 - Um guia - Começando com o Z3: Um guia
Construindo um Fuzzer com Feedback - por @fady_othman
Ferramentas que auxiliam no fuzzing de aplicações
Fuzzers que ajudam no fuzzing em ambientes de nuvem.
Cloudfuzzer - Framework de fuzzing em nuvem que torna possível executar facilmente testes automatizados de fuzzing em ambientes de nuvem.
ClusterFuzzer - ClusterFuzzer, infraestrutura escalável de fuzzing open source. É usada pelo Google para fuzzing no Chrome Browser.
Fuzzit - Fuzzit, plataforma de fuzzing contínuo como serviço. Gratuito para open source. Usada por vários projetos open-source (systemd, radare2) e projetos de código fechado. Para participar do programa oss, envie uma mensagem para [email protected]
Fuzzers que auxiliam no fuzzing de formatos de arquivo como pdf, mp3, swf etc.
Versão mais recente do Rehepapp
pe-afl combina instrumentação binária estática em binários PE e WinAFL
MiniFuzz - link da Wayback Machine - Ferramenta básica de fuzzing de formatos de arquivo da Microsoft. (Não está mais disponível no site da Microsoft).
BFF do CERT - Basic Fuzzing Framework para formatos de arquivo.
AFL Fuzzer (somente Linux) - American Fuzzy Lop Fuzzer por Michal Zalewski, também conhecido como lcamtuf.
Win AFL - Um fork do AFL para fuzzing em binários do Windows.
Shellphish Fuzzer - Uma interface Python para o AFL, permitindo fácil injeção de casos de teste e outras funcionalidades.
TriforceAFL - Uma versão modificada do AFL que suporta fuzzing para aplicações cujo código-fonte não está disponível.
AFLGo - Fuzzing Greybox Direcionado com AFL, para fuzzing em locais específicos de um programa.
Peach Fuzzer - Framework que ajuda a criar fuzzers personalizados, cegos e inteligentes.
MozPeach - Um fork do peach 2.7 pela Mozilla Security.
Failure Observation Engine (FOE) - ferramenta de teste de fuzzing mutacional baseada em arquivos para aplicações Windows.
rmadair - fuzzer de arquivos baseado em mutação que usa PyDBG para monitorar sinais de interesse.
honggfuzz - Um fuzzer de propósito geral, fácil de usar, com opções interessantes de análise. Suporta fuzzing orientado por feedback com base em cobertura de código. Suporta GNU/Linux, FreeBSD, Mac OSX e Android.
zzuf - Um fuzzer transparente de entrada de aplicações. Funciona interceptando operações de arquivo e alterando bits aleatórios na entrada do programa.
radamsa - Um fuzzer de propósito geral e gerador de casos de teste.
binspector - Uma ferramenta de análise e fuzzing de formatos binários.
grammarinator - Ferramenta de fuzzing para formatos de arquivo baseada em gramáticas ANTLR v4 (muitas gramáticas já disponíveis no projeto ANTLR).
Sloth - Sloth 🦥 é um framework de fuzzing guiado por cobertura para fuzzing de bibliotecas nativas Android que utiliza libFuzzer e emulação de modo usuário do QEMU.
ManuFuzzer - Fuzzer de cobertura de código binário para macOS, baseado em libFuzzer e LLVM.
Fuzzers que auxiliam no fuzzing de aplicações que usam protocolos de rede como HTTP, SSH, SMTP etc.
Peach Fuzzer - Framework que ajuda a criar fuzzers personalizados, cegos e inteligentes.
Sulley - Um framework de desenvolvimento de fuzzers e testes de fuzzing, composto por múltiplos componentes extensíveis, por Pedram Amini.
boofuzz - Um fork e sucessor do framework Sulley.
Spike - Um framework de desenvolvimento de fuzzers como o sulley, um predecessor do sulley.
Metasploit Framework - Um framework que contém alguns recursos de fuzzing por meio de módulos Auxiliary.
Nightmare - Um conjunto de testes de fuzzing distribuído com administração web, suporta fuzzing usando protocolos de rede.
rage_fuzzer - Um fuzzer/replayer de pacotes cego, sem conhecimento de protocolo.
Fuzzotron - Um fuzzer de rede simples que suporta TCP, UDP e multithreading.
Mutiny - O Mutiny Fuzzing Framework é um fuzzer de rede que opera reproduzindo PCAPs por meio de um fuzzer mutacional.
Fuzzing For Worms - Um framework de fuzzing para servidores de rede.
AFL (w/ networking patch) - Um american fuzzy lop não oficial capaz de fazer fuzzing de rede.
AFLNet - Um Fuzzer Greybox para Protocolos de Rede (uma extensão do AFL).
Pulsar - Aprendizado de Protocolo, Simulação e Fuzzer Stateful.
BFuzz - Um framework de fuzzing de navegadores baseado em entrada. Fuzzinator - Fuzzinator Framework de Testes Aleatórios. Grizzly - Um framework de fuzzing de navegadores multiplataforma.
Outros fuzzers notáveis, como fuzzers de kernel, fuzzer de propósito geral etc.
Choronzon - Um fuzzer evolucionário baseado em conhecimento.
QuickFuzz - Uma ferramenta escrita em Haskell projetada para testar entradas inesperadas de formatos de arquivo comuns em software de terceiros, aproveitando fuzzers conhecidos e prontos para uso.
gramfuzz - Um fuzzer baseado em gramática que permite definir gramáticas complexas para modelar formatos de dados de texto e binários.KernelFuzzer - Framework de fuzzing de kernel multiplataforma.
honggfuzz - Um fuzzer de propósito geral, fácil de usar, com opções interessantes de análise.
Hodor Fuzzer - Mais um fuzzer de propósito geral.
libFuzzer - Motor de fuzzing no processo, guiado por cobertura e evolucionário para alvos escritos em C/C++.
syzkaller - Fuzzer distribuído, não supervisionado e guiado por cobertura para syscalls do Linux.
ansvif - Um framework avançado de fuzzing multiplataforma projetado para encontrar vulnerabilidades em código C/C++.
Tribble - Framework de fuzzing para JVM, fácil de usar e guiado por cobertura.
go-fuzz - Testes guiados por cobertura de pacotes go.
FExM - Framework automatizado de fuzzing em larga escala.
Jazzer - Um fuzzer no processo e guiado por cobertura para a Java Virtual Machine, baseado no libFuzzer.
cifuzz - Uma ferramenta de linha de comando para executar testes de fuzz guiados por cobertura em múltiplas linguagens e alvos.
WebGL Fuzzer - WebGL Fuzzer
fast-check - Uma ferramenta de fuzzer escrita em TypeScript e projetada para executar entradas inesperadas contra código JavaScript.
Como a entrada do usuário afeta a execução
PANDA ( Platform for Architecture-Neutral Dynamic Analysis )
QIRA (QEMU Interactive Runtime Analyser)
kfetch-toolkit - Ferramenta para realizar registro avançado de referências de memória realizadas pelos kernels de sistemas operacionais.
moflow - Um framework de segurança de software contendo ferramentas para vulnerabilidade, descoberta e triagem.
Z3 - Um provador de teoremas da Microsoft Research.
SMT-LIB - Uma iniciativa internacional destinada a facilitar a pesquisa e o desenvolvimento em Satisfiability Modulo Theories (SMT)
Execução simbólica com KLEE: da instalação e introdução à descoberta de bugs em software de código aberto - Um conjunto de quatro vídeos instrucionais apresentando o KLEE, começando com como começar a usá-lo e terminando com uma demonstração que encontra bugs de corrupção de memória em código real.
Não incluí algumas ferramentas lendárias, como o AxMan; consulte o link a seguir para obter mais informações. https://www.ee.oulu.fi/research/ouspg/Fuzzers
Ferramentas do ofício para desenvolvedores de exploits e engenheiros reversos
Windbg - O depurador preferido pelos autores de exploits.
Immunity Debugger - Immunity Debugger da Immunity Sec.
OllyDbg - O depurador de escolha tanto para engenheiros reversos quanto para autores de exploits.
Mona.py ( Plugin para windbg e Immunity dbg ) - Ferramentas incríveis que facilitam a vida dos desenvolvedores de exploits.
x64dbg - Um depurador open-source x64/x32 para Windows.
Evan's Debugger (EDB) - Front-end para o gdb.
GDB - Gnu Debugger - O depurador favorito do Linux.
PEDA - Assistência em Python para desenvolvimento de exploits para GDB.
Radare2 - Framework para engenharia reversa e análise de binários.
Desmontadores, frameworks de desmontagem, etc.,
IDA Pro - O melhor desmontador
binnavi - IDE de análise de binários que anota grafos de fluxo de controle e grafos de chamada de código desmontado.
Capstone - Capstone é um framework de desmontagem leve, multiplataforma e multiarquitetura.
ltrace - Intercepta chamadas de biblioteca.
strace - Intercepta chamadas de sistema.
Exploit-DB - https://www.exploit-db.com (pesquise e escolha os exploits que tenham os respectivos aplicativos disponíveis para download; reproduza o exploit usando o fuzzer de sua escolha)
PacketStorm - https://packetstormsecurity.com/files/tags/exploit/
Fuzzgoat - Programa C vulnerável para testar fuzzers.
vulnserver - Um servidor vulnerável para testar fuzzers.
https://files.fuzzing-project.org/
Corpus de teste PDF da Mozilla
Documentação do formato de arquivo do MS Office
Fuzzer Test Suite - Conjunto de testes para mecanismos de fuzzing. Inclui vários bugs conhecidos, como Heartbleed, o bug de US$ 100 mil do c-ares e outros.
Fuzzing Corpus - Um corpus, incluindo vários formatos de arquivo para fuzzing de múltiplos alvos na literatura de fuzzing.
Introdução ao Anti-Fuzzing: Um Auxílio de Defesa em Profundidade
Fuzzification: Técnicas de Anti-Fuzzing
AntiFuzz: Dificultando Auditorias de Fuzzing em Executáveis Binários
Awesome Directed Fuzzing: Uma lista selecionada de excelentes artigos de pesquisa sobre fuzzing direcionado.
Consulte as diretrizes em contributing.md para obter detalhes.
Agradecimentos às seguintes pessoas que contribuíram para este projeto.