Deep Dive into Fuzzing
Deep Dive into Fuzzing

BY Dhiraj Mishra and Zubin Devnani

Overview

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.

Key Takeaways

  • 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

Course Content

    Day 1

  • 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

    Day 2

  • 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

Student Requirements

  • Basic understanding of Linux & Windows fundamentals.
  • Understanding of basic programming concepts, familiarity with C/C++ and common data types.

Student 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.

Students will be provided

  • Walkthrough of lab exercises.
  • A dedicated server with custom OS (Windows & Linux) for one month which can be utilized for fuzzing.
  • Local lab setup (OVA of Ubuntu and Windows) loaded with all the course exercises and material including solutions.
  • A private dedicated channel where trainers will be available to answer your queries after the training.

Who should take the course?

The training is aimed at individuals & professionals who wish to learn the fundamentals of fuzzing.

Audience skill level

Beginner/Intermediate

About Instructors

Dhiraj Mishra is an active speaker who has discovered multiple zero-days in modern web browsers and an open-source contributor. He is a trainer at Blackhat, BruCON, and presented in conferences such as Ekoparty, NorthSec, Hacktivity, PHDays & HITB. 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 is a trainer at Blackhat, BruCON and OWASP and 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.

;
Logo

©2024 BSides GOA All rights reserved