
퍼징(Fuzzing) 학습과 근본 원인 분석과 같은 익스플로잇 개발(Exploit Development) 초기 단계를 위한 엄선된 퍼징 리소스 목록 (도서, 무료 및 유료 강좌, 동영상, 도구, 튜토리얼 및 실습용 취약 애플리케이션)
퍼징(Fuzzing)과 익스플로잇 개발(Exploit Development)의 초기 단계(예: 근본 원인 분석)를 학습하기 위한 엄선된 퍼징 리소스 목록입니다(도서, 무료 및 유료 강좌, 동영상, 도구, 튜토리얼, 실습용 취약 애플리케이션).
퍼징에 관한 책
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 - 취약점 개발 마스터 클래스
FuzzingLabs Academy (C/C++, Rust, Go 퍼징)
퍼징 기술, 도구, 모범 사례를 다루는 동영상
Fuzzing 101 (1부) - Mike Zusman.
Fuzzing 101 (2부) - Mike Zusman.
Fuzzing 101 (2009) - Mike Zusman.
Fuzzing - Coursera의 소프트웨어 보안 강좌 - 메릴랜드 대학교 제공.
Windows 커널 퍼징 - OffensiveCon 2020
다양한 퍼징 발표 및 프레젠테이션 YouTube 재생 목록 - 이 동영상에는 좋은 내용이 많습니다.
브라우저 버그 헌팅 - 최후의 생존자 회고록 - Atte Kettunen
DerbyCon 2016: 퍼징 기초...또는 소프트웨어를 깨는 방법
Fuzz Theory - Brandon Falk
퍼징의 방법론, 기술, 모범 사례를 설명하는 튜토리얼과 블로그
ARMored CoreSight: 효율적인 바이너리 전용 퍼징을 향하여
가상 채널을 사용한 Microsoft RDP 클라이언트 퍼징: 개요 및 방법론
Windows의 이미지 파싱 퍼징, 2부: 초기화되지 않은 메모리
Windows의 이미지 파싱 퍼징, 3부: RAW 및 HEIF
효과적인 파일 형식 퍼징 - Mateusz “j00ru” Jurczyk @ Black Hat Europe 2016, 런던
Windows 커널 글꼴 퍼징 1년, 1부 - 결과 - Google Project Zero의 놀라운 글. 퍼징 수행과 퍼저 제작에 필요한 것을 설명합니다.
Windows 커널 글꼴 퍼징 1년, 2부 - 기술 - Google Project Zero의 놀라운 글. 퍼징 수행과 퍼저 제작에 필요한 것을 설명합니다.
fuzzing project의 흥미로운 버그와 리소스 - fuzzing-project.org 제공.
퍼징 워크플로: 시작부터 끝까지의 퍼징 작업 - @BrandonPrry.
AFL과 libFuzzer로 C++ 코드를 퍼징하는 쉬운 입문서 - Jeff Trull.
퍼징 15분 입문 - MWR Security 제공.
참고: fuzzing.info의 사람들이 훌륭한 링크를 잘 수집해 두었습니다. 저는 그들의 작업을 중복하지 않겠습니다. 그들이 놓친 2015년과 2016년의 논문을 추가하겠습니다. 퍼징 논문 - fuzzing.info
퍼징 블로그와 도서 - fuzzing.info
퍼징 중 크래시의 근본 원인 분석 - Corelan Team.
정수 오버플로의 근본 원인 분석 - Corelan Team.
사용자 정의 Peach Fuzzer 게시자 만들기 - Open Security Research
대규모 오픈 소스 프로젝트를 퍼징하기 전에 고려할 7가지 - Emily Ratliff.
퍼징에서 0-day까지 - Harold Rodriguez(@superkojiman).
크래시에서 익스플로잇까지 - Corelan Team.
Peach를 사용한 퍼징 1부 - corelan 팀의 Jason Kratzer
Peach를 사용한 퍼징 2부 - corelan 팀의 Jason Kratzer.
Peach pit 파일/퍼저 자동 생성 - Frédéric Guihéry, Georges Bossert.
FoxitReader 9.7 ConvertToPDF 함수용 퍼징 하네스 만들기
50일 만에 50개 CVE: Adobe Reader 퍼징
퍼징 워크플로: 시작부터 끝까지의 퍼징 작업 - @BrandonPrry.
AFL 영구 모드를 사용한 capstone 퍼징 - @toasted_flakes
실제 사례로 보는 American Fuzzy Lop 고급 사용법
AFL-Fuzz를 사용한 퍼징, 실전 예제 ( AFL vs Binutils )
American Fuzzy Lop을 사용한 파일시스템 퍼징
American Fuzzy Lop으로 서버 퍼징하는 방법 - Jonathan Foote
libFuzzer 워크숍: "C/C++ 프로젝트의 현대적 퍼징"
VLC의 Double-Free RCE. honggfuzz 사용법
Spike로 퍼징하기 - samclass.info
FOE로 퍼징하기 - Samclass.info
Z3 - 가이드 - Z3 시작하기: 가이드
피드백 퍼저 만들기 - @fady_othman
애플리케이션 퍼징에 도움이 되는 도구
클라우드 환경에서 퍼징을 돕는 퍼저.
Cloudfuzzer - 클라우드 환경에서 자동화된 퍼즈 테스트를 쉽게 실행할 수 있는 클라우드 퍼징 프레임워크.
ClusterFuzzer - 확장 가능한 오픈 소스 퍼징 인프라. Google이 Chrome 브라우저 퍼징에 사용합니다.
Fuzzit - 서비스형 지속적 퍼징(Continuous fuzzing as a service) 플랫폼. 오픈 소스 프로젝트에는 무료이며, 다양한 오픈 소스 프로젝트(systemd, radare2)와 클로즈드 소스 프로젝트에서 사용합니다. oss 프로그램에 참여하려면 [email protected]로 연락하세요.
PDF, MP3, SWF 등 파일 형식을 퍼징하는 데 도움이 되는 퍼저.
PE 바이너리 정적 계측과 WinAFL을 결합한 pe-afl
MiniFuzz - Wayback Machine 링크 - Microsoft의 기본 파일 형식 퍼징 도구. (더 이상 Microsoft 웹사이트에서 제공되지 않습니다).
CERT의 BFF - 파일 형식용 기본 퍼징 프레임워크(Basic Fuzzing Framework).
AFL Fuzzer (Linux 전용) - Michal Zalewski(일명 lcamtuf)의 American Fuzzy Lop Fuzzer
Win AFL - Windows 바이너리 퍼징용 AFL 포크
Shellphish Fuzzer - AFL용 Python 인터페이스로 테스트케이스 주입 및 기타 기능을 쉽게 수행할 수 있습니다.
TriforceAFL - 소스 코드를 사용할 수 없는 애플리케이션에 대한 퍼징을 지원하는 AFL 수정 버전.
AFLGo - AFL을 사용한 지시형 그레이박스 퍼징(Directed Greybox Fuzzing)으로, 프로그램의 특정 위치를 퍼징합니다.
Peach Fuzzer - 사용자 정의 dumb 및 smart 퍼저를 만드는 데 도움이 되는 프레임워크.
MozPeach - Mozilla Security의 peach 2.7 포크.
Failure Observation Engine (FOE) - Windows 애플리케이션용 변이 기반 파일 퍼즈 테스트 도구.
rmadair - PyDBG를 사용해 관심 신호를 모니터링하는 변이 기반 파일 퍼저.
honggfuzz - 흥미로운 분석 옵션을 갖춘 범용의 사용하기 쉬운 퍼저. 코드 커버리지 기반 피드백 주도 퍼징을 지원하며 GNU/Linux, FreeBSD, Mac OSX, Android를 지원합니다.
zzuf - 투명한 애플리케이션 입력 퍼저. 파일 작업을 가로채 프로그램 입력의 임의 비트를 변경하는 방식으로 동작합니다.
radamsa - 범용 퍼저이자 테스트케이스 생성기.
binspector - 바이너리 형식 분석 및 퍼징 도구
grammarinator - ANTLR v4 문법 기반 파일 형식 퍼징 도구 (ANTLR 프로젝트에서 많은 문법을 이미 사용할 수 있습니다).
Sloth - Sloth 🦥는 libFuzzer와 QEMU 사용자 모드 에뮬레이션을 활용하여 Android 네이티브 라이브러리를 퍼징하는 커버리지 기반 퍼징 프레임워크입니다.
ManuFuzzer - libFuzzer와 LLVM 기반의 macOS용 바이너리 코드 커버리지 퍼저.
HTTP, SSH, SMTP 등 네트워크 기반 프로토콜을 사용하는 애플리케이션을 퍼징하는 데 도움이 되는 퍼저.
Peach Fuzzer - 사용자 정의 dumb 및 smart 퍼저를 만드는 데 도움이 되는 프레임워크.
Sulley - 여러 확장 가능한 구성 요소로 구성된 퍼저 개발 및 퍼즈 테스트 프레임워크(Pedram Amini).
boofuzz - Sulley 프레임워크의 포크이자 후속작.
Spike - Sulley와 유사한 퍼저 개발 프레임워크이자 Sulley의 전신.
Metasploit Framework - Auxiliary 모듈을 통해 일부 퍼징 기능을 포함하는 프레임워크.
Nightmare - 웹 관리 기능을 갖춘 분산 퍼즈 테스트 스위트로, 네트워크 프로토콜을 사용한 퍼징을 지원합니다.
rage_fuzzer - 프로토콜을 인식하지 않는 dumb 패킷 퍼저/리플레이어.
Fuzzotron - TCP, UDP 및 멀티스레딩을 지원하는 간단한 네트워크 퍼저.
Mutiny - Mutiny Fuzzing Framework는 변이 퍼저를 통해 PCAP을 재생하는 방식으로 동작하는 네트워크 퍼저입니다.
Fuzzing For Worms - 네트워크 서버용 퍼징 프레임워크.
AFL (네트워킹 패치 포함) - 네트워크 퍼징이 가능한 비공식 American Fuzzy Lop.
AFLNet - 네트워크 프로토콜용 그레이박스 퍼저(AFL의 확장).
Pulsar - 프로토콜 학습, 시뮬레이션 및 상태 저장 퍼저(Stateful Fuzzer).
BFuzz - 입력 기반 브라우저 퍼징 프레임워크. Fuzzinator - Fuzzinator 무작위 테스트 프레임워크 Grizzly - 크로스 플랫폼 브라우저 퍼징 프레임워크
커널 퍼저, 범용 퍼저 등 기타 주목할 만한 퍼저.
Choronzon - 진화적 지식 기반 퍼저
QuickFuzz - Haskell로 작성된 도구로, 널리 알려진 기성 퍼저를 활용하여 타사 소프트웨어에서 일반적인 파일 형식의 예기치 않은 입력을 테스트하도록 설계되었습니다.
gramfuzz - 텍스트 및 바이너리 데이터 형식을 모델링하기 위해 복잡한 문법을 정의할 수 있는 문법 기반 퍼저KernelFuzzer - 크로스 플랫폼 커널 퍼저 프레임워크.
honggfuzz - 흥미로운 분석 옵션을 갖춘 범용의 사용하기 쉬운 퍼저.
Hodor Fuzzer - 또 다른 범용 퍼저.
libFuzzer - C/C++로 작성된 타깃을 위한 프로세스 내(in-process) 커버리지 기반 진화적 퍼징 엔진.
syzkaller - 분산형, 비지도형, 커버리지 기반 Linux syscall 퍼저.
ansvif - C/C++ 코드에서 취약점을 찾도록 설계된 고급 크로스 플랫폼 퍼징 프레임워크.
Tribble - 사용하기 쉬운 커버리지 기반 JVM 퍼징 프레임워크.
go-fuzz - Go 패키지 커버리지 기반 테스트.
FExM - 자동화된 대규모 퍼징 프레임워크
Jazzer - libFuzzer 기반 Java Virtual Machine용 커버리지 기반 프로세스 내 퍼저.
cifuzz - 여러 언어와 타깃에서 커버리지 기반 퍼즈 테스트를 실행하기 위한 명령줄 도구.
WebGL Fuzzer - WebGL 퍼저
fast-check - TypeScript로 작성되었으며 JavaScript 코드에 예상치 못한 입력을 실행하도록 설계된 퍼저 도구.
사용자 입력이 실행에 영향을 주는 방식
kfetch-toolkit - 운영체제 커널이 수행하는 메모리 참조의 고급 로깅을 수행하는 도구
moflow - 취약점 발견 및 분류를 위한 도구를 포함하는 소프트웨어 보안 프레임워크.
Z3 - Microsoft Research의 정리 증명기.
SMT-LIB - Satisfiability Modulo Theories (SMT) 분야의 연구 및 개발을 촉진하기 위한 국제적 이니셔티브.
KLEE를 사용한 기호 실행: 설치 및 소개부터 오픈소스 소프트웨어 버그 찾기까지 - KLEE를 소개하는 4개의 교육용 비디오 모음으로, KLEE 시작 방법부터 실제 코드에서 메모리 손상 버그를 찾는 데모까지 다룹니다.
AxMan과 같은 전설적인 도구 중 일부는 포함하지 않았습니다. 자세한 내용은 다음 링크를 참조하세요. https://www.ee.oulu.fi/research/ouspg/Fuzzers
익스플로잇 개발자와 리버스 엔지니어를 위한 현업 도구
Windbg - 익스플로잇 작성자가 선호하는 디버거.
Immunity Debugger - Immunity Sec의 Immunity Debugger.
OllyDbg - 리버스 엔지니어와 익스플로잇 작성자 모두가 선택하는 디버거.
Mona.py ( windbg 및 Immunity dbg용 플러그인 ) - 익스플로잇 개발자의 삶을 편하게 해주는 훌륭한 도구.
x64dbg - Windows용 오픈소스 x64/x32 디버거.
Evan's Debugger (EDB) - gdb용 프론트엔드.
GDB - Gnu Debugger - 리눅스에서 가장 선호되는 디버거.
PEDA - GDB용 Python 익스플로잇 개발 지원 도구.
Radare2 - 리버스 엔지니어링 및 바이너리 분석을 위한 프레임워크.
디스어셈블러, 디스어셈블리 프레임워크 등,
IDA Pro - 최고의 디스어셈블러
binnavi - 바이너리 분석 IDE로, 디스어셈블된 코드의 제어 흐름 그래프와 호출 그래프에 주석을 추가한다.
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/
Fuzzer Test Suite - 퍼징 엔진용 테스트 모음. Heartbleed, c-ares $100K 버그 등 다양한 잘 알려진 버그를 포함합니다.
Fuzzing Corpus - 퍼징 문헌에서 여러 타깃을 퍼징하기 위한 다양한 파일 형식을 포함하는 코퍼스.
AntiFuzz: 바이너리 실행 파일의 퍼징 감사 방해
Awesome Directed Fuzzing: 훌륭한 지향 퍼징 연구 논문들을 선별한 목록.
자세한 내용은 contributing.md의 지침을 참조하세요.
이 프로젝트에 기여해 주신 다음 분들께 감사드립니다.