
Эксплойт доказательства концепции для уязвимостей стека Bluetooth iOS CVE-2018-4327 и CVE-2018-4330, позволяющий управлять регистром ARM PC на iPhone 6S через подключение вредоносного Bluetooth-устройства.
POC для CVE-2018-4327 (по крайней мере, я так думаю, поскольку и CVE-2018-4327, и CVE-2018-4330 были описаны @SparkZheng, но не указано, какой из них к какой ошибке относится, но так как он описал эту первой, я предполагаю).
Протестировано на iPhone 6S 11.3.1
Должно работать до 11.4
Позволяет установить PC (версия ARM для регистра IP) на значение по вашему выбору в SpringBoard и нескольких сервисах.
Вам нужно запустить код, а затем зайти в меню Bluetooth в настройках и подключиться к устройству. Если не сработает, выключите и включите Bluetooth.
Довольно раздражает в эксплуатации, но мне понравилось, поэтому я захотел сделать POC и поучиться в процессе.
Использовал код bluetoothdPoC от @raniXCH для обработки всей подготовки Mach-сообщения и его отправки в сервис Bluetooth, а также адаптировал его для этого POC.
Использовал jtool для нахождения порядкового номера и прочего.
Пришлось немного заняться RE, чтобы найти правильные размеры сообщений.
credits:
@SparkZheng — за его потрясающую лекцию на DEFCON 26.
@raniXCH — за отличную презентацию на HITB и bluetoothdPoC.
Jonathan Levin — за отличную книгу и jtool.
refrences:
http://www.newosxbook.com/tools/jtool.html — jtool, который я использовал для поиска порядкового номера и прочего.
https://www.weibo.com/ttarticle/p/show?id=2309404271293301154324 — материалы @SparkZheng.
https://github.com/rani-i/bluetoothdPoC — код POC от @raniXCH.
https://gsec.hitb.org/materials/sg2018/D2%20-%20The%20Road%20to%20iOS%20Sandbox%20Escape%20-%20Rani%20Idan.pdf — материалы @raniXCH, часть 1.
https://blog.zimperium.com/cve-2018-4087-poc-escaping-sandbox-misleading-bluetoothd/ — материалы @raniXCH, часть 2.