
Exploit de prueba de concepto para vulnerabilidades de la pila Bluetooth de iOS CVE-2018-4327 y CVE-2018-4330, que permite el control del registro PC de ARM en iPhone 6S mediante la conexión de un dispositivo Bluetooth malicioso.
POC para CVE-2018-4327 (al menos eso creo, ya que tanto CVE-2018-4327 como CVE-2018-4330 fueron descritos por @SparkZheng, pero no dice cuál corresponde a cada error; como él describió este primero, supongo que es este).
Probado en iPhone 6S 11.3.1
Debería funcionar hasta 11.4
Te permite establecer el PC (la versión de ARM para el registro IP) a un valor de tu elección en SpringBoard y algunos servicios.
Necesitas ejecutar el código y luego ir al menú de Bluetooth en configuración y conectar a un dispositivo. Si no funciona, apaga y enciende el Bluetooth.
Es bastante molesto de explotar pero me gustó, así que quise hacer un POC y aprender en el camino.
Usé el código bluetoothdPoC de @raniXCH para manejar toda la preparación del mensaje Mach y su envío al servicio Bluetooth, y lo adapté para este POC.
Usé jtool para encontrar el ordinal y otras cosas.
Tuve que hacer un poco de ingeniería inversa para encontrar los tamaños de mensaje correctos.
créditos:
@SparkZheng - por su increíble charla en DEFCON 26.
@raniXCH - por la excelente presentación en HITB y el bluetoothdPoC.
Jonathan Levin - por el gran libro y jtool.
referencias:
http://www.newosxbook.com/tools/jtool.html - jtool, que usé para encontrar el ordinal y otras cosas.
https://www.weibo.com/ttarticle/p/show?id=2309404271293301154324 - material de @SparkZheng.
https://github.com/rani-i/bluetoothdPoC - código POC de @raniXCH.
https://gsec.hitb.org/materials/sg2018/D2%20-%20The%20Road%20to%20iOS%20Sandbox%20Escape%20-%20Rani%20Idan.pdf - material de @raniXCH parte 1.
https://blog.zimperium.com/cve-2018-4087-poc-escaping-sandbox-misleading-bluetoothd/ - material de @raniXCH parte 2.