ios exploitation · 2015. 2. 17. · codi binari assembly. exploits & payloads • què son?...
TRANSCRIPT
iOS Exploitation
Iñaki MirXavi Álvarez
2015CONFERÈNCIA
SOBRE SOFTWAREA L’ESCOLA PIA MATARÓ
Índex• Introducció
• De què tracta? • Per què iOS?• Objectius
• Com ho aconseguim?• Mesures de seguretat• Creant Remak3
• Descripció• Estructura• Funcionament
• Conclusions
De què tracta ?
• Anàlisi i vulneració de la seguretat dels iDevices
• Creació de software
• Modificació del sistema operatiu
Per què iOS ?
0M
200M
400M
600M
800M
Set ‘1
0Oct
‘11Mar
‘12Se
t ‘12
Gen ‘
13Jun
‘13
Oct ‘13
Jun ‘1
4
• 800+ milions de iDevicesactivats
• 130 milions el darrer any
• 98% a Fortune 500
Per què iOS ?• Innovador • Segur
• Possibilitats limitades
Objectius
• Trencar la seguretat d’iOS
• Aconseguir permisos
• Executar aplicacions de tercers
Crear un programa que permeti el JAILBREAK
Jailbreak• Tethered • Semi-Tethered
• Untethered
Jailbreak• Cydia
Com ho aconseguim?
Enginyeria Inversa
Exploits (Scripts amb Payloads)
Enginyeria Inversa
IDA
Dissasembler Debugger
Codi binari
Assembly
Exploits & Payloads
• Què son?
• Com es diferencien?
• On intervenen?
Vulnerabilitat
Exploit
Payload
dóna lloc
executa
Mesures de seguretat
Procès 1
Procès II
DFUo
RecoveryMode
si no fallasi falla
signa
Comença al iniciar l’iDevice.Cada procès verifica el següent.
Si un procès falla, permet la restauració del SO.
Secure Bootchain
• BootROM BootROM
LLB
signaVe implicita amb el hardware.
No es pot reescriure.Verifica signatura d’LLB.
Si es troba una vulnerabilitat NO ES REPARABLE. DFU
si falla
Secure Bootchain
• Low Level Bootloader BootROM
LLBsigna
Verifica la integritat del firmware.Verifica la signatura d’iBoot.
DFU
si falla
iBoot
Secure Bootchain
• iBootBootROM
LLB
signa
Inicialitza el hardware.Verifica la signatura del Kernel.
Recovery
si fallaiBoot
Kernel
Secure Bootchain
• KernelBootROM
LLBEs el nucli del sistema operatiu.
Porta implementats els drivers i les extensions per l’interacció software-
hardware (IOKit).
Recovery si falla
iBoot
Kernel
Secure Bootchain
Restringeix l’accés de les aplicacions a recursos del sistema i dades de l’usuari.
Sandboxing
Sandbox extensió Kernel
Encriptació• Apple utilitza criptografia asimètrica per signar el programari
dels seus dispositius
• RSA• AES Desencriptem el kernel, extraiem la KBAG i cridant a la funció aes_decrypt amb aquesta d’argument ens retorna les claus del firmware.
Creant Remak3
Descripció• Jailbreak Semi-Tethered
• Compatibilitat
• iPhone 4• Mac OS X
Llenguatges
• C
• Java
• AppleScript
• Bash
• PHP
Exploits
Limera1n
• Payloads: dirhelper, fstab, ramdisk
iOS 4.1
0x210x210x210x21... !reinicia i torna a escriure desde
0x0
Exploits
• Limera1n exploit
Software emprat• xpwntool - Bootchain modificat per ometre mesures de
seguretat.
• ramdisk ssh_rd - Permet la connexió de l’iPhone ambl’ordinador via SSH.
• Llibreries libimobiledevice / libusbllibreries opensn0w syringelibxpwn
•XCode
Funcionament
iOS Lliure
SSH
Reinici
Jailbreak
Boot
FuncionamentBootROM iBSS iBEC DFU escriu iBoot
exploit
iBoot(modificat) executa payload
(800 bytes)
Fals Recovery
puja payload
inicia ramdisk + protocol SSH (mitjançant connexió SSH copiem cydia + payloads)
BootROM DFU
esborra signatures
escriu zeros a les adresses base on començen les signatures del bootchain
i aplica patch al kernel
exploit
Conclusions
Jailbreak Semi-Tethered
Objectius assolits parcialment
Gràcies per la vostra atenció
Q&A