
POC per CVE-2018-4327
POC per CVE-2018-4327 (almeno credo, dato che sia CVE-2018-4327 che CVE-2018-4330 sono stati discussi da @SparkZheng, ma non è chiaro da parte sua quale corrisponda a quale bug; visto che ha descritto questo per primo, sto facendo un'ipotesi).
Testato su iPhone 6S 11.3.1
Dovrebbe funzionare fino all'11.4
Ti permette di impostare il PC (la versione ARM del registro IP) a un valore a tua scelta su SpringBoard e su alcuni servizi. Devi eseguire il codice e poi andare nelle impostazioni BT e connetterti a un dispositivo. Se non funziona, spegni e riaccendi il BT.
È piuttosto fastidioso da sfruttare, ma mi è piaciuto, quindi ho voluto creare un POC e imparare lungo il percorso.
Ho usato il codice bluetoothdPoC di @raniXCH per gestire tutta la preparazione del messaggio Mach e l'invio al servizio BT, e l'ho adattato per inserirlo in questo POC.
Ho usato jtool per trovare l'ordinale e altre cose.
Ho dovuto fare un po' di reverse engineering per trovare le dimensioni corrette dei messaggi.
crediti:
@SparkZheng - per la sua fantastica conferenza al DEFCON 26.
@raniXCH - per l'eccellente presentazione all'HITB e per il bluetoothdPoC.
Jonathan Levin - per il grande libro e per jtool.
riferimenti:
http://www.newosxbook.com/tools/jtool.html - jtool, che ho usato per trovare l'ordinale e altre cose.
https://www.weibo.com/ttarticle/p/show?id=2309404271293301154324 - materiale di @SparkZheng.
https://github.com/rani-i/bluetoothdPoC - codice POC di @raniXCH.
https://gsec.hitb.org/materials/sg2018/D2%20-%20The%20Road%20to%20iOS%20Sandbox%20Escape%20-%20Rani%20Idan.pdf - materiale di @raniXCH, parte 1.
https://blog.zimperium.com/cve-2018-4087-poc-escaping-sandbox-misleading-bluetoothd/ - materiale di @raniXCH, parte 2.