
Курируемый список ресурсов по фаззингу ( Книги, курсы - бесплатные и платные, видео, инструменты, учебные пособия и уязвимые приложения для практики ) для изучения фаззинга и начальных этапов разработки эксплойтов, таких как анализ первопричин.
Отобранный список ресурсов по фаззингу (книги, курсы — бесплатные и платные, видео, инструменты, руководства и уязвимые приложения для практики) для изучения фаззинга и начальных этапов разработки эксплойтов, таких как анализ первопричин.
Книги по фаззингу
Fuzzing: Brute Force Vulnerability Discovery — Michael Sutton, Adam Greene, Pedram Amini.
Fuzzing for Software Security Testing and Quality Assurance — Ari Takanen, Charles Miller, Jared D Demott и Atte Kettunen.
Open Source Fuzzing Tools — Gadi Evron и Noam Rathaus.
Gray Hat Python — Justin Seitz.
The Fuzzing Book — Andreas Zeller, Rahul Gopinath, Marcel Böhme, Gordon Fraser и Christian Holler.
Примечание: В следующих книгах есть главы, посвящённые фаззингу.
- The Shellcoder's Handbook: Discovering and Exploiting Security Holes (Глава 15) — Chris Anley, Dave Aitel, David Litchfield и другие.
- iOS Hacker's Handbook — Глава 1 — Charles Miller, Dino DaiZovi, Dion Blazakis, Ralf-Philip Weinmann и Stefan Esser.
Курсы/Обучающие видео по фаззингу
NYU Poly (см. видео для получения дополнительной информации) — Бесплатно предоставлено Dan Guido.
Samclass.info (проверьте раздел проектов и главу 17) — автор Sam.
Modern Binary Exploitation (RPISEC) — Глава 15 — автор RPISEC.
Offensive Computer Security — Неделя 6 — авторы W. Owen Redwood и проф. Xiuwen Liu.
Offensive Security, Cracking The Perimeter (CTP) и Advanced Windows Exploitation (AWE)
SANS 660/760 Advanced Exploit Development for Penetration Testers
Exodus Intelligence — Vulnerability development master class
Ada Logics — Applied Source Code Fuzzing
FuzzingLabs Academy (C/C++, Rust, Go fuzzing)
Signal Labs — Vulnerability Research & Fuzzing
Видео, рассказывающие о техниках, инструментах и лучших практиках фаззинга
Fuzzing 101 (Часть 1) — автор Mike Zusman.
Fuzzing 101 (Часть 2) — автор Mike Zusman.
Fuzzing 101 (2009) — автор Mike Zusman.
Fuzzing — Курс по безопасности ПО на Coursera — Университет Мэриленда.
Attacking Antivirus Software's Kernel Driver
Fuzzing the Windows Kernel — OffensiveCon 2020
Плейлист YouTube с различными докладами и презентациями по фаззингу — много хорошего контента в этих видео.
Browser bug hunting — Memoirs of a last man standing — автор Atte Kettunen
Coverage-based Greybox Fuzzing as Markov Chain
DerbyCon 2016: Fuzzing basics...or how to break software
Fuzz Theory — автор Brandon Falk
Учебные пособия и блоги, объясняющие методологию, техники и лучшие практики фаззинга
ARMored CoreSight: Towards Efficient Binary-only Fuzzing
Fuzzing Microsoft's RDP Client using Virtual Channels: Overview & Methodology
Fuzzing Closed Source PDF Viewers
Fuzzing Image Parsing in Windows, Part One: Color Profiles
Fuzzing Image Parsing in Windows, Part Two: Uninitialized Memory
Fuzzing Image Parsing in Windows, Part Three: RAW and HEIF
Effective File Format Fuzzing — Mateusz «j00ru» Jurczyk, Black Hat Europe 2016, Лондон
A year of Windows kernel font fuzzing Part-1 the results — Замечательная статья от Google's Project Zero, описывающая, что нужно для фаззинга и создания фаззеров.
A year of Windows kernel font fuzzing Part-2 the techniques — Замечательная статья от Google's Project Zero, описывающая, что нужно для фаззинга и создания фаззеров.
Interesting bugs and resources at fuzzing project — от fuzzing-project.org.
Fuzzing workflows; a fuzz job from start to finish — от @BrandonPrry.
A gentle introduction to fuzzing C++ code with AFL and libFuzzer — от Jeff Trull.
A 15 minute introduction to fuzzing — от ребят из MWR Security.
Примечание: Ребята с fuzzing.info проделали отличную работу, собрав несколько замечательных ссылок. Я не буду дублировать их труд. Я добавлю статьи, пропущенные ими, а также за 2015 и 2016 годы. Fuzzing Papers — от fuzzing.info
Fuzzing Blogs and Books — от fuzzing.info
Root Cause Analysis of the Crash during Fuzzing — от Corelan Team.
Root cause analysis of integer flow — от Corelan Team.
Creating custom peach fuzzer publishers — от Open Security Research
7 Things to Consider Before Fuzzing a Large Open Source Project — от Emily Ratliff.
From fuzzing to 0-day — от Harold Rodriguez (@superkojiman).
From crash to exploit — от Corelan Team.
Fuzzing with Peach Part 1 — от Jason Kratzer из команды corelan
Fuzzing with Peach Part 2 — от Jason Kratzer из команды corelan.
Auto generation of Peach pit files/fuzzers — от Frédéric Guihéry, Georges Bossert.
Creating a fuzzing harness for FoxitReader 9.7 ConvertToPDF Function
50 CVEs in 50 Days: Fuzzing Adobe Reader
Fuzzing sockets, part 1: FTP servers
Fuzzing software: common challenges and potential solutions (Part 1)
Fuzzing software: advanced tricks (Part 2)
Fuzzing workflows; a fuzz job from start to finish — от @BrandonPrry.
Fuzzing capstone using AFL persistent mode — от @toasted_flakes
RAM disks and saving your SSD from AFL Fuzzing
Bug Hunting with American Fuzzy Lop
Advanced usage of American Fuzzy Lop with real world examples
Segfaulting Python with afl-fuzz
Fuzzing With AFL-Fuzz, a Practical Example ( AFL vs Binutils )
The Importance of Fuzzing...Emulators?
How Heartbleed could've been found
Filesystem Fuzzing with American Fuzzy lop
Fuzzing Perl/XS modules with AFL
How to fuzz a server with American Fuzzy Lop — от Jonathan Foote
Fuzzing with AFL Workshop - a set of challenges on real vulnerabilities
Hunting for bugs in VirtualBox (First Take)
libFuzzer Workshop: "Modern fuzzing of C/C++ Projects"
Double-Free RCE in VLC. A honggfuzz how-to
Fuzzing with Spike to find overflows
Fuzzing with Spike — от samclass.info
Fuzzing with FOE — от Samclass.info
Z3 - A guide — Начало работы с Z3: руководство
Building A Feedback Fuzzer — от @fady_othman
Инструменты, которые помогают в фаззинге приложений
Фаззеры, помогающие проводить фаззинг в облачных средах.
Cloudfuzzer — Фреймворк для облачного фаззинга, позволяющий легко запускать автоматизированное фазз-тестирование в облачных средах.
ClusterFuzzer — ClusterFuzzer, масштабируемая инфраструктура фаззинга с открытым исходным кодом. Используется Google для фаззинга браузера Chrome.
Fuzzit — Fuzzit, непрерывный фаззинг как сервис. Бесплатно для открытых проектов. Используется различными проектами с открытым (systemd, radare2) и закрытым кодом. Чтобы присоединиться к программе OSS, напишите на [email protected]
Фаззеры, которые помогают фаззить форматы файлов, такие как pdf, mp3, swf и т.д.
pe-afl — объединяет статическую двоичную инструментацию PE-файлов и WinAFL
MiniFuzz — ссылка через Wayback Machine — Базовый инструмент фаззинга файловых форматов от Microsoft. (Больше недоступен на сайте Microsoft).
BFF от CERT — Базовая среда фаззинга (Basic Fuzzing Framework) для файловых форматов.
AFL Fuzzer (Только Linux) — American Fuzzy Lop Fuzzer от Michal Zalewski (aka lcamtuf)
Win AFL — Форк AFL для фаззинга Windows-бинарных файлов
Shellphish Fuzzer — Python-интерфейс к AFL, обеспечивающий лёгкую вставку тестовых примеров и другие функции.
TriforceAFL — Модифицированная версия AFL, поддерживающая фаззинг приложений, исходный код которых недоступен.
AFLGo — Направленный серый ящик с AFL для фаззинга целевых участков программы.
Peach Fuzzer — Фреймворк, помогающий создавать пользовательские глупые и умные фаззеры.
MozPeach — Форк Peach 2.7 от Mozilla Security.
Failure Observation Engine (FOE) — мутационный инструмент фазз-тестирования на основе файлов для Windows-приложений.
rmadair — мутационный файловый фаззер, использующий PyDBG для отслеживания интересующих сигналов.
honggfuzz — Универсальный, простой в использовании фаззер с интересными опциями анализа. Поддерживает фаззинг на основе покрытия кода. Работает на GNU/Linux, FreeBSD, Mac OSX и Android.
zzuf — Прозрачный фаззер ввода приложений. Работает путём перехвата файловых операций и изменения случайных битов во вводе программы.
radamsa — Универсальный фаззер и генератор тестовых примеров.
binspector — Инструмент анализа и фаззинга двоичных форматов
grammarinator — Инструмент фаззинга для файловых форматов на основе грамматик ANTLR v4 (множество грамматик уже доступно из проекта ANTLR).
Sloth — Sloth 🦥 — это фреймворк для направленного по покрытию фаззинга нативных библиотек Android, использующий libFuzzer и эмуляцию пользовательского режима QEMU.
ManuFuzzer — Фаззер покрытия кода для macOS, основанный на libFuzzer и LLVM.
Фаззеры, которые помогают фаззить приложения, использующие сетевые протоколы, такие как HTTP, SSH, SMTP и т.д.
Peach Fuzzer — Фреймворк, помогающий создавать пользовательские глупые и умные фаззеры.
Sulley — Фреймворк для разработки фаззеров и фазз-тестирования, состоящий из нескольких расширяемых компонентов от Pedram Amini.
boofuzz — Форк и преемник фреймворка Sulley.
Spike — Фреймворк для разработки фаззеров, подобный Sulley, предшественник Sulley.
Metasploit Framework — Фреймворк, содержащий некоторые возможности фаззинга через вспомогательные модули.
Nightmare — Распределённый набор для фазз-тестирования с веб-администрированием, поддерживает фаззинг с использованием сетевых протоколов.
rage_fuzzer — Простой глупый фаззер/проигрыватель пакетов, не зависящий от протокола.
Fuzzotron — Простой сетевой фаззер, поддерживающий TCP, UDP и многопоточность.
Mutiny — The Mutiny Fuzzing Framework — это сетевой фаззер, работающий путём воспроизведения PCAP-файлов через мутационный фаззер.
Fuzzing For Worms — Фреймворк фаззинга для сетевых серверов.
AFL (с патчем для сети) — Неофициальная версия american fuzzy lop, способная на сетевой фаззинг.
AFLNet — Фаззер серого ящика для сетевых протоколов (расширение AFL).
Pulsar — Изучение протоколов, симуляция и фаззер с учётом состояния.
BFuzz — Фреймворк для фаззинга браузеров на основе ввода. Fuzzinator — Фреймворк для случайного тестирования Fuzzinator Grizzly — Кроссплатформенный фреймворк для фаззинга браузеров
Другие заметные фаззеры, такие как фаззеры ядра, фаззеры общего назначения и т.д.
Choronzon — Эволюционный фаззер на основе знаний
QuickFuzz — Инструмент, написанный на Haskell, предназначенный для тестирования неожиданных входных данных распространённых файловых форматов в стороннем ПО, используя готовые, хорошо известные фаззеры.
gramfuzz — Грамматический фаззер, позволяющий определять сложные грамматики для моделирования текстовых и бинарных форматов данных.KernelFuzzer - Кросс-платформенный фреймворк для фаззинга ядра.
honggfuzz - Универсальный, простой в использовании фаззер с интересными возможностями анализа.
Hodor Fuzzer - Ещё один универсальный фаззер.
libFuzzer - Внутрипроцессный, управляемый покрытием, эволюционный движок фаззинга для целей, написанных на C/C++.
syzkaller - Распределённый, неконтролируемый, управляемый покрытием фаззер системных вызовов Linux.
ansvif - Продвинутый кроссплатформенный фреймворк фаззинга, разработанный для поиска уязвимостей в коде C/C++.
Tribble - Простой в использовании, управляемый покрытием фреймворк фаззинга JVM.
go-fuzz - Тестирование Go-пакетов с управлением покрытием.
FExM - Автоматизированный фреймворк крупномасштабного фаззинга
Jazzer - Управляемый покрытием, внутрипроцессный фаззер для виртуальной машины Java на основе libFuzzer.
cifuzz - Инструмент командной строки для выполнения управляемых покрытием фазз-тестов на нескольких языках и для разных целей.
WebGL Fuzzer - WebGL Fuzzer
fast-check - Инструмент фаззинга, написанный на TypeScript и предназначенный для запуска неожиданных входных данных в JavaScript-код.
Как ввод пользователя влияет на выполнение
PANDA (Платформа для архитектурно-нейтрального динамического анализа)
QIRA (Интерактивный анализатор времени выполнения QEMU)
kfetch-toolkit - Инструмент для расширенного логирования обращений к памяти, выполняемых ядрами операционных систем.
moflow - Фреймворк безопасности ПО, содержащий инструменты для обнаружения и триажирования уязвимостей.
Z3 - Доказатель теорем от Microsoft Research.
SMT-LIB - Международная инициатива, направленная на содействие исследованиям и разработкам в области выполнимости по модулю теорий (SMT)
Символическое выполнение с KLEE: от установки и введения до поиска ошибок в открытом ПО - Набор из четырёх учебных видео, знакомящих с KLEE, начиная с того, как начать работу с KLEE, и заканчивая демонстрацией, которая находит ошибки повреждения памяти в реальном коде.
Я не включил некоторые легенды, такие как AxMan, обратитесь по следующей ссылке для получения дополнительной информации. https://www.ee.oulu.fi/research/ouspg/Fuzzers
Инструменты ремесла для разработчиков эксплойтов, реверс-инженеров
Windbg - Предпочтительный отладчик для авторов эксплойтов.
Immunity Debugger - Immunity Debugger от Immunity Sec.
OllyDbg - Выбор отладчика для реверс-инженеров и разработчиков эксплойтов.
Mona.py ( Plugin for windbg and Immunity dbg ) - Отличные инструменты, которые облегчают жизнь разработчикам эксплойтов.
x64dbg - Открытый отладчик x64/x32 для Windows.
Evan's Debugger (EDB) - Фронтенд для gdb.
GDB - Gnu Debugger - Любимый отладчик Linux.
PEDA - Помощник по разработке эксплойтов на Python для GDB.
Radare2 - Фреймворк для реверс-инжиниринга и анализа бинарных файлов.
Дисассемблеры, фреймворки дизассемблирования и т.д.,
IDA Pro - Лучший дизассемблер
binnavi - Среда разработки для анализа бинарных файлов, аннотирует графы потоков управления и графы вызовов дизассемблированного кода.
Capstone - Capstone - лёгкий кроссплатформенный, мультиархитектурный фреймворк дизассемблирования.
ltrace - Перехват вызовов библиотек
strace - Перехват системных вызовов
Exploit-DB - https://www.exploit-db.com (найдите и выберите эксплойты, для которых доступны соответствующие приложения для скачивания, воспроизведите эксплойт, используя фаззер на ваш выбор)
PacketStorm - https://packetstormsecurity.com/files/tags/exploit/
Fuzzgoat - Уязвимая программа на C для тестирования фаззеров.
vulnserver - Уязвимый сервер для тестирования фаззеров.
https://files.fuzzing-project.org/
Тестовый корпус PDF от Mozilla
Документация по форматам файлов MS Office
Набор тестов для фаззеров - Набор тестов для движков фаззинга. Включает разные известные ошибки, такие как Heartbleed, ошибка c-ares на $100K и другие.
Корпус фаззинга - Корпус, включающий различные форматы файлов для фаззинга множества целей в литературе по фаззингу.
Введение в антифаззинг: средство глубокой защиты
Фаззификация: методы антифаззинга
AntiFuzz: воспрепятствование аудиту фаззинга бинарных исполняемых файлов
Потрясающий направленный фаззинг: Подборка лучших исследовательских статей по направленному фаззингу.
Пожалуйста, обратитесь к руководству в contributing.md за подробностями.
Спасибо следующим людям, внесшим вклад в этот проект.