2PAC 2Furious: Envisioning an iOS compromise in 2019
Marco Grassi - @marcograss Liang Chen - @chenliang0817
2PAC 2Furious: Envisioning an iOS compromise in 2019 Marco Grassi - - - PowerPoint PPT Presentation
2PAC 2Furious: Envisioning an iOS compromise in 2019 Marco Grassi - @marcograss Liang Chen - @chenliang0817 About Us Members of Tencent KEEN Security Lab (formerly known as KeenTeam) Marco (@marcograss): My main focus is
Marco Grassi - @marcograss Liang Chen - @chenliang0817
https://keenlab.tencent.com/en/
can be used as additional information to authenticate the pointer(PAC)
PAC part Address part 64bit pointer 47
Value(address) Context PAC
Key + Algorithm in CPU
key) for data hash purpose
Instruction set Examples Comment PAC* PACIAZ, PACDB, etc… Generate PAC using specific key + context AUT* AUTIAZ, AUTDB, etc… Authenticate PAC using specific key + context Combined RETAA, BRAA, LDRAA… Authenticate PAC first, and do the
(53rd and 54th bit for EL0 address)
Raw pointer
PAC* instruction
PACed pointer PACed pointer
AUT* instruction
Crash/Exit Continue exec
Pass Fail
pointer first
execution
by default
responsible for key status control
compute kernel pointer PAC?
between return address and local variable data
defeating the stack protection
B key) with SP as context
A key plus specific context (entry location + a static value)
key plus their address(ASLR) as context
PAC
protected
cache, there is chance to reach A key call
register change
frequently
the execution flow
those critical registers, and ensure the values are not modified before restore
system if validation failed
prerequisite
python/blob/master/qarma.py
execution
pointer is stored and can be read out
context
to the pointer
function pointer
should also be hard, but thanks to Apple’s obfuscated kernel extension, quite some non-PAC indirect branching instruction
execution
code execution
cannot be achieved by pure R/W
Region) is introduced
Post jailbreak steps(in the past) Can be achieved by data-only attack Disable Sandbox Yes Disable code signing(Critical) Yes Rootfs rw remount(since iOS 11.3) Practically no(In theory yes) Install system app(e.g Cydia) Yes but needs rootfs rw remount as prerequisite
which should have been protected also
management
segment
system register is set to 0x44554455646667
__PPLTEXT:__text code
APRR)
get code execution first, and also no good gadget to set this register, because of PAC
is initialized
level
security scrutiny.
find them in other talks, most notably:
baseband)
Modified Base station software stack to trigger the exploit OpenBSC OpenBTS srsLTE … Software defined Radio, or equivalent hardware USRP BladeRF CMU200 (Testing hardware) Over the air exploit RCE inside the phone baseband
https://github.com/marcograss/partialzip
time/bandwidth
“Firmware/ICE18-1.03.08.Release.bbfw”
4gb)
was ARM)
template is a good choice), load into IDA Pro
handles it better
“Breaking Band” by Comsecuris, it’s basically a continuous wash and rinse, until you have a usable IDB
Shannon
free variants, and Rtos APIs
functions of the threads
“Important” threads
memory for the threads that handle the juicy radio stuff where you want to find the RCEs.
mobility management, EMM etc are there.
to go after..
Threads
basebands/rtos they constantly wait for some messages, dequeue them and then handle them (including the radio messages)
tasks, not all are relevant for
they have some “secure” version of memcpy, checking bounds on destinations and source (if properly specified)
Message handling
Messages between tasks and over the air are usually described programmatically in arrays with id and handlers
The task routine will find the correct handler and invoke it
top button
Target 2: CommCenter Target 1: Kernel Baseband where you have code exec PCI-E UserClient etc. You have several places where you can trigger a second bug on the Application Processor from the baseband Kernel CommCenter Others (Keep in mind that at this point you will still have to face PAC, since we will go on the Application Processor) Application Processor
with the kernel
CommCenterRootHelper
right primitives” - qwerty
requires a jailbreak on the latest version…
Intel to push some new Android models with the new XMM
RCE higher, and this could be in theory implemented right now
users? They cannot just remove the unauthenticated networks since they are still widespread worldwide. But it will reduce the attack surface.