iOS Kernel Exploitation Training (April 2015)

来源:互联网 发布:会php学java要多久 编辑:程序博客网 时间:2024/06/03 16:50
Instructor: Stefan Esser
Dates: 27th April - 1st May 2015 (5 days)
Venue: Le Méridien Parkhotel Frankfurt, Germany
Availability: 15 Seats
Language: English

Our iOS 7/8 Kernel Exploitation Trainings in 2014 have been so successfull that former trainees, tricks, techniques and vulnerabilities from the training have been directly involved in the making of the public iOS 7.1 and iOS 8.x jailbreaks. However our training material was originally developed for 32 bit iOS devices and only over time has been improved to cover 64 bit devices, too. For 2015 we therefore started to redesign the course to focus much more on the new ARM64 iOS devices and their exploitation. We have completely ripped out some 32 bit specific slide decks and replaced them with new 64 bit material.

The next training at the end of April 2015 will take place in the Le Meridien hotel in Frankfurt (Germany) between 27th April and 1st May. It is a full 5-day course and is targeted at exploit developers that want to switch over to iOS.

We will cover the latest iOS 8 kernel security features, discuss their weaknesses and you will learn how to circumvent them. Every part of the course will start with a lecture introducing you to the topic and end with hands-on exercises, where you use your newly gained knowledge to implement an attack against a real device. In our 2015 course we have also added some additional hands-on exercises for students with more advanced pre-knowledge.

The 2015 edition of the training will focus on 64 bit iOS devices, but we will also cover the introductory basics like KDP kernel debugging on older 32 bit devices and booting own kernels on A4 devices. However most of the work will be performed on 64bit iPad mini 2 16GB (retina+WiFi) devices that each trainee can take home after the course.

The goal of this training is to enable you to exploit new vulnerabilities in the iOS 8 kernel that you discover on your own.

Topics

We are currently improving the course material and are working on some things that allow us to better cover iOS 8 during the training. So the following list of topics might change slightly in the final course.

  • Introduction
    • How to handle a new Firmware
    • How to set up your Mac and Device for Vuln Research/Exploit Development
    • How to boot own Kernels (32 bit specific)
    • How to patch own Code into the Kernel
    • How to write Code for your iDevice
  • Low Level ARM / ARM64
    • Differences between ARM and ARM64
    • Exception Handling
    • Hardware Page Tables
    • Special Registers used by iOS
    • ...
  • iOS Kernel Source Code
    • Structure of the Kernel Source Code
    • Where to look for Vulnerabilities
    • Implementation of Mitigations
    • MAC Policy Hooks, Sandbox, Entitlements, Code Signing
    • ...
  • iOS Kernel Reversing
    • Structure of the Kernel Binary
    • Finding Important Structures
    • Porting Symbols
    • Closed Source Kernel Parts and How to analyze them
    • ...
  • iOS Kernel Debugging
    • Panic Dumps
    • Using the KDP Kernel Debugger (limited to 30 pin devices)
    • Extending the Kernel Debugger (KDP++)
    • Debugging with own Patches
    • Kernel Heap Debugging/Visualization (new software package)
  • iOS Kernel Heap
    • In-Depth Explanation of How the Kernel Heap works (including recent changes in iOS 7/8)
    • Different techniques to control the kernel heap layout (including non-public ones)
  • iOS Kernel Exploit Mitigations
    • Discussion of all the iOS Kernel Exploit Mitigations introduced
    • Discussion of various weaknesses in these protections
  • iOS Kernel Vulnerabilities and their Exploitation
    • Discussion of kernel info leak vulnerabilities used in public jailbreaks
    • Discussion of kernel memory corruption vulnerabilities used in public jailbreaks
    • Introduction to kernel exploitation with a 64 bit DEMO vulnerability
  • iOS Kernel Jailbreaking
    • Discussion of all the Kernel Patches applied by iOS Jailbreaks
    • Discussion of differences between 32 bit and 64 bit patches
  • Handling of New Devices
    • Discussion of necessary steps to port exploits from old to new devices
  • Persistence
    • The topic of persistence or untethering will be discussed although the kernel land is only partially involved.

Training Takeaways

  • all students will take home an iPad mini 2 - 16GB (retina+WiFi) with a retail value of now 289,- EUR (these iPads are new, unpacked and kept on the latest jailbreakable firmware available before the training. Currently this is iOS 8.1.2)
  • all students will take home an 30 pin debugging adapter
  • the whole training material (multiple hundred slides) will be handed to the students in digital and printed form
  • trainees will get a license for the SektionEins software and scripts that are used during the training that allows usage but not redistribution of said software

Training Requirements

  • Student Requirements
    • This course will not give an introduction to ARM basics. The trainee is required to understand basic ARM assembly. It is not required to have previous experience with ARM64 cpus, because their differences are discussed within the training. An ARM64 assembly introduction will be sent to the trainees before the course. Low level ARM CPU knowledge will be helpful, but is not required for this course - part of it will be explained within the course.
    • This course will not give basic introduction to exploitation or ROP. Trainees are required to know concepts like ROP or buffer overflows, integer overflows, etc...
    • Trainees will receive about 3 weeks before the training a paper that covers introductory information. This material will contain an introductory ARM64 assembly primer. Trainees are required to read and work through this document in order to ensure that all software is correctly installed and some basics are understood.
  • Hardware Requirements
    • An Apple Mac Notebook is required in order to run OS X Mavericks / Yosemite and XCode.
    • Training hands-on exercises will be performed on devices provided by SektionEins. It is not required for students to bring their own iOS devices.
    • Every student will be handed an iPad mini 2 16GB (Retina+Wifi) at the beginning of the training that they will work on and can take home after the training.
    • Students can optionally bring their own iOS device for experiments. But for best results these devices should run an iOS version which has a public jailbreak for it.
    • Students are not required to bring iOS serial cables for older devices to the training, because these will be provided by SektionEins as well.
  • Software Requirements
    • Legal IDA Pro 6.x license (ARM64 support required) / in process of porting some scripts to Hopper
    • Hexrays for ARM helpful, but not required
    • BinDiff for IDA helpful, but not required
    • Mac OS X Mavericks (or Yosemite), with latest XCode and iOS 8.1 SDK (or newer)
    • Additional Software will be made available during the training

Venue

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 总有电话骚扰怎么办 狗一直抽搐不停怎么办 右眼皮一直抽搐怎么办 打包机不停的倒带不切带怎么办 频繁被电话骚扰怎么办 一直被骚扰电话怎么办 有电话短信骚扰怎么办 收到大量验证码怎么办? 每天有陌生电话怎么办 电话不停被骚扰怎么办 水龙头的乱溅怎么办 水龙头坏了喷水怎么办 水龙头水流很散怎么办 自来水往外喷水怎么办 手机有骚扰电话怎么办 半夜到南宁机场怎么办 得了水痘坐火车怎么办 香港账户被限制怎么办 司法拍卖车扣分怎么办 速递易已超期怎么办 e栈快递换微信怎么办 e栈快递柜打不开怎么办 小孩耳朵塞东西怎么办 把隐形眼镜吃了怎么办 街道分车位不公平怎么办 服务区修车被宰怎么办 2018高速逃费怎么办 高速不停车卡怎么办 独立显卡显存不够怎么办 rx470d买不到了怎么办? 南方避险基金到期怎么办 高铁票认证失败怎么办 高铁票三个小孩怎么办 12306取消三次后怎么办 外国人护照过期了怎么办 行李丢飞机上怎么办 学生票没次数了怎么办 去美国行李超重怎么办 12306密码找回失败怎么办 12306注册身份重复怎么办 12306身份信息重复怎么办