
CVE-2018-4330 POC para iOS
Relacionado con brokentooth (enlace abajo).
A diferencia de brokentooth, toothfairy no requiere presionar botones en el menú de bluetooth.
Ambos CVE fueron revelados por @SparkZheng pero sin PoC, así que decidí hacer un PoC para fines de aprendizaje.
El código no es perfecto pero cumple su función.
Probado en iPhone 6S 11.3.1
Debería funcionar hasta 11.4
Te permite establecer el PC (versión de ARM para el registro IP) a un valor de tu elección en bluetoothd y algunos otros servicios.
Usé el código de @raniXCH bluetoothdPoC para manejar toda la preparación del mensaje Mach y su envío al servicio BT, y lo adapté para encajar en este PoC.
Usé jtool para encontrar el ordinal y otras cosas.
Tuve que hacer un poco de RE 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.
https://github.com/omerporze/brokentooth - mi PoC para CVE-2018-4327.