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
049c7b86ef
commit
33c0a1156d
@ -12,7 +12,7 @@
|
||||
|
||||
Zasnovano na [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)
|
||||
|
||||
**Hook the \_exit()**\_ funkciju i **decrypt function** tako da ispisuje flag u frida konzoli kada pritisnete verify:
|
||||
**Hook the _exit()**_ funkciju i **decrypt function** tako da ispisuje flag u frida konzoli kada pritisnete verify:
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
send("Starting hooks OWASP uncrackable1...")
|
||||
@ -53,9 +53,9 @@ send("Hooks installed.")
|
||||
```
|
||||
## Rešenje 2
|
||||
|
||||
Na osnovu [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)
|
||||
Bazirano na [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)
|
||||
|
||||
**Hook-ujte rootchecks** i dekriptujte funkciju tako da ispisuje flag u frida konzoli kada pritisnete verify:
|
||||
**Hook rootchecks** i dekriptuje funkciju tako da ispisuje zastavicu u frida konzoli kada pritisnete verifikaciju:
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
send("Starting hooks OWASP uncrackable1...")
|
||||
@ -115,4 +115,52 @@ return false
|
||||
send("Hooks installed.")
|
||||
})
|
||||
```
|
||||
---
|
||||
|
||||
## Rešenje 3 – `frida-trace` (Frida ≥ 16)
|
||||
|
||||
Ako ne želite da ručno pišete hook-ove, možete dozvoliti **Frida** da generiše Java stubove za vas, a zatim ih izmenite:
|
||||
```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
|
||||
```
|
||||
Sa Frida 16+ generisani stub već koristi modernu **ES6** sintaksu i kompajlira se sa ugrađenim *QuickJS* runtime-om – više vam nije potreban `frida-compile`.
|
||||
|
||||
---
|
||||
|
||||
## Rešenje 4 – Jedna linija sa Objection (2024)
|
||||
|
||||
Ako imate instaliran **Objection >1.12** možete izvući flag sa jednom komandom (Objection obavija Frida interno):
|
||||
```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` štampa plaintext koji vraća AES rutina
|
||||
* `set return_value false` prisiljava svaku proveru root / debugggera da prijavi *false*
|
||||
* `invoke` vam omogućava da pozovete metodu direktno bez pritiska na **Verify**.
|
||||
|
||||
> NAPOMENA: Na Androidu 14 (API 34) morate pokrenuti Objection/Frida u *spawn* režimu (`-f`) jer je *attach* blokiran **seccomp-bpf** ograničenjima uvedenim u oktobru 2024.
|
||||
|
||||
---
|
||||
|
||||
## Moderni Android beleške (2023 - 2025)
|
||||
|
||||
* **libsu 5.x** i **Zygisk** dobro skrivaju *su*; međutim, Java zasnovane provere u Nivou 1 i dalje ne uspevaju ako datoteka `/system/bin/su` postoji. Uverite se da omogućite **denylist** ili jednostavno hook-ujte `java.io.File.exists()` sa Frida.
|
||||
* Frida 16.1 je ispravila pad na **Android 12/13** uzrokovan Google-ovim *Scudo* alokatorom. Ako vidite `Abort message: 'missing SHADOW_OFFSET'`, nadogradite Frida (ili koristite unapred izgrađenu 17.0 nightly).
|
||||
* Pošto je Play Integrity zamenio SafetyNet 2023. godine, neke novije aplikacije pozivaju **com.google.android.gms.tasks.Task** API. Nivo 1 to NE radi, ali ista strategija hook-ovanja prikazana ovde funkcioniše – hook-ujte `com.google.android.gms.safetynet.SafetyNetClient` i vratite lažirani *EvaluationType*.
|
||||
|
||||
## Reference
|
||||
|
||||
* Frida objava verzije – "Frida 16.0 (2023-04-02): ispravke pouzdanosti za Android 12/13 & prepravka spawn API"
|
||||
* Objection 1.12 – "Samo spawn režim za Android 14" (BlackHat USA 2024 prezentacione slajdove)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user