专栏首页FreeBuf一系列用于Fuzzing学习的资源汇总

一系列用于Fuzzing学习的资源汇总

本文主要是向大家推荐一系列,用于fuzzing和Exploit开发初始阶段学习的资源合集,其中将包括相关的书籍,课程 - 免费或收费的,视频,工具,教程,以及一些供大家练习使用的靶机应用。(PS:文内所有链接点击“阅读原文”均可查看)

fuzzing书籍:

《模糊测试-强制性安全漏洞发掘》作者: Michael Sutton, Adam Greene, Pedram Amini。 《软件安全测试Fuzzing和zhi’laing质量保证》作者:Ari Takanen, Charles Miller, and Jared D Demott。 《开源Fuzzing工具》作者: Gadi Evron and Noam Rathaus。 《Python灰帽子》作者:Justin Seitz。

注意:以下书籍中的相关章节专注于Fuzzing。

《Shellcoder手册:发现和利用安全漏洞》(第15章节)作者:Chris Anley, Dave Aitel, David Litchfield等。 《iOS黑客手册 - 第1章》作者:Charles Miller, Dino DaiZovi, Dion Blazakis, Ralf-Philip Weinmann, Stefan Esser。 《IDA Pro - IDA Pro Book:全球最受欢迎的反编译器非官方指南》

fuzzing课程/培训视频:

免费

纽约大学Poly(查看更多视频) - 由Dan Guido免费提供。 Samclass.info(检查项目部分和第17章) - 由Sam提供。 现代二进制开发(RPISEC) - 第15章 - 由RPISEC提供。 攻击性计算机安全 - 第6周 - 由W. Owen Redwood和Xiuwen Liu教授提供。

付费

Offensive Security, CTP和高级Windows开发(AWE) 针对渗透测试的SANS 660/760高级Exploit开发 Exodus Intelligence - 漏洞开发大师班

视频:

视频主要谈论fuzzing技术,工具以及最佳实践。

纽约大学Poly课程视频

Fuzzing 101 (Part 1) - Mike Zusman。 Fuzzing 101 (Part 2) - Mike Zusman。 Fuzzing 101 (2009) - Mike Zusman。 Fuzzing - Coursera软件安全课程 - 由马里兰大学提供

会议讲座和教程

Youtube上各种有关fuzzing的探讨和演示文稿播放列表 - 这些视频中有很多不错的内容 浏览器bug狩猎 - 最后一个人的回忆录 - Atte Kettunen 将基于代码覆盖率的灰盒Fuzzing视为马尔科夫链 DerbyCon 2016:Fuzzing基础知识……或如何破解软件

教程和博客

文章和博客解释了fuzzing的方法,技术和最佳实践。

有效的文件格式Fuzzing - Mateusz“j00ru”Jurczyk @Black Hat 2016欧洲,伦敦 过去一年的Windows内核字体fuzzing第一部分成果 - 谷歌的Project Zero的一篇惊人的文章,描述了如何进行fuzzing和创建fuzzers。 过去一年的Windows内核字体fuzzing第二部分技术 - 谷歌的Project Zero的一篇惊人的文章,描述了fuzzing和创建fuzzers需要什么。 fuzzing项目中有趣的bug和资源 - 来自fuzzing-project.org。 Fuzzing工作流程; fuzz工作从开始到结束 - @BrandonPrry。 用AFL和libFuzzer轻松介绍C++代码fuzzing - Jeff Trull。 15分钟fuzzing介绍 - MWR安全。

注意:fuzzing.info已经为我们整合了许多优秀的资源,我不会重复他们的工作。我将会添加一些他们错过的论文。Fuzzing Papers - fuzzing.info

Fuzzing Blog - fuzzing.info Fuzzing中出现崩溃的根本原因分析 - Corelan团队。Root cause analysis of integer flow -Corelan团队。 Creating custom peach fuzzer publishers - Open Security Research。 在Fuzzing大型开源项目之前需要考虑的七件事 - Emily Ratliff。

从Fuzzing到利用:

从Fuzzing到0-day - Harold Rodriguez(@superkojiman)。 从崩溃到利用 - Corelan团队。

Peach Fuzzer相关教程:

开始使用Peach Peach Fuzzing第一部分 - corelan团队Jason Kratzer Peach Fuzzing第二部分 - corelan团队Jason Kratzer 自动生成Peach pit文件/fuzzers - FrédéricGuihéry,Georges Bossert

AFL Fuzzer相关教程

Fuzzing工作流程; fuzz工作从开始到结束 - @BrandonPrry。 使用afl的persistent模式给capstone做模糊测试 - @toasted_flakes。 RAM磁盘以及从AFL Fuzzing中保存你的SSD 使用American Fuzzy Lop狩猎Bug American Fuzzy Lop在真实案例中的高级使用 使用afl-fuzz隔离Python Fuzzing Perl: American Fuzzy Lops的故事 使用AFL-Fuzz Fuzzing,一个练习示例(AFL vs Binutils) Fuzzing的重要性? Heartbleed是如何被找到的 使用American Fuzzy lop Fuzzing文件系统 使用AFL Fuzzing Perl/XS模块 如何使用American Fuzzy Lop fuzz一个服务器 - Jonathan Foote AFL研讨会Fuzzing - 真正的漏洞带来的一系列挑战

libFuzzer Fuzzer相关教程

libFuzzer教程 libFuzzer研讨会:“C/C++项目的现代fuzzing”

Spike Fuzzer相关教程

使用Spike Fuzzing查找溢出 使用Spike Fuzzing - samclass.info

FOE Fuzzer相关教程

使用FOE Fuzzing - Samclass.info SMT/SAT solver教程 Z3 - 指南 - Z3入门指南:指南

工具

有助于fuzzing应用的工具

Cloud Fuzzers

在云环境中帮助fuzzing测试的Fuzzers。

Cloudfuzzer - 云fuzzing框架,可以轻松在云环境中运行自动化模糊测试。

文件格式Fuzzers

可帮助fuzzing文件格式的Fuzzers,如PDF,MP3,SWF等

MiniFuzz - Wayback Machine链接 - Microsoft提供的基本文件格式模糊测试工具。(Microsoft网站上不再提供)。 BFF from CERT - 用于文件格式的基本模糊测试框架。 AFL Fuzzer(仅适用于Linux)- American Fuzzy Lop Fuzzer 由Michal Zalewski aka lcamtuf发布 Win AFL- Linux下的智能模糊测试神器afl-fuzz的Windows版本 Shellphish Fuzzer - AFL的Python接口,允许注入测试用例和其他功能。 TriforceAFL - AFL的修改版本,它支持源代码不可用的应用程序的模糊测试。 Peach Fuzzer - 一款智能模糊测试工具, 广泛用于发现软件中的漏洞和缺陷,它有两种主要模式,基于生长的模糊测试和基于变异的模糊测试。 MozPeach - 由Mozilla Security提供的peach 2.7。 失败观察引擎(FOE) - 针对Windows应用程序的基于文件突变的fuzz测试工具。 rmadair - 基于文件突变的fuzz测试工具,使用PyDBG来监测感兴趣的信号。 honggfuzz - 一个易于使用的fuzzer以及有趣的分析选项。支持基于代码覆盖的feedback-driven fuzzing。同时支持GNU/Linux,FreeBSD,Mac OSX和Android系统。 zzuf - 一个透明应用程序输入fuzzer。它通过拦截文件操作并更改程序输入中的随机位来工作。 radamsa - 通用型fuzzer和测试用例生成器。 binspector - 二进制格式分析和模糊测试工具 grammarinator - 基于ANTLR v4语法的文件格式模糊测试工具(ANTLR项目中已有多种语法可用)。

网络协议Fuzzers

可帮助fuzzing使用基于网络协议(如HTTP, SSH, SMTP等)的应用程序Fuzzers。

Peach Fuzzer - 一款智能模糊测试工具, 广泛用于发现软件中的漏洞和缺陷,它有两种主要模式,基于生长的模糊测试和基于变异的模糊测试。 Sulley- 由多个可扩展组件组成的fuzzer开发和模糊测试框架。 boofuzz- Sulley框架的分支和继承。 Spike - 一个fuzzer开发框架。 Metasploit框架 - 通过辅助模块包含一些fuzzing功能的框架。 Nightmare - 带有Web管理的分布式模糊测试套件,支持使用网络协议进行模糊测试。

杂项

其他的一些fuzzers,如内核fuzzers,通用型fuzzer等。

Choronzon - 一个革命性的基于知识库的模糊测试。 QuickFuzz - 是一个语法模糊器,由QuickCheck,模板Haskell和Hackage的特定库生成许多复杂的文件格式,如Jpeg,Png,Svg,Xml,Zip,Tar等。 gramfuzz - 一种基于语法的模糊器,可以让您定义复杂的语法来为文本和二进制数据格式建模。 KernelFuzzer - 跨平台的内核Fuzzer框架。 honggfuzz - 一个易于使用的fuzzer以及有趣的分析选项。支持基于代码覆盖的feedback-driven fuzzing。同时支持GNU/Linux,FreeBSD,Mac OSX和Android系统。 Hodor Fuzzer - 另一种通用型fuzzer。 libFuzzer- C/C++编写的目标进程内覆盖引导渐进式fuzzing引擎。 syzkaller - 一款针对Linux内核进行模糊测试的开源工具。 ansvif - 用于查找C/C++代码中的漏洞的高级跨平台模糊测试框架。

污点分析

用户输入如何影响执行

PANDA(构建于顶级QEMU系统上的新一代动态分析平台) QIRA(QEMU交互式运行时分析器) kfetch-toolkit - 执行高级记录引用的工具

符号执行SAT和SMT求解器

Z3 - 属于SMT Solver,用于判定First Order Logic公式的可满足性。 SMT-LIB - 旨在促进SMT研究与开发的国际计划。

参考

点击链接了解更多信息:https://www.ee.oulu.fi/research/ouspg/Fuzzers

基本工具

针对exploit开发人员和逆向工程师的工具。

Debuggers

Windbg - windows平台下强大的用户态和内核态调试工具。 Immunity Debugger- 专门用于加速漏洞利用程序的开发,辅助漏洞挖掘以及恶意软件分析。 OllyDbg - 一个新的动态追踪工具。 Mona.py(windbg和Immunity dbg的插件) x64dbg - 用于Windows的开源x64/x32调试器。 Evan的调试器(EDB)- gdb前端。 GDB - Gnu调试器 - 最喜欢的Linux调试器。 PEDA - 针对GDB的Python Exploit开发助手。 Radare2 - 用于逆向工程和二进制文件分析的框架。

反编译以及更多

IDA Pro- 最好的反编译软件 binnavi - 二进制分析IDE,注释控制流程图和调用反编译代码的图形。 Capstone - Capstone是一个轻量级的多平台,多架构反编译框架。

其它

ltrace - 用来跟踪进程调用库函数的情况。 strace - 跟踪系统调用和信号。

漏洞应用程序

Exploit-DB - https://www.exploit-db.com(通过搜索相关的应用漏洞,并自行下载漏洞应用及EXP重现漏洞) PacketStorm - https://packetstormsecurity.com/files/tags/exploit/ Fuzzgoat - 用于测试fuzzers的漏洞C程序。

模糊测试样本文件:

https://files.fuzzing-project.org/ 来自Mozilla的PDF测试语料库 MS Office文件格式文档 模糊测试套件 - fuzzing引擎测试集。包括不同的已知bug,如Heartbleed, c-ares $100K bug等。

反Fuzzing

反Fuzzing介绍:纵深防御

*参考来源:GitHub,FB小编 secist 编译,转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf),作者:secist

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何使用Cron Jobs实现Linux提权

    今天给各位渗透测试同行们提供一种Linux提权方法,在这篇文章中,我们将介绍如何使用Cron Jobs来实现Linux下的权限提升,并获取远程主机的root访问...

    FB客服
  • 购物季?网购狂欢背后的渔夫和水坑

    11月、12月都是一场网络购物季的狂欢,无论是国内的”双十一“、”双十二“,还是美国的”黑五“和”网络星期一“,参与人数和创造的销售额每年都在刷新纪录,有钱的捧...

    FB客服
  • 手把手教你如何将学校饭卡复制到小米手环NFC版上

    NFC是Near Field Communication缩写,即近距离无线通讯技术。由飞利浦公司和索尼公司共同开发的NFC是一种非接触式识别和互联技术,可以在移...

    FB客服
  • CTF---安全杂项入门第二题 A记录

    A记录分值:20 来源: sammie 难度:中 参与人数:2255人 Get Flag:566人 答题人数:621人 解题通过率:91% 他在看什么视频,...

    Angel_Kitty
  • 清华霸榜,长沙理工异军突起!第三届 CCF CCSP落下帷幕

    10月26日上午,经过前一天12个小时的激烈角逐后,2018 大学生计算机系统与程序设计竞赛(CCSP)进入颁奖阶段。

    量子位
  • 别推塔了快回城,AI预测你的英雄5秒后就要死了!

    近日,约克大学的研究者用AI预测死亡。不过不是人类的死亡,而是Dota 2中英雄的阵亡概率。

    新智元
  • TWAS hub:使用TWAS识别疾病易感基因

    TWAS方法用于分析与疾病或者特定性状想关联的基因表达,TWAS hub利用该方法分析了数百个复杂性状,并将分析结果做成了数据库,方便检索和查看,数据库网址如下

    生信修炼手册
  • Java源码之ReentrantLock

    “ 上一篇文章分析了锁框架的AQS的源码,今天我们来分析一种具体的锁:重入锁ReentrantLock的源码,前面我们也说到ReentrantLock内部最重要...

    每天学Java
  • 定位系统那些事儿

    LBS随着移动互联网的火热而在近年成为一个火热的概念,其本义是基于位置的服务(Location Based Service),而如何定位位置成为LBS中的基本。...

    FB客服
  • 彻底读懂 springMVC 请求处理流程

    springmvc 在web 项目中基本上是必用的,基于servlet的一种控制层框架,我们在使用的过程中往往会碰到各种问题,有时候还没有思绪解决问题,主要是因...

    程序员爱酸奶

扫码关注云+社区

领取腾讯云代金券