Fuzzing is a technique of identifying software vulnerabilities by automated corpus generation. It has produced immense results and attracted a lot of visibility from security researchers and professionals in the industry, today fuzzing can be utilized in various ways which can be incorporated into your secure SDLC to discover vulnerabilities in advance and fix them.
Finding vulnerabilities in software requires in-depth knowledge of different technology stacks. Modern day software’s have a huge codebase and may contain vulnerabilities. Manually verifying such vulnerabilities is a tedious task and may not be possible in all cases. This training is designed in such a way that it introduces the concept of fuzzing and vulnerability discovery in software’s covering multiple platforms such as Linux & Windows and triage analysis for those vulnerabilities.
During this training, attendees would be emulating techniques which would provide a comprehensive understanding of “Crash, Detect & Triage” of fuzzed binaries or software. In “Deep dive into fuzzing” we will be covering a detailed overview of fuzzing and how it can be beneficial to professionals in uncovering security vulnerabilities with a hands-on approach through focus on labs.
- Effective ways of fuzzing
- Understanding the different class of vulnerabilities
- Key fundamentals of fuzzing and how it works
- Creating your own grammar for fuzzing
- Implementing persistence for complex programs
- Utilizing QEMU for binary only fuzzing
- Introduction to ARM and fuzzing ARM binaries
- Getting started with fuzzing windows binaries
- Tons of exercises focusing on real world software’s
- CTC – Capture the crash on a custom application
- Understanding fuzzing fundamentals
- AFL Internals
- Setting up the environment
- Selecting fuzzing targets
- Spinning up the fuzzer effectively
- Corpus generation
- Address/Memory Sanitizers
- Hooking custom mutators
- “Not so pro tips” while fuzzing
- Parallel fuzzing
- Improving code coverage with grammar
- Plotting difference in code coverage
- Enhancing your fuzzing approach
- Symbolic execution fuzzing
- Setting up persistent mode
- Introduction to QEMU
- AFL internals for QEMU
- Targeting blackbox binaries
- Introduction to ARM
- Cross-platform architecture fuzzing
- Setting up QEMU persistent
- Introduction to network fuzzing
- WinAFL Internals
- Analyzing your target with debuggers
- Improving code coverage
- Fuzzing browser engines and SSL libraries
- Overview of different fuzzing frameworks
- Integrating slack with fuzzing stats
- Capture the crash
Who should take this course?
The training is aimed for individuals & professionals who wish to learn the fundamentals of the fuzzing.
Students will be provided
- Walkthrough of lab exercises.
- A dedicated server with custom OS (Windows & Linux) which can be utilized for fuzzing.
- A private dedicated channel where trainers will be available to answer your queries after the training.
- Local lab setup (OVA of Ubuntu and Windows) loaded with all the course exercises and material including solutions
- Linux & Windows fundamentals
- Understanding of C/C++ and common datatypes
What students should bring
- Attendees are required to have a system with root/admin privilege with minimum 8GB RAM and 100 GB disk space with VirtualBox or VMware installed.
Dhiraj Mishra is an active speaker who has discovered multiple zero-days in modern web browsers and an opensource contributor. He has presented in conferences such as Hacktivity, PHDays, HITB, BSides, ekoparty. In his free time, he blogs at www.inputzero.io and tweets on @RandomDhiraj
Zubin Devnani is a red teamer by trade, who has identified multiple vulnerabilities in commonly used software. He has delivered multiple workshops, including PHDays and Hacktivity. Utilizes his fuzzing skills in his day to day trade to identify new ways of breaking into enterprises! Blogging at devtty0.io and tweets on @p1ngfl0yd