mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/android-app-pentesting/frida-tutorial
This commit is contained in:
parent
104b7f3f0e
commit
e3faed1159
@ -12,7 +12,7 @@
|
||||
|
||||
Baseado em [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)
|
||||
|
||||
**Hook a função \_exit()**\_ e **função de descriptografia** para que imprima a flag no console do frida quando você pressionar verificar:
|
||||
**Hook a função _exit()** e **função de descriptografia** para que imprima a flag no console do frida quando você pressionar verificar:
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
send("Starting hooks OWASP uncrackable1...")
|
||||
@ -115,4 +115,52 @@ return false
|
||||
send("Hooks installed.")
|
||||
})
|
||||
```
|
||||
---
|
||||
|
||||
## Solução 3 – `frida-trace` (Frida ≥ 16)
|
||||
|
||||
Se você não quiser escrever hooks manualmente, pode deixar o **Frida** gerar os stubs Java para você e depois editá-los:
|
||||
```bash
|
||||
# Spawn the application and automatically trace the Java method we care about
|
||||
aadb shell "am force-stop owasp.mstg.uncrackable1"
|
||||
frida-trace -U -f owasp.mstg.uncrackable1 \
|
||||
-j 'sg.vantagepoint.a.a.a("[B","[B")[B' \
|
||||
-j 'sg.vantagepoint.a.c!*' \
|
||||
--output ./trace
|
||||
|
||||
# The first run will create ./trace/scripts/sg/vantagepoint/a/a/a__B_B_B.js
|
||||
# Edit that file and add the logic that prints the decrypted flag or
|
||||
# returns a constant for the root-checks, then:
|
||||
frida -U -f owasp.mstg.uncrackable1 -l ./trace/_loader.js --no-pause
|
||||
```
|
||||
Com o Frida 16+, o stub gerado já utiliza a sintaxe moderna de template **ES6** e será compilado com o runtime *QuickJS* embutido – você não precisa mais do `frida-compile`.
|
||||
|
||||
---
|
||||
|
||||
## Solução 4 – Um comando com Objection (2024)
|
||||
|
||||
Se você tiver **Objection >1.12** instalado, pode despejar a flag com um único comando (Objection envolve o Frida internamente):
|
||||
```bash
|
||||
objection -g owasp.mstg.uncrackable1 explore \
|
||||
--startup-command "android hooking watch class sg.vantagepoint.a.a method a \n && android hooking set return_value false sg.vantagepoint.a.c * \n && android hooking invoke sg.vantagepoint.a.a a '[B' '[B'"
|
||||
```
|
||||
* `watch class` imprime o texto em claro retornado pela rotina AES
|
||||
* `set return_value false` força cada verificação de root / depurador a relatar *false*
|
||||
* `invoke` permite que você chame o método diretamente sem pressionar **Verify**.
|
||||
|
||||
> NOTA: No Android 14 (API 34) você deve executar Objection/Frida em modo *spawn* (`-f`) porque *attach* está bloqueado por restrições de **seccomp-bpf** introduzidas em outubro de 2024.
|
||||
|
||||
---
|
||||
|
||||
## Notas sobre Android Moderno (2023 - 2025)
|
||||
|
||||
* **libsu 5.x** e **Zygisk** escondem *su* muito bem; no entanto, as verificações baseadas em Java no Nível 1 ainda falham se o arquivo `/system/bin/su` existir. Certifique-se de habilitar **denylist** ou simplesmente hook `java.io.File.exists()` com Frida.
|
||||
* Frida 16.1 corrigiu uma falha no **Android 12/13** causada pelo alocador *Scudo* do Google. Se você ver `Abort message: 'missing SHADOW_OFFSET'`, atualize o Frida (ou use a versão noturna pré-compilada 17.0).
|
||||
* Como o Play Integrity substituiu o SafetyNet em 2023, alguns aplicativos mais novos chamam a API **com.google.android.gms.tasks.Task**. O Nível 1 NÃO faz isso, mas a mesma estratégia de hooking mostrada aqui funciona – hook `com.google.android.gms.safetynet.SafetyNetClient` e retorne um *EvaluationType* forjado.
|
||||
|
||||
## Referências
|
||||
|
||||
* Anúncio de lançamento do Frida – "Frida 16.0 (2023-04-02): correções de confiabilidade do Android 12/13 e reformulação da API spawn"
|
||||
* Objection 1.12 – "Modo apenas spawn para Android 14" (slides da palestra BlackHat USA 2024)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user