Patch Diffing In The Dark: Reverse Engineering Modern CVEs // John McIntosh

In-Person | March 18-21 | 4 Days

BOOK NOW

ABSTRACT

Every day, a new CVE (Common Vulnerabilities and Exposure) is published or a new blog post comes out detailing the latest and greatest vulnerability. Often, we know about a vulnerability but feel like we don't have the skills or time to understand its root cause. What if you could change that? What if you could learn a skill that would lead you step by step towards understanding modern vulnerabilities? If you feel like you are always "in the dark" about the latest CVE and want to take a step towards the light (understanding), this course is for you.

Binary patch diffing is an essential skill for reverse engineering, vulnerability research, and malware analysis. The process helps a researcher identify the security-relevant code changes of a patched binary and helps highlight the underlying security issues. The process is not magic, and with a little guidance, a new researcher can learn to identify and understand modern vulnerabilities.

This fast-paced training will teach you how to reverse engineer the latest CVEs. We will start with a simple CVE description, progress towards identifying a vulnerability, and eventually gain a complete understanding of the underlying vulnerability and identify its root cause. You will analyze real-world CVEs, dive into the patch diffing process, and learn a step-by-step approach to modern patch diffing using open-source tools. The short topical lessons and hands-on exercises will have you patch diffing recent CVEs and their corresponding binaries across on the Windows platform. You will learn about best practices, how to avoid patch diffing pitfalls, and get useful scripts to enhance your analysis workflow. After you discover the vulnerability via patch diffing, you will then learn how to use both static and dynamic techniques to approach exploit development to exercise the vulnerability.

The best part about the training is that there is no secret ingredient. Using free tools (Ghidra SRE framework, BinDiff, and more) and leveraging readily available CVE information, you will learn how to discover and analyze complex vulnerabilities. The course, via hands-on exercises and lectures that cover real-world CVEs challenges, provides students with practical reverse engineering exercises to help them learn and practice the concepts and techniques. Participants will discover that you can leverage CVEs as a guide for reverse engineering and vulnerability research.

Take the first step into the light. Sign up for this course. Learn the skill of patch diffing to go from knowing about a vulnerability to actually understanding it.

Patch Diffing In The Dark: Reverse Engineering Modern CVEs // John McIntosh

In-Person | March 18-21 | 4 Days

BOOK NOW

INTENDED AUDIENCE

  • Cybersecurity professionals seeking to advance their skills in reverse engineering complex vulnerabilities to learn how to mitigate risk and evaluate recent CVEs.
  • Vulnerability Researchers hoping to learn a practical technique for vulnerability discovery. This course will challenge the researcher to go one step past learning (what others understand) and arrive in a place of actual research (discovering
    something new).
  • Reverse engineers that want to learn how operating system securities are compromised by vulnerable application, services, and low-level interactions of modern operating systems.

KEY LEARNING OBJECTIVES

  • CVE Analysis: Learn how to analyze Common Vulnerabilities and Exposures (CVEs) to understand the impact and exploitability of vulnerabilities.
  • Patch Diffing: Learn the fundamentals of patch diffing, including what it is and how it can be used in vulnerability research.
  • Binary Analysis: Gain skills in analyzing binary files in order to understand their structure and behavior.
  • Identifying Vulnerabilities: Develop the ability to identify potential vulnerabilities in software through comparative analysis.
  • Reverse Engineering Techniques: Acquire new techniques for reverse engineering binaries to discover how they work by leveraging static and dynamic analysis.
  • Exploit Development: Understand the principles of developing exploits based on the vulnerabilities found through patch diffing.
  • SRE Tool Utilization: Become proficient in using various open-source tools and software that aid in the process of patch diffing and vulnerability discovery.

PRACTICAL EXERCISES

Patch Diffing and Root Cause Analysis of Real-world CVEs

  • Use Ghidra's Patch Diffing to compare two versions of a Windows binary and identify changes made to address vulnerabilities.
  • Perform root cause analysis and understand how vulnerabilities are exploited.

Combined Static and Dynamic Analysis

  • Utilize static analysis to identify security vulnerabilities and locate problematic areas of code.
  • Employ dynamic analysis with debuggers and third-party tools to deeply investigate CVEs and verify root causes.

Building Exploit Proofs of Concept (POCs)

  • Develop exploit POCs to demonstrate identified vulnerabilities.
  • Leverage publicly available resources to accelerate POC development.
  • Use AI tools to assist in writing C sample code

COURSE DETAILS

Part 1 - Vulnerability Discovery - Static

Learn the tools of the trade. Understand how to use modern SRE tooling to dig into CVEs and discover security vulnerabilities. Leverage patch diffing and reverse engineering to pinpoint areas of insecure code.

  • Introduction
    • Binary Diffing Use Cases
    • Seeking Binary Truth
    • Overview of the CVE vulnerabilities and their impact
    • Introduce the tools and data sets (Ghidra, WinDbg, Frida, CVEs)
  • Reverse Engineering Windows Binaries
    • Ghidra Windows Primer
    • Reverse Engineering Windows Binaries
    • Leverage Custom Data Types
  • Patch Diffing
    • The Diffing Tools - Version Tracking, Bindiff, Ghidriff
    • Finding the binaries
    • Patch Diffing Workflow
    • Interpreting Diff Results
    • Patching Holes in Ghidra Version Tracking
    • Root Cause Analysis
  • Vulnerability Analysis - Static
    • Discovering the vulnerable code path
    • Identifying the vulnerability
    • Ghidra scripting Version Tracking analysis

