
iOS용 CVE-2018-4330 PoC
아래 링크된 brokentooth와 관련이 있습니다.
brokentooth와 달리 toothfairy는 블루투스 메뉴에서 버튼을 누를 필요가 없습니다.
두 CVE 모두 @SparkZheng이 공개했지만 POC가 없어서 학습 목적으로 POC를 만들기로 결정했습니다.
코드는 완벽하지 않지만 작동은 합니다.
iPhone 6S 11.3.1에서 테스트됨
11.4까지는 작동할 것입니다.
bluetoothd 및 몇몇 다른 서비스에서 PC(ARM의 IP 레지스터 버전)를 원하는 값으로 설정할 수 있게 해줍니다.
Mach 메시지 준비와 BT 서비스로의 전송을 처리하기 위해 @raniXCH의 bluetoothdPoC 코드를 사용했고, 이 POC에 맞게 조정했습니다.
ordinal 및 기타 항목을 찾기 위해 jtool을 사용했습니다.
올바른 메시지 크기를 찾기 위해 약간의 RE(리버스 엔지니어링) 작업이 필요했습니다.
크레딧:
@SparkZheng - DEFCON 26에서의 훌륭한 강연에 감사드립니다.
@raniXCH - 훌륭한 HITB 프레젠테이션과 bluetoothdPoC에 감사드립니다.
Jonathan Levin - 훌륭한 책과 jtool에 감사드립니다.
참고 자료:
http://www.newosxbook.com/tools/jtool.html - ordinal 및 기타 항목을 찾기 위해 사용한 jtool.
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.
https://github.com/omerporze/brokentooth - CVE-2018-4327에 대한 제 POC.