MASTG-TOOL-0074: Objection para iOS
O Objection oferece vários recursos específicos para iOS. Você pode encontrar a lista completa de funcionalidades na página do projeto, mas aqui estão algumas das mais interessantes:
- Repaginar aplicações para incluir o gadget Frida
- Desabilitar SSL pinning para métodos populares
- Acessar o armazenamento da aplicação para baixar ou fazer upload de arquivos
- Executar scripts Frida personalizados
- Extrair o conteúdo do Keychain
- Ler arquivos plist
Todas essas tarefas e muitas outras podem ser facilmente realizadas usando os comandos no REPL do Objection. Por exemplo, você pode obter as classes usadas em um app, funções de classes ou informações sobre os bundles de uma aplicação executando:
$ ios hooking list classes
$ ios hooking list class_methods <ClassName>
$ ios bundles list_bundles
Se você tiver um dispositivo jailbroken com o frida-server instalado, o Objection pode se conectar diretamente ao servidor Frida em execução para fornecer todas as suas funcionalidades sem a necessidade de repaginar a aplicação. No entanto, nem sempre é possível fazer jailbreak na versão mais recente do iOS, ou você pode ter uma aplicação com mecanismos avançados de detecção de jailbreak.
A capacidade de realizar análise dinâmica avançada em dispositivos não-jailbroken é uma das funcionalidades que torna o Objection incrivelmente útil. Após seguir o processo de repaginação ( Assinatura de arquivos IPA), você poderá executar todos os comandos mencionados anteriormente, o que facilita muito a análise rápida de uma aplicação ou a contornar controles de segurança básicos.
Usando o Objection no iOS¶
A inicialização do Objection depende se você fez o patch do IPA ou se está usando um dispositivo jailbroken executando o Frida-server. Para executar um IPA modificado, o objection encontrará automaticamente quaisquer dispositivos conectados e procurará por um gadget Frida em escuta. No entanto, ao usar o frida-server, você precisa informar explicitamente ao frida-server qual aplicação deseja analisar.
# Conectando a um IPA modificado
$ objection explore
# Usando frida-ps para obter o nome correto da aplicação
$ frida-ps -Ua | grep -i Telegram
983 Telegram
# Conectando ao app Telegram através do Frida-server
$ objection --gadget="Telegram" explore
Uma vez que você está no REPL do Objection, pode executar qualquer um dos comandos disponíveis. Abaixo está uma visão geral de alguns dos mais úteis:
# Mostrar os diferentes locais de armazenamento pertencentes ao app
$ env
# Desabilitar métodos populares de SSL pinning
$ ios sslpinning disable
# Extrair o conteúdo do Keychain
$ ios keychain dump
# Extrair o conteúdo do Keychain, incluindo modificadores de acesso. O resultado será escrito no host em myfile.json
$ ios keychain dump --json <myfile.json>
# Mostrar o conteúdo de um arquivo plist
$ ios plist cat <myfile.plist>
Mais informações sobre como usar o REPL do Objection podem ser encontradas no Objection Wiki