Part 2 - Vulnerability Analysis - Dynamic

Learn how to go from a simple CVE description to finding the underlying root cause of the vulnerability. This day will provide the background on how to research CVEs, find the binaries of interest, and reverse engineer the vulnerabilities using both static and dynamic analysis.

  • Setting up the Dynamic Environment
    • Build test environments
    • Install necessary analysis/debugging tools (Sysinternals, Windbg)
  • Vulnerability Classes
    • Understand modern vulnerability classes (UAF, info leak, heap overflow, etc.)
    • Learn to recognize vulnerability classes in real world software
  • Vulnerability Analysis - Dynamic
    • Learning how to switch from static to dynamic analysis
    • Efficient use of the platform Windows debugger
    • Understand how to control program state to reach vulnerable code

Part 3 - Exploit Development - Attacking Windows Services

Reverse engineer several CVEs in Windows services. Learn how to create POC exploits that will trigger the vulnerable path for each CVE. Leverage Dynamic Analysis to understand how to direct the control flow to the vulnerable path.

  • Reverse engineer the CVE
  • Research the vulnerable service
  • Build the test dynamic environment
  • Learn Visual Studio basics to create basic POCs
  • Patch Diff in the Light
    • Leverage public code and other POCs to get started
    • Take advantage of AI to create sample C code
  • Create POCs for several vulnerability classes

Part 4 - Putting it All Together

Last, we will conclude with a final project. The final project is designed to cement the concepts learned throughout the course and prepares a researcher for learning outside of class. It will consist of several patch diffing challenges allowing you to flex the skills developed during the course.

  • Final Project
    • Practical application of skills learned in the course
    • Challenge will be validated with live course CTF server
  • Windows: Zero to Hero
    • Identify vulnerable application
    • Research methods to reach vulnerable code paths
    • Static and Dynamic Analysis
    • Root Cause the vulnerability
    • Develop exploit trigger POC
  • Grab Bag CVEs (time permitting)
    • This exercise will provide an instructor led walk through of as many live patch diffs of preselected CVEs and/or student suggested CVEs
    • Experience will be unique for each class.

Knowledge Prequisites

Basic Knowledge of Vulnerabilities or CVEs: Understand how the Common Vulnerabilities and Exposures (CVE) system identifies unique vulnerabilities and understand the concept of vulnerability classes.

  • Understanding of Security Principles: A foundational grasp of cybersecurity concepts and practices.
  • Assembly Language Basics: An introductory understanding of assembly language or familiarity with programming in C.
    No prior experience with Ghidra is required.

System Requirements

Hardware

Intel 64-bit i7+ (or equivalent) Laptop with 16GB+ RAM

Software

  • VMware Workstation (Free version will suffice)
Laptops with Apple Silicon are NOT supported in this class. Please ensure that your laptop has an Intel or equivalent x86-64 processor.
Can't attend this training? You can still catch John's 90 minute workshop at the BOOTSTRAP25 Conference on March 22!
Workshop: Offensive Security Tool Development with Ghidra // John McIntosh
Automate reverse engineering with Ghidra’s CLI tools in this hands-on workshop. Set up a productive environment using the Ghidra Python VSCode Devcontainer Skeleton, automate tasks, script analyses, and integrate Ghidra’s powerful decompilation and disassembly features into your CLI workflow

YOUR INSTRUCTOR: John McIntosh

John McIntosh @clearbluejar, is a security researcher at Clearseclabs. His area of expertise lies within reverse engineering and offensive security, where he demonstrates proficiency in binary analysis, patch diffing, and vulnerability discovery. Notably, John has developed multiple open-source security tools for vulnerability research, all of which are accessible on his GitHub page. Additionally, his website, https://clearbluejar.github.io/, features detailed write-ups on reversing recent CVEs and building RE tooling with Ghidra. Boasting over a decade of experience in offensive security, John is a distinguished presenter and educator at prominent security conferences internationally. He maintains a fervent commitment to sharing his latest research, acquiring fresh perspectives on binary analysis, and engaging in collaborative efforts with fellow security enthusiasts.

Cancellation Policy

BOOTSTRAP25: 60+ days before the event 75% of fees refunded; 45-60 days before event 50% refunded, less than 45 days 0% refunded. Course changes are allowed up to 14 days before event start (some restrictions will apply). Attendee changes can be accommodated up to 14 days prior to the event.

Note: In the event of a class cancellation, Ringzer0 will endeavor to offer transfer to another training at no additional charge.
Great! Next, complete checkout for full access to Ringzer0
Welcome back! You've successfully signed in
You've successfully subscribed to Ringzer0
Success! Your account is fully activated, you now have access to all content
Success! Your billing info has been updated
Your billing was not updated