
PoC para CVE-2018-4327
POC para CVE-2018-4327 (al menos eso creo, ya que @SparkZheng discutió tanto CVE-2018-4327 como CVE-2018-4330, pero no queda claro por su parte cuál se relaciona con cada bug; pero como describió este primero, me lanzo a adivinar).
Probado en iPhone 6S 11.3.1
Debería funcionar hasta 11.4
Te permite establecer el PC (la versión de ARM del registro IP) a un valor de tu elección en SpringBoard y algunos servicios. Debes ejecutar el código y luego ir a los ajustes de BT y conectarte a un dispositivo. Si no funciona, apaga y enciende el BT.
Es bastante molesto de explotar, pero me gustó, así que quería hacer un POC y aprender por el camino.
Usé el código bluetoothdPoC de @raniXCH para manejar toda la preparación del mensaje Mach y su envío al servicio BT, y lo adapté para encajarlo en este POC.
Usé jtool para encontrar el ordinal y otras cosas.
Tuve que hacer un poco de RE para encontrar los tamaños correctos de los mensajes.
créditos:
@SparkZheng - por su increíble charla en DEFCON 26.
@raniXCH - por la excelente presentación en HITB y por bluetoothdPoC.
Jonathan Levin - por el gran libro y por 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.