iOS 13 Userspace Exploitation Training

4 Day u_long 32 CPE Hour Training: August 2020 * AUG 8,9,11,13

Stefan Esser, Antid0te UG

Abstract

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.

Course Topics

Introduction

  • 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

XPC 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

iMessage Exploitation

  • 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

Prerequisites

  • 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.

Hardware Requirements

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.

Software Requirements

  • 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

Training Takeaways

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.