Uma ferramenta que ajuda você a usar Frida com facilidade. Ele oferece suporte a scripts para rastrear classes, funções e modificar os valores de retorno de métodos na plataforma iOS.
Para plataforma Android: frida-android-hook
Para Intercept Api foi criptografado no aplicativo iOS: frida-ios-intercept-api
SO | Suportado | Observado |
---|---|---|
Mac OS | ✅ | principal |
Linux | ✅ | sub |
Windows | ✅ | sub |
iOS | Frida | Ferramentas Frida | Suportado |
---|---|---|---|
15.7.4 | 16.1.3 | 12.2.1 | ✅ |
Executando com python3.x
Apoie o spawn e anexe o script ao processo.
[+] Options: -p(--package) Identifier of application ex: com.apple.AppStore -n(--name) Name of application ex: AppStore -s(--script) Using script format script.js -c(--check-version) Check for the newest version -u(--update) Update to the newest version [*] Dump decrypt IPA: -d, --dump Dump decrypt application.ipa -o OUTPUT_IPA, --output=OUTPUT_IPA Specify name of the decrypted IPA [*] Dump memory of Application: --dump-memory Dump memory of application [*] HexByte Scan IPA: --hexbyte-scan Scan or Patch IPA with byte patterns --pattern=PATTERN Pattern for hexbytescan --address=ADDRESS Address for hexbytescan -t TASK, --task=TASK Task for hexbytescan [*] Information: --list-devices List All Devices --list-apps List The Installed apps --list-scripts List All Scripts --logcat Show system log of device --shell, --ssh Get the shell of connect device [*] Quick method: -m(--method) Support commonly used methods app-static(-n) bypass-jb(-p) bypass-ssl(-p) i-url-req(-n) i-crypto(-p) [*] reFlutter: --reflutter=FLUTTERFILE File Flutter.ipa
Versão: 3.9
[+] Add: - Add backtrace to hooking.js [+] Change: - Update frida version - Update readme, changelog, requirement [+] Fix - Fix issue #85
Veja o ChangeLog completo
[+] Latest version https://github.com/noobpk/frida-ios-hook/releases [+] Develop version git clone -b dev https://github.com/noobpk/frida-ios-hook
[+] Python >= v3.0 (Recommend to use pyenv or virtualenv) 1. cd frida-ios-hook/ 2. python3 -m venv py-env 3. source py-env/bin/active
1. pip3 install -r requirements.txt 3. python3 setup.py 4. cd frida-ios-hook 5. ./ioshook -h (--help)
Veja o uso completo como Wiki
Se você executar o script, mas ele não funcionar, tente o seguinte: frida -U -f package -l script.js
Título | Link |
---|---|
Frida iOS Gancho | Uso Básico | Instalar - Listar dispositivos - Listar aplicativos - Listar scripts - Logcat - Shell | https://youtu.be/xSndHgTdv4w |
Frida iOS Gancho | Uso Básico | Dump Decrypt IPA - Aplicativo de despejo de memória - Hexbyte-Scan IPA | https://youtu.be/AUsJ9_gnWAI |
Frida iOS Gancho | Uso Básico | Aplicativo estático - Ignorar Jailbreak - Ignorar SSL - Interceptar URL + criptografia | https://youtu.be/nWhKDSzArf8 |
Frida iOS Gancho | Uso Antecipado | Despejo de memória - Radare2 - Iaito | https://youtu.be/nUqE4EYWiEc |
Atualizados alguns scripts frida para ajudá-lo com o aplicativo pentest ios. Filtrar script usando spawn(S) ou attachment(A)
N | Gerar/Anexar | Nome do roteiro | Descrição do roteiro | Versão do roteiro |
---|---|---|---|---|
1 | S | backtrace.js | Retrocesso | 1,0 |
2 | S | ignorar-flutter-ssl.js | Fixação SSL de desvio de vibração | 1,0 |
3 | S | ignorar-jailbreak-1.js | Detecção básica de bypass de jailbreak | 1,0 |
4 | S | ignorar-ssl-ios13.js | iOS 13 ignorar fixação SSL | 1,0 |
5 | S | dump-ios-url-scheme.js | Despejar o esquema de URL do iOS quando "openURL" for chamado | 1,0 |
6 | S | dump-ui.js | Despejar a estrutura atual da interface do usuário na tela | 1,0 |
7 | S+A | encontrar todas as classes-métodos.js | Despejar todos os métodos dentro de todas as classes | 1,0 |
8 | S+A | encontrar todas as classes.js | Despejar todas as classes usadas pelo aplicativo | 1,0 |
9 | S+A | find-app-classes-methods.js | Despejar todos os métodos dentro de classes pertencentes apenas ao aplicativo | 1,0 |
10 | S+A | encontrar-app-classes.js | Despejar classes pertencentes apenas ao aplicativo | 1,0 |
11 | S+A | encontrar-método específico.js | Encontre um método específico em todas as classes | 1,0 |
12 | S+A | flutter_trace_function.js | Função de rastreamento de vibração do iOS | 1,0 |
13 | S+A | hook-todos-métodos-de-todas-classes-app-only.js | Conecte todos os métodos de todas as classes pertencentes ao aplicativo | 1,0 |
14 | S+A | gancho-todos-métodos-de-classe-específico.js | Conecte todos os métodos de uma classe específica | 1,0 |
15 | S+A | método-de-classe específico do gancho.js | Conecte um método específico de uma classe específica | 1,0 |
16 | S+A | interceptar-nslog.js | Interceptar chamadas para a função de registro NSLog da Apple | 1,0 |
17 | S+A | ios-app-static-análise.js | Análise estática de aplicativos iOS | 1,0 |
18 | S | ios-biometric-bypass.js | Desvio biométrico iOS | 1,0 |
19 | S+A | ios-intercept-crypto-2.js | iOS intercepta operações criptográficas 2 | 1,0 |
20 | S+A | ios-intercept-crypto.js | iOS intercepta operações criptográficas | 1,0 |
21 | S+A | ios-list-apps.js | Aplicativo de lista iOS | 1,0 |
22 | S+A | ios-url-scheme-fuzzing.js | Fuzzing do esquema de URL do iOS | 1,0 |
23 | S+A | pasteboard-monitoring.js | Monitore o uso do papelão. Útil para mostrar a falta de atributos seguros em campos confidenciais que permitem a cópia de dados. | 1,0 |
24 | S+A | raptor_frida_ios_autoIntercept.js | Raptor frida ios interceptação automática | 1,0 |
25 | S+A | raptor_frida_ios_bypass1.js | Raptor frida ios bypass 1 | 1,0 |
26 | S+A | raptor_frida_ios_bypass2.js | Raptor frida ios bypass 2 | 1,0 |
27 | S+A | raptor_frida_ios_call.js | Raptor frida chamada ios | 1,0 |
28 | S+A | raptor_frida_ios_debug.js | Depuração do Raptor Frida iOS | 1,0 |
29 | S+A | raptor_frida_ios_enum.js | Raptor frida ios enum | 1,0 |
30 | S+A | raptor_frida_ios_lowlevel1.js | Raptor frida ios nível baixo 1 | 1,0 |
31 | S+A | raptor_frida_ios_lowlevel2.js | Raptor frida ios nível baixo 2 | 1,0 |
32 | S+A | raptor_frida_ios_stalker.js | Raptor Frida iOS perseguidor | 1,0 |
33 | S+A | raptor_frida_ios_touchid.js | Raptor Frida iOS Touchid | 1,0 |
34 | S+A | raptor_frida_ios_trace.js | Raptor frida ios rastreamento | 1,0 |
35 | S+A | leia-nsuserdefaults.js | Mostrar conteúdo de NSUserDefaults | 1,0 |
36 | S+A | read-plist-file.js | Mostrar conteúdo de um arquivo Plist | 1,0 |
37 | S | substituir-exportado-método.js | Substituir a função exportada de um módulo | 1,0 |
38 | S+A | mostrar todos os métodos de classe específica.js | Despejar todos os métodos de uma classe específica | 1,0 |
39 | S+A | show-argument-type-count-and-return-value-type.js | Mostrar tipo e contagem de argumento e tipo de valor de retorno para uma função em uma classe | 1,0 |
40 | S+A | mostrar variáveis de instância para classes específicas.js | Mostrar todas as variáveis de instância de uma classe específica | 1,0 |
41 | S+A | mostrar-modificar-função-argumentos.js | Mostrar e modificar argumentos de uma função dentro de uma classe | 1,0 |
42 | S+A | show-modify-method-return-value.js | Mostrar e modificar o valor de retorno de um método específico dentro de uma classe | 1,0 |
43 | S+A | show_binarycookies.js | Mostrar conteúdo do arquivo Cookies.binarycookies | 1,0 |
N | Nome da tarefa | Descrição da tarefa |
---|---|---|
1 | openssl_hook.json | Certificado OpenSSL 1.0.2 fixando gancho no arm64 |
2 | openssl_1_1_0_hook.json | Gancho de fixação de certificado OpenSSL 1.1.0 para arm64, ele modifica a instrução cmp no método tls_process_server_certificate |
3 | openssl_hook_v2.json | Gancho de fixação do certificado OpenSSL 1.0.2 no arm64, padrão aprimorado, possivelmente para versão diferente do compilador ou OpenSSL ligeiramente atualizado, use se a primeira versão não encontrar o local do patch. Esses ganchos corrigem a chamada para ssl_verify_cert_chain em ssl3_get_server_certificate. |
Como não sou desenvolvedor, minhas habilidades de codificação podem não ser as melhores. Portanto, se esta ferramenta apresentar algum problema ou não funcionar para você, crie um problema e tentarei corrigi-lo. Quaisquer sugestões para novos recursos e discussões são bem-vindas!