Exploit Development ADVANCED
for Windows 7 & 10
Peter Van Eeckhoutte, Corelan
Date: 13-15 Apr 2020
Time: 8.30am-8pm (13-14 Apr 2020), 8.30am-6pm
Venue: KPMG, 16 Raffles Quay, #03-00, Hong Leong Building, Singapore 048581
Super Early Bird (Sign up by 31 Oct 2019): $4,500 SGD
Early Bird (Sign up by 31 Dec 2019): $4,800 SGD
Standard (Sign up by 23 Mar 2020): $5,100 SGD
Late: $5,400 SGD
A fast-paced, mind-bending, hands-on course where you will learn advanced exploit development techniques from an experienced exploit developer. During this course, students will get the opportunity to learn how to write exploits that bypass modern memory protections for the Win32 platform, using Windows 7 and Windows 10 as the example platform but using techniques that can be applied to other operating systems (OSes) applications. We will discuss differences between Windows 7 and Windows 10 and explore previously undocumented techniques to achieve important primitives in Windows 10. The trainer will share his "notes from the field" and various tips and tricks to become more effective at writing exploits.
This is most certainly not an entry-level course. In fact, this is one of the finest and most advanced courses you will find on Win32 exploit development.
This hardcore, practical, hands-on course will provide students with solid understanding of x86 Windows heap exploitation. We make sure the course material is kept updated with current evolutions, includes previously undocumented tricks and techniques, and details about the research we performed ourselves, so you can apply the research techniques on other applications and OS versions. Combined with the way the course is built up, this will turn this class into a truly unique learning experience.
During all of our courses, we don’t just focus on techniques and mechanics, but we also want to make sure you understand why a given technique is used, why something works and why something doesn’t work. In the advanced course, we also provide you with insights on how to do your own research related to heap exploitation in general (not just Windows 7 or Windows 10).
The new 2019 edition of the course is based on Windows 7 and Windows 10. (As the Windows 10 Heap Manager contains additional mitigations, we use Windows 7 first to teach the basics, and then use Windows 10 later on)
We believe those are just a few arguments that make this training stand out between other exploit development training offerings. Feel free to check our testimonials page if you want to see real, voluntary, unmodified and uncensored reactions by some of our students.
Finally, we offer you post-training support as well. If you have taken the course and you still have questions afterwards, we will help.
WHY TAKE THIS COURSE?
Are you familiar with the basics of exploit development? Do you know how to write exploits for saved return pointer overwrites and abuse SEH records with your eyes closed? Are you interested in understanding how heap spraying works, and why it works? Is heap exploitation still a mysterious black box for you? Are you now ready for the next step?
Have you taken the Bootcamp or other commercial courses on exploit development and want to move to the next phase?
Do you want to learn modern techniques to exploit heap related memory corruptions on Windows 7 and Windows 10?
Do you want to learn the fine art of writing browser exploits or exploit for other complex applications?
Do you want to learn the skills to investigate heap managers on modern Windows versions (Windows 7 and Windows 10) and how to look for your own exploitation primitives?
Would you like to know what (generic) questions to ask (rather than being spoon-fed exploit-specific solutions & answers)?
Would you like to know how to approach fuzzing/bug hunting in complex applications, how to recognize and determine exploitability for heap-based corruptions?
Are you involved in malware research or do incident response & interested in understanding how exploits work?
Would you like to understand better how to detect exploits and how to protect against them?
Would you like to get a basic view on common development mistakes, how to avoid them and how compiler options can help?
Are you able to write ROP chains blindfolded? (It is fundamentally important that you have practical experience with constructing/writing your own ROP chain!)
Are you willing to suffer and bleed, absorb new knowledge fast and not intimidated by debuggers and assembly instructions…
…then this course is exactly what you need!
Pentesters, auditors, network/system administrators, reverse engineers, malware analysts, developers, members of a security department, security enthusiasts, or anyone that has a solid and practical basic knowledge of exploit development for Windows already.
ASLR & DEP Refresher
Introduction to WinDBG
Windows Heap Management
Terminology & building blocks
Windows 7 Heap, Windows 10 Heap (“NT” and “Segment” heap)
Front-End-Allocator and Back-End-Allocator
Differences between Windows 7 and Windows 10
Heap manipulation primitives
Data & object spraying
Precise heap spraying
Linear & non-linear overflows / controlled write
Use of uninitialized memory
Memory leaks / Information Disclosure
Heap Manipulations and heap primitives
Modern userland memory protection mechanisms
Overview of memory protection evolutions
Finding your own bugs
Thoughts & experiences on fuzzing
During the course, students will get the opportunity to work on real vulnerabilities in real applications, use a wide range of heap exploitation techniques and most importantly learn how to do your own research to find exploitation primitives in complex applications and new versions of Windows.
The “Course Contents” on this page is subject to change without prior notice & can be updated between the moment of registration and the actual course. We will try to cover as much as we can from the “Course Contents”, based on the overall ability to absorb knowledge and time needed to complete the exercises, but Corelan cannot ever guarantee that we will be able to cover everything.
KNOWLEDGE & ATTITUDE PREREQUISITES
Truly master all basic concepts of exploit development, as listed in our “BOOTCAMP” course. If you have taken the Bootcamp course and done a lot of practice after taking the class, then you’re probably ready for this class
Familiar with ROP (i.e. understand how it works on Windows, know how to build a ROP chain, know how to use mona.py to generate a chain and how to fix the chain if it doesn’t work)
Familiar with using debuggers (we’ll use WinDBG for the most part of the course, but we’ll spend some time explaining the basics of using WinDBG. It is assumed that you have practical experience with Immunity Debugger and mona.py)
Ready to dive into a debugger and read ASM for hours and hours and hours
Ready to think out of the box and have a strong desire to learn
Fluent with managing Windows/Linux OS and using VMware Workstation/VirtualBox
Familiar with using Metasploit to generate shellcode
Basic practical knowledge of assembly
Unless specified otherwise, students are required to bring the following:
A laptop (no netbook) with VMware workstation/VirtualBox and enough processing power and RAM (we recommend 4GB of RAM) to run up to 2 virtual machines at the same time. The use of a 64-bit processor and a 64-bit OS on the laptop will make the exercises more realistic.
3 virtual machines (Windows 10 (no patches), Windows 7 SP1 (no patches), Kali Linux (fully up-to-date))
Note: You will receive the exact installation instructions after registration, about a week before class begins, so don’t start installing the VMs yet.
All required tools and applications will be provided during the training or will be downloaded from the internet during the training.
You must have full administrator access to all machines. You must be able to install and remove software, and you must be able to disable and/or remove firewall/antivirus/… when necessary.
It will be required to sign a confidentiality agreement at the start of the course. You will not be admitted to the course without signing this document. You can find a copy of the document here.