
CVE-2018-4330 POC for iOS
Lié à brokentooth (lien ci-dessous).
Contrairement à brokentooth, toothfairy ne nécessite pas d'appuyer sur des boutons du menu Bluetooth.
Les deux CVE ont été révélées par @SparkZheng mais sans POC, j'ai donc décidé d'en créer une pour l'expérience d'apprentissage.
Le code n'est pas parfait mais il fait le travail.
Testé sur iPhone 6S 11.3.1
Devrait fonctionner jusqu'à 11.4
Vous permet de définir le PC (version ARM du registre IP) sur une valeur de votre choix sur bluetoothd et quelques autres services.
Utilisé le code bluetoothdPoC de @raniXCH pour gérer toute la préparation du message Mach et son envoi au service BT, et adapté pour correspondre à ce POC.
Utilisé jtool pour trouver l'ordinal et d'autres choses.
J'ai dû faire un peu de rétro-ingénierie pour trouver les bonnes tailles de message.
crédits :
@SparkZheng - pour son excellente conférence au DEFCON 26.
@raniXCH - pour l'excellente présentation HITB et le bluetoothdPoC.
Jonathan Levin - pour le superbe livre et jtool.
références :
http://www.newosxbook.com/tools/jtool.html - jtool que j'ai utilisé pour trouver l'ordinal et d'autres choses.
https://www.weibo.com/ttarticle/p/show?id=2309404271293301154324 - matériel de @SparkZheng.
https://github.com/rani-i/bluetoothdPoC - code POC de @raniXCH.
https://gsec.hitb.org/materials/sg2018/D2%20-%20The%20Road%20to%20iOS%20Sandbox%20Escape%20-%20Rani%20Idan.pdf - matériel de @raniXCH partie 1.
https://blog.zimperium.com/cve-2018-4087-poc-escaping-sandbox-misleading-bluetoothd/ - matériel de @raniXCH partie 2.
https://github.com/omerporze/brokentooth - mon POC pour CVE-2018-4327.