
Exploit de prova de conceito para vulnerabilidades da pilha Bluetooth do iOS CVE-2018-4327 e CVE-2018-4330, permitindo controle do registro PC ARM no iPhone 6S via conexão de dispositivo Bluetooth malicioso.
POC para CVE-2018-4327 (pelo menos é o que eu acho, já que CVE-2018-4327 e CVE-2018-4330 foram ambos relatados por @SparkZheng, mas não diz qual se refere a qual bug, mas como ele descreveu este primeiro, então estou supondo).
Testado no iPhone 6S 11.3.1
Deve funcionar até o 11.4
Permite definir o PC (a versão do ARM para o registrador IP) para um valor de sua escolha no SpringBoard e em alguns serviços.
Você precisa executar o código e depois ir ao menu BT nos ajustes e conectar a um dispositivo. Se não funcionar, desligue e ligue o BT.
Bem chato de explorar, mas eu gostei, então quis fazer um POC e aprender no caminho.
Usei o código do bluetoothdPoC do @raniXCH para lidar com toda a preparação da mensagem Mach e o envio dela para o serviço BT e o adaptei para caber neste POC.
Usei o jtool para encontrar o ordinal e outras coisas.
Tive que fazer um pouco de engenharia reversa para encontrar os tamanhos corretos das mensagens.
créditos:
@SparkZheng - pela sua palestra incrível na DEFCON 26.
@raniXCH - pela excelente apresentação no HITB e pelo bluetoothdPoC.
Jonathan Levin - pelo ótimo livro e pelo jtool.
referências:
http://www.newosxbook.com/tools/jtool.html - jtool, que usei para encontrar o ordinal e outras coisas.
https://www.weibo.com/ttarticle/p/show?id=2309404271293301154324 - material do @SparkZheng.
https://github.com/rani-i/bluetoothdPoC - código do POC do @raniXCH.
https://gsec.hitb.org/materials/sg2018/D2%20-%20The%20Road%20to%20iOS%20Sandbox%20Escape%20-%20Rani%20Idan.pdf - material do @raniXCH parte 1.
https://blog.zimperium.com/cve-2018-4087-poc-escaping-sandbox-misleading-bluetoothd/ - material do @raniXCH parte 2.