This course covers the exploitation of stack corruption vulnerabilities in the Windows environment. Stack overflows are programming flaws that often times allow an attacker to execute arbitrary code in the context of a vulnerable program. There are many nuances involved with exploiting these vulnerabilities in Windows. Window's exploit mitigations such as DEP, ASLR, SafeSEH, and SEHOP, makes leveraging these programming bugs more difficult, but not impossible. The course highlights the features and weaknesses of the many exploit mitigation techniques deployed in Windows operating systems. Also covered are labs that describe the process of finding bugs in Windows applications with mutation based fuzzing, and then developing exploits that target those bugs.
Topics covered in the labs for this class include:
- Exploiting a vanilla Windows stack overflow with no mitigations turned on.
- Using WinDbg to analyze our crashes.
- Removing bytes from your payload (such as nulls) which would prevent exploitation.
- Finding functions to call by walking the Thread Execution Block to find kernel32.dll’s location in memory so we can call functions like LoadLibrary() and GetProcAddress().
- Hashing strings to use for comparison when searching for functions, in order to minimize the size of the payload.
- Overwriting Structured Exception Handlers (SEH) as a means to bypass stack cookies (/GS compile option) and bypassing the SafeSEH mitigation.
- Overwriting virtual function table function pointers in C++ code as another way around stack cookies.
- Using Return Oriented Programming (ROP) to defeat Data Execution Prevention (DEP) aka non-executable (NX) stack.
- Using libraries which opt out of Address Space Layout Randomization (ASLR) and SafeSEH to bypass these mitigations.
- Using Python to mutationally fuzz the custom, never-before-analyzed, Corey’s Crappy Document Format and Crappy Document Reader in order to find and exploit the numerous bugs within.
Learning Objectives
- Gain a deep understanding of how vulnerabilities are discovered and exploited in Windows.
- Obtain hands-on experience with finding and analyzing bugs in Windows applications.
- Understand current exploit remediation technologies and their weaknesses.
Framework Connections
The materials within this course focus on the NICE Framework Task, Knowledge, and Skill statements identified within the indicated NICE Framework component(s):
Specialty Areas
- Exploitation Analysis
Feedback
If you would like to provide feedback on this course, please e-mail the NICCS team at NICCS@mail.cisa.dhs.gov. Please keep in mind that NICCS does not own this course or accept payment for course entry. If you have questions related to the details of this course, such as cost, prerequisites, how to register, etc., please contact the course training provider directly. You can find course training provider contact information by following the link that says “Visit course page for more information...” on this page.