iOS 13 Userspace Exploitation Training
4 Day u_long 32 CPE Hour Training: August 2020
The iOS 13 Userspace Exploitation Training course is a new addition to our syllabus from 2019. It is meant to complement our set of iOS related training courses and extend them into the userland field.
In this course we will discuss how to attack not only applications and daemons but also Apple's iMessage, which has become a favorite target of nation states.
In this four day training participants will take a deep dive into topics related to iOS 13 userpace level exploitation. This starts with an introduction into the specifics of the iOS platform so that trainees with or without deep knowledge of iOS are on the same track. The following days will then concentrate on real world vulnerabilities in applications, daemons, services, and Apple's iMessage.
This all new 4 day course is targeted at intermediate to advanced exploit developers that want to switch over to iOS or learn how to deal with modern iOS user space targets. For each topic we have selected a number of previously disclosed real world vulnerabilities so that students can learn from real examples and not only via mockup bugs.
The training excercises will be performed on a mixture of devices running on iOS 12.x and 13.x. Some of these devices will be provided by the instructor, but students are invited to bring their own devices on iOS 13 as long they are supported by public checkra1n or unc0ver jailbreaks.
The goal of this training is to enable trainees to find and exploit new vulnerabilities in iOS userpace programs despite newest mitigations.
- How to set up your Mac and Device for Vuln Research/Exploit Development
- iOS Userspace Memory Layout
- Dynamic Loading Frameworks, Libraries and ASLR
- iOS Sandboxing and Inter Process Communication
- Userspace Exploit Mitigations
- Userspace Attack Surface
Objective-C and SWIFT
- Exploitation strategies for Objective-C targets
- Exploitation strategies for Swift targets
iOS Userland Debugging
- Using the iOS Userland Debugger for vulnerability research
- How to deal with iOS Anti Debugging Tricks
iOS Userland Heap
- Discussion of the iOS Userland Heap implementation
- Discussion of other heap implementations in our targets
- Introduction of new iOS userland heap visualization toolset
MIG and other forms of IPC
- Introduction to MIG/IPC
- Understanding the MIG/IPC architecture and its attach surface
- Mach messages
- Fuzzing and Exploitation of MIG services
- Introduction to XPC services
- Understanding the XPC architecture and attack surface
- Understanding target specific mitigations
- XPC serialization / deserialization
- Fuzzing XPC services
- Exploiting XPC services
- Introduction to iMessage and its architecture
- Understanding the attack surface
- Understanding target specific mitigations
- Introspection and instrumentation
- Fuzzing iMessage
- Exploiting iMessage
What is new in iOS 13
- New mitigations in iOS 13 will be covered
- The course will start with an introduction to the specialities of the iOS platform and is therefore suited for trainees with and without iOS userspace exploitation basics
- This course is an advanced exploitation course it is therefore assumed that all students are familiar with ARM64 exploitation or reverse engineering.
- An Apple Mac Notebook/Desktop is required in order to run MacOS and XCode.
- A device running iOS 13 up to iPhone X, that can be used for testing.
- For the best experience please use a jailbroken device. You may use the checkra1n jailbreak or the unc0ver jailbreak.
- [optional] In addition to the iOS test device, you may also bring an iOS device newer than the iPhone X for some PAC hands-on. However this is entirely optional.
- IDA Pro 6.x/7.x or IDA Home license (ARM64 support required)
- alternatively Ghidra/Hopper/Binary Ninja can be used but script support varies by tool
- Hexrays for ARM64 helpful, but not required
- BinDiff for IDA helpful, but not required
- Mac OS X 10.14/15, with latest XCode and iOS 13.x SDK (or newer)
- Additional Software will be made available during the training
The whole training material (multiple hundred slides) will be handed to the students in digital form.
Students will get a license for the Antid0te software and scripts that are used during the training that allows usage but not redistribution of said software. This software is currently going through a complete cleanup and modernization to ensure compatibility with all new devices.
Stefan Esser, Antid0te UG
Stefan Esser is best known in the security community as the PHP security guy. Since he became a PHP core developer in 2002 he devoted a lot of time to PHP and PHP application vulnerability research. However in his early days he released lots of advisories about vulnerabilities in software like CVS, Samba, OpenBSD or Internet Explorer.
In 2003 he was the first to boot Linux directly from the hard disk of an unmodified XBOX through a buffer overflow in the XBOX font loader. In 2004 he founded the Hardened-PHP Project to develop a more secure version of PHP, known as Hardened-PHP, which evolved into the Suhosin PHP Security System in 2006. Since 2007 he works as head of research and development for the German web application company SektionEins GmbH that he co-founded.
In 2010 he did his own ASLR implementation for Apple's iOS and shifted his focus to the security of the iOS kernel and iPhones in general. Since then he has spoken about the topic of iOS security at various information security conferences around the globe. In 2012 he co-authored the book the iOS Hackers Handbook. In 2013 he founded Antid0te UG a company that focuses on iOS security research and consulting.