Course Description:
This class is now updated for MacOS Ventura
With the release of MacOS Ventura Apple has once again raised the bars in terms of kernel level security. This newly created course will introduce you to state of the art kernel exploitation of these security features on the latest Apple M1 based Macs. We concentrate on MacOS instead of iOS because these devices make teaching and learning about cutting edge kernel exploitation against newest kernel mitigations a lot more accessible than it can be done with off the shelf iOS devices.
This training follows a hands on approach. This means instead of first introducing the trainee to things like the MacOS kernel heap or to list all the different kernel security features we will first get into the exploitation of multiple vulnerabilities and then learn about the required background information when exploitation requires it.
The course will require trainees to have access to a Apple M1 Mac based computer in addition to the computer they use to stream the virtual training material and use as kernel debugging host.
Topics
Introduction and Setup
- How to set up your M1/M2 Mac for Kernel Exploitation
- How to load own kernel modules into Apple M1 kernels
- How to patch your kernel
- Damn Vulnerable M1 MacOS Kernel Extension
MacOS Kernel Debugging
- Panic Dumps
- Debugging with own Patches
- Kernel Heap Debugging/Visualization
MacOS Kernel Heap
- In-Depth Explanation of How the Kernel Heap works (up to date for MacOS Ventura)
- Different techniques to control the kernel heap layout (including non-public ones)
- Discuss weaknesses in current heap implementation
MacOS Kernel Exploit Mitigations
- Discussion of MacOS Kernel Exploit Mitigations that we encounter
- Includes software and hardware based mitigations like (KTRR, PAC, PAN)
- Including newest mitigations already known in latest kernels
- Discussion of various weaknesses in these protections
MacOS Kernel Vulnerabilities and their Exploitation
- Walkthrough of MacOS kernel memory corruption vulnerabilities
- Analysis of public exploits and discussion how to improve them
- Overview over different vulnerability types commonly found in MacOS kernel and exploit strategies
Student Pre-requisites
- Basic understanding of exploitation
- C and Python Programming Knowledge
- Basic Knowledge of ARM64 assembly
Hardware Requirements
- Apple Mac M1/M2 based computer for Hands On Kernel Exploitation
- A second Apple Mac (Intel or M1/M2) Computer for Streaming the Course and as Host for Kernel Panic Dumps
Software Requirements
- IDA Pro 7.x license (ARM64 support required)
- Ghidra
- Hexrays for ARM64 helpful, but not required
- MacOS, with latest XCode and iOS 14.x SDK (or newer)
- Additional Software will be made available during the training