Awesome-Fuzzing/README_ch.md

16 KiB
Raw Blame History

Fuzzing 大合集 Awesome

这是一个在学习 fuzzing 的最初阶段最好的有关 fuzzing 的资源合集(书籍、课程、视频、教程等等)

Table of Contents

Awesome Fuzzing Resources

## 书籍 *关于 fuzzing 的书籍*

Note: 下列书籍中的部分章节也描述了 fuzzing

IDA Pro - The IDA Pro Book: 世界上最流行的反汇编工具的非官方指导书

## 课程

与 fuzzing 有关的课程/培训

### 免费

NYU Poly ( see videos for more ) - Dan Guido 出品的免费指导

Samclass.info ( check projects section and chapter 17 ) - Sam 出品

Modern Binary Exploitation ( RPISEC ) - Chapter 15 - RPISEC 出品

Offensive Computer Security - Week 6 - W. Owen Redwood 和 Prof. Xiuwen Liu 出品

### 付费 ( $$$ ) [Offensive Security, Cracking The Perimeter ( CTP ) and Advanced Windows Exploitation ( AWE )](https://www.offensive-security.com/information-security-training/)

SANS 660/760 Advanced Exploit Development for Penetration Testers

Exodus Intelligence - 漏洞挖掘大师级课程

## 视频

讨论 fuzzing 技术、工具、最佳实践的视频

NYU Poly Course videos (from Dan Guido)

Fuzzing 101 (Part 1) - Mike Zusman 出品

Fuzzing 101 (Part 2) - Mike Zusman 出品

Fuzzing 101 (2009) - Mike Zusman 出品

Fuzzing - Software Security Course on Coursera - 马里兰大学出品

### 关于 Fuzzing 的会议讨论/教程 [Youtube Playlist of various fuzzing talks and presentations ](https://www.youtube.com/playlist?list=PLtPrYlwXDImiO_hzK7npBi4eKQQBgygLD) - 列表内有许多优质内容

Browser bug hunting - Memoirs of a last man standing - Atte Kettunen 出品

Coverage-based Greybox Fuzzing as Markov Chain

## 教程

解释 fuzzing 方法、技术与最佳实践的教程与博客

[2016 文章]

Effective File Format Fuzzing - Mateusz “j00ru” Jurczyk @ Black Hat Europe 2016, London

A year of Windows kernel font fuzzing Part-1 the results - Google Zero 项目的最佳论文,描述了如何进行 fuzzing 以及如何构建一个 fuzzer

A year of Windows kernel font fuzzing Part-2 the techniques - Google Zero 项目的最佳论文,描述了如何进行 fuzzing 以及如何构建一个 fuzzer

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 出品

15 分钟介绍 fuzzing - MWR Security 出品

Note: Folks at fuzzing.info 收集了很多非常有用的链接,我没有重复他们的工作,我只是整理了 2015 年到 2016 年间他们没有收录的文章 Fuzzing Papers - fuzzing.info 出品

Fuzzing 博客 - 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 出品

在 Fuzzing 大型开源项目前要考虑的 7 件事 - Emily Ratliff

从 Fuzzing 到 Exploit

从 fuzzing 到 0-day - Harold Rodriguez(@superkojiman) 出品

从 crash 到 exploit - Corelan Team 出品

Peach Fuzzer 相关教程

Peach 上手指南 使用 Peach 进行 Fuzzing Part 1 - Jason Kratzer of corelan team 出品 使用 Peach 进行 Fuzzing Part 2 - Jason Kratzer of corelan team 出品 Peach pit 文件的自动生成 - Frédéric Guihéry, Georges Bossert 出品

AFL Fuzzer 相关教程

Fuzzing 工作流程,包含 fuzz 的始末 - @BrandonPrry 出品

使用 AFL persistent 模式对 capstone 进行 Fuzzing - @toasted_flakes 出品

RAM disks and saving your SSD from AFL Fuzzing

使用 AFL 进行 Bug 挖掘

AFL 在真实示例中的高级用法

Segfaulting Python with afl-fuzz

Fuzzing Perl: A Tale of Two American Fuzzy Lops

使用 AFL-Fuzz 进行 Fuzzing 的实例( AFL vs Binutils )

Fuzzing 模拟器的重要性

心脏滴血漏洞是如何被发现的

用 AFL 进行文件系统 Fuzzing

Spike Fuzzer 相关教程

Fuzzing with Spike to find overflows

Fuzzing with Spike - Samclass.info 出品

FOE Fuzzer 相关教程

Fuzzing with FOE - Samclass.info 出品

SMT/SAT 求解器教程

Z3 - A guide - Z3 快速上手指南

## 工具

那些在 fuzzing 中能帮上忙的工具

