
POC for CVE-2018-4327
POC для CVE-2018-4327 (по крайней мере, я так думаю, так как CVE-2018-4327 и CVE-2018-4330 оба обсуждались @SparkZheng, но из его слов неясно, какая какая ошибка, но поскольку он описал эту первой, я предположил).
Протестировано на iPhone 6S 11.3.1
Должно работать до 11.4
Позволяет установить PC (ARM-версия регистра IP) на значение по вашему выбору в SpringBoard и некоторых службах. Вам нужно запустить код, затем перейти в настройки BT и подключиться к устройству. Если не работает, выключите и включите BT.
Довольно раздражает при эксплуатации, но мне это понравилось, поэтому я хотел сделать POC и учиться по ходу дела.
Использовал код bluetoothdPoC от @raniXCH для подготовки Mach-сообщения и его отправки в службу BT, и адаптировал его для этого POC.
Использовал jtool для поиска ординала и прочего.
Пришлось немного позаниматься реверс-инжинирингом, чтобы найти правильные размеры сообщений.
благодарности:
@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.