Learn the internals of the Windows NT kernel architecture, including Windows 10 “Threshold 2” and “Redstone 1”, as well as Server 2016, in order to learn how rootkits, PLA implants, NSA backdoors, and other kernel-mode malware exploit the various system functionalities, mechanisms and data structures to do their dirty work. Also learn how kernel-mode code operates and how it can be subject to attack from user-mode callers to elevate their privileges. Finally, learn how CPU architecture deeply ties into OS design, and how Intel, ARM and AMD’s mistakes can lead to more pwnage.
We’ll cover the new Windows 10 kernel changes, including the introduction of Virtual Trust Levels to make pass-the-hash attacks virtually impossible, Hypervisor-based Code Integrity to prevent code execution, even with Ring 0 vulnerabilities, as well as new mitigations such as Control Flow Guard (CFG) to protect against exploitation.
Windows 10 builds upon many Windows 8.1 mechanisms such as Protected Process Light and custom Code Signing Policies, so we’ll review this as well, plus new Windows 8 kernel features (AppContainer, Secure Boot, and more) relevant to driver operation and exploitation techniques will be discussed, including an overview of over two dozen new security mitigations that have been added to the operating system.
We’ll see how these changes to the architecture have dramatically constrained exploit techniques. Windows 7 kernel changes will be discussed too, such as the new Object Manager data structures.
All while learning the theory, you will use tools such as WinDBG, SysInternals Tools and Process Hacker to analyze, poke, and prod kernel-mode Windows components, as well as write your own debugger scripts including the new NatVis/LINQ mode.
Throughout the class, we’ll focus on using various techniques and tools to inspect the Windows kernel for consistency, tracing its operation, and editing it, as well as ways in which offensive and defensive attackers can mess with the system’s state in unexpected, “clean” ways. We’ll also take a look at several examples of malicious and/or buggy drivers in a given Windows system, as well as architectural bugs over Windows’ lifetime.
Attendees will receive a physical handout of the entire course materials for future reference, plus a WinDBG Lab Cheat Sheet.
IMPORTANT: It’s helpful to understand x86/x64/ARM assembly to take this course, but knowledge of obfuscation, packing, etc., is not required.
Basic knowledge of Windows, processor architecture, and operating systems is helpful – you should have some vague idea of what an interrupt is, and what is the difference between user and kernel mode (ring levels), a bit about virtual memory/paging, etc.
You must have a Windows machine to attend, and you should have the Windows Driver Kit 10 release for Threshold 2 or later (10586 / 1511), which you can freely grab from the Windows Hardware Portal or MSDN.
A virtual machine (VirtualBox is strongly preferred – configured in EFI + Hyper-V mode for best performance) is recommended with an installed version of Windows 10. Locally, any version of Windows 7 or Windows 8, 32-bit or 64-bit is fine – you may prefer 32-bit if that is the disassembly you are most familiar with and/or want to use Hexrays. You should install the Windows Driver Kit on your host – not the VM. If you have a Linux or Mac device, then you may either install the Windows Driver Kit on the VM itself, or, better yet, use two separate virtual machines.
The instructor will use a 64-bit Windows 10 device, with Windows 8.1 and Windows 7 32-bit VMs.
IDA/Hexrays helpful, but not required.
Alex Ionescu is the Chief Architect at CrowdStrike, Inc. Alex is a world-class security architect and consultant expert in low-level system software, kernel development, security training, and reverse engineering. He is coauthor of the last two editions of the Windows Internals series, along with Mark Russinovich and David Solomon. His work has led to the fixing of many critical kernel vulnerabilities, as well as over a few dozen non-security bugs.
Previously, Alex was the lead kernel developer for ReactOS, an open source Windows clone written from scratch, for which he wrote most of the Windows NT-based subsystems. During his studies in Computer Science, Alex worked at Apple on the iOS kernel, boot loader, and drivers on the original core platform team behind the iPhone, iPad and AppleTV. Alex is also the founder of Winsider Seminars & Solutions Inc., a company that specializes in low- level system software, reverse engineering and security trainings for various institutions. In the last three years, he has also contributed to patches and development in two major commercially used operating system kernels.
Alex Ionescu