文件格式 Fuzzer

那些帮助对像 pdf, mp3, swf 等文件格式进行 fuzzing 的 Fuzzers

MiniFuzz - Microsoft 出品的基础文件格式 fuzzing 工具

BFF from CERT - 基础文件格式 fuzzing 框架

AFL Fuzzer (Linux only) - Michal Zalewski aka lcamtuf 开发的 Fuzzer

Win AFL - Ivan Fratic 开发的针对 Windows 二进制程序 fuzzing 的 AFL 分支版本

Shellphish Fuzzer - 一个操纵 AFL 的 Python 接口,可以简单的写入测试用例与其他功能

TriforceAFL - 一个 AFL 的修正版,支持应用源码无法获得情况下的 fuzzing

Peach Fuzzer - 帮助创建传统 dumb 以及小型 fuzzer 的框架

MozPeach - 由 Mozilla Security 开发基于 peach 2.7 版本的分支版本

Failure Observation Engine (FOE) - 基于畸形文件的 Windows 程序 Fuzzing 工具

rmadair - 基于畸形文件的 fuzzer使用 PyDBG 来监视感兴趣的信号

honggfuzz - 支持反馈驱动、基于代码覆盖率的通用、易用型 Fuzzer

zzuf - 一个透明应用输入 fuzzer可以拦截文件操作、改变程序输入的随机位

radamsa - 通用的 fuzzer测试用例生成器

### 网络协议 Fuzzer

那些帮助对像 HTTP, SSH, SMTP 等网络协议进行 fuzzing 的 Fuzzer

Peach Fuzzer - 帮助创建传统 dumb 以及小型 fuzzer 的框架

Sulley - Michael Sutton 开发,包含多个可扩展组件的 Fuzzer 开发与 Fuzzing 测试框架

boofuzz - Sulley 框架的继任者

Spike - 像 sulley 的 fuzzer 开发框架,是 sulley 的前身

Metasploit Framework - 通过 Auxiliary 模块使其具有了 fuzzing 能力的框架

Nightmare - 一个带有 Web 管理界面的分布式 fuzzing 测试套件,支持对网络协议进行 fuzzing

rage_fuzzer - 未知协议包 fuzzer

### 杂项,内核 Fuzzer通用 Fuzzer [KernelFuzzer](https://github.com/mwrlabs/KernelFuzzer) - 跨平台内核 Fuzzer 框架

honggfuzz - 带有分析选项的通用、易用型 fuzzer

Hodor Fuzzer - 曾经是另一个通用的 fuzzer

### 流分析(用户输入如何影响执行)

PANDA ( Platform for Architecture-Neutral Dynamic Analysis )

QIRA (QEMU Interactive Runtime Analyser)

### 符号执行 + SAT/SMT 求解器 [Z3](https://github.com/Z3Prover/z3)

SMT-LIB

参考

我没有把全部的东西都纳进来,比如 AxMan请参考以下链接获取更多信息 https://www.ee.oulu.fi/research/ouspg/Fuzzers

### 基本工具(通用)

漏洞利用工具开发者、逆向工程师常用的工具

调试工具

Windbg - 漏洞利用者常用的调试器

Immunity Debugger - Immunity Sec 出品的调试器

OllyDbg - 逆向工程师的常见选择

Mona.py ( Plugin for windbg and Immunity dbg ) - 漏洞利用开发者的绝佳工具

x64dbg - 开源 Windows x64/x32 调试器

Evan's Debugger (EDB) - Front end for gdb.

GDB - Gnu Debugger - 最好的 Linux 调试器

PEDA - Python 开发的 GDB 辅助程序

Radare2 - 逆向工程与程序分析的框架

#### 反汇编工具

反汇编工具、反汇编框架等

IDA Pro - 最好的反汇编工具

binnavi - 二进制程序分析 IDE注释反汇编代码的控制流图与调用图

Capstone - Capstone 是一个轻量、跨平台、多架构支持的反汇编框架

#### 其他

ltrace - 库调用拦截

strace - 系统调用拦截

## 存在漏洞的应用程序 Exploit-DB - https://www.exploit-db.com (搜索、选取漏洞,有些提供了程序下载,可以通过你选择试用的 fuzzer 对利用进行复现

PacketStorm - https://packetstormsecurity.com/files/tags/exploit/

Fuzzgoat - Vulnerable C program for testing fuzzers.

fuzzing 期间种子样本文件

https://files.fuzzing-project.org/

PDF Test Corpus from Mozilla

MS Office file format documentation

## 反Fuzzing

Introduction to Anti-Fuzzing: A Defence In-Depth Aid

## 贡献

请查看 contributing.md 中关于细节的介绍.

感谢下列人员对这个项目的贡献: