
iOS 블루투스 스택 취약점 CVE-2018-4327 및 CVE-2018-4330에 대한 개념 증명 익스플로잇으로, 악의적인 블루투스 기기 연결을 통해 iPhone 6S에서 ARM PC 레지스터 제어를 가능하게 합니다.
CVE-2018-4327에 대한 POC (적어도 제 생각에는 그렇습니다. CVE-2018-4327과 CVE-2018-4330은 모두 @SparkZheng이 작성했지만 어떤 버그가 어떤 CVE에 해당하는지 명시되어 있지 않아서, 그가 먼저 설명한 이 버그를 가정하고 있습니다.)
Tested on iPhone 6S 11.3.1
Should work until 11.4
SpringBoard 및 일부 서비스에서 PC(ARM의 IP 레지스터 버전)를 원하는 값으로 설정할 수 있습니다.
코드를 실행한 다음 설정의 블루투스 메뉴로 이동하여 기기에 연결해야 합니다. 작동하지 않으면 블루투스를 껐다 켜보세요.
악용하기가 매우 성가시지만 마음에 들어서 POC를 만들고 그 과정에서 배우고 싶었습니다.
@raniXCH의 bluetoothdPoC 코드를 사용하여 Mach 메시지 준비 및 BT 서비스 전송을 처리하고 이 POC에 맞게 수정했습니다.
jtool을 사용하여 ordinal 및 기타 정보를 찾았습니다.
올바른 메시지 크기를 찾기 위해 약간의 리버스 엔지니어링(RE)이 필요했습니다.
크레딧:
@SparkZheng - DEFCON 26에서의 멋진 강연에 대해.
@raniXCH - 훌륭한 HITB 발표와 bluetoothdPoC에 대해.
Jonathan Levin - 훌륭한 책과 jtool에 대해.
참고 자료:
http://www.newosxbook.com/tools/jtool.html - jtool (ordinal 및 기타 정보를 찾는 데 사용)
https://www.weibo.com/ttarticle/p/show?id=2309404271293301154324 - @SparkZheng 자료.
https://github.com/rani-i/bluetoothdPoC - @raniXCH의 POC 코드.
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부