一系列用於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
※iOS 11相機BUG,恐讓用戶誤入惡意網站
※實現一個簡單的Burp驗證碼本地識別插件
TAG:FreeBuf |