hacktricks/mobile-pentesting/android-app-pentesting/frida-tutorial/objection-tutorial.md

11 KiB

Objection Tutoriaal

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Bugsbounty wenk: teken aan vir Intigriti, 'n premium bugsbounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin om belonings te verdien tot $100,000!

{% embed url="https://go.intigriti.com/hacktricks" %}

Inleiding

objection - Tydverloop mobiele verkenning

Objection is 'n tydverloop mobiele verkenningstoolkit, aangedryf deur Frida. Dit is gebou met die doel om te help om mobiele aansoeke en hul sekuriteitspostuur te assesseer sonder die behoefte aan 'n gejailbreakte of gewortelde mobiele toestel.

Nota: Dit is nie 'n vorm van jailbreak / wortel omseil nie. Deur objection te gebruik, is jy steeds beperk deur al die beperkings wat deur die toepaslike sandboks wat jy in die gesig staar, opgelê word.

Hervat

Die doel van objection is om die gebruiker die hoofaksies wat Frida bied, te laat aanroep. Andersins sal die gebruiker 'n enkele skrips vir elke aansoek wat hy wil toets, moet skep.

Tutoriaal

Vir hierdie tutoriaal gaan ek die APK gebruik wat jy hier kan aflaai:

{% file src="../../../.gitbook/assets/app-release.zip" %}

Of vanaf sy oorspronklike bewaarplek (laai app-release.apk af)

Installasie

pip3 install objection

Verbinding

Maak 'n gewone ADB-verbinding en begin die frida-bediener op die toestel (en kontroleer dat frida in beide die klient en die bediener werk).

As jy 'n gerootte toestel gebruik, is dit nodig om die aansoek te kies wat jy binne die --gadget opsie wil toets. in hierdie geval:

frida-ps -Uai
objection --gadget asvid.github.io.fridaapp explore

Basiese Aksies

Nie alle moontlike bevele van besware sal in hierdie handleiding gelys word nie, slegs diegene wat ek meer nuttig gevind het.

Omgewing

Sommige interessante inligting (soos wagwoorde of paaie) kan binne die omgewing gevind word.

env

Frida Inligting

frida

Oplaai/Aflaai

file download <remote path> [<local path>]
file upload <local path> [<remote path>]

Voer frida-skrip in

import <local path frida-script>

SSLPinning

android sslpinning disable #Attempts to disable SSL Pinning on Android devices.

Wortelopsporing

android root disable  #Attempts to disable root detection on Android devices.
android root simulate #Attempts to simulate a rooted Android environment.

Uitvoeringsbevel

android shell_exec whoami

Skermskote

android ui screenshot /tmp/screenshot
android ui FLAG_SECURE false  #This may enable you to take screenshots using the hardware keys

Statische analise gemaak Dinamies

In 'n werklike toepassing behoort ons al die inligting wat in hierdie deel ontdek is te ken voordat ons objection gebruik danksy statische analise. Hoe dan ook, op hierdie manier kan jy dalk iets nuuts sien aangesien jy hier slegs 'n volledige lys van klasse, metodes en uitgevoerde objekte sal hê.

Dit is ook nuttig as jy op een of ander manier nie 'n leesbare bronkode van die program kan kry nie.

Lys aktiwiteite, ontvangers en dienste

android hooking list activities

android hooking list services
android hooking list receivers

Frida sal 'n fout lewer as daar geen gevind word

Kry huidige aktiwiteit

android hooking get current_activity

Soek Klas

Laten ons begin om vir klasse binne ons aansoek te soek

android hooking search classes asvid.github.io.fridaapp

Soekmetodes van 'n klas

Nou laat ons die metodes binne die klas MainActivity onttrek:

android hooking search methods asvid.github.io.fridaapp MainActivity

Lys gedeclareerde Metodes van 'n klas met hul parameters

Laat ons uitsorteer watter parameters die metodes van die klas benodig:

android hooking list class_methods asvid.github.io.fridaapp.MainActivity

Lys klasse

Jy kan ook al die klasse lys wat gelaai is binne die huidige toepassing:

android hooking list classes #List all loaded classes, As the target application gets usedmore, this command will return more classes.

Dit is baie nuttig as jy die metode van 'n klas wil hook en jy weet net die naam van die klas. Jy kan hierdie funksie gebruik om te soek watter module die klas besit en dan sy metode te hook.

Hooking is maklik

'n Metode hook (kyk)

Van die bronkode van die aansoek weet ons dat die funksie sum() van MainActivity elke sekonde uitgevoer word. Laat ons probeer om alle moontlike inligting elke keer as die funksie aangeroep word te dump (argumente, terugkeerwaarde en terugsporing):

android hooking watch class_method asvid.github.io.fridaapp.MainActivity.sum --dump-args --dump-backtrace --dump-return

Hooking (watching) 'n hele klas

Eintlik vind ek al die metodes van die klas MainActivity regtig interessant, laat ons hulle almal hook. Wees versigtig, dit kan 'n aansoek crash.

android hooking watch class asvid.github.io.fridaapp.MainActivity --dump-args --dump-return

Indien jy speel met die aansoek terwyl die klas gehook is, sal jy sien wanneer elke funksie aangeroep word, sy argumente en die terugkeer waarde.

Verandering van die booleaanse terugkeerwaarde van 'n funksie

Vanuit die bronkode kan jy sien dat die funksie checkPin 'n String as argument kry en 'n boolean teruggee. Laat ons die funksie altyd waar teruggee:

Nou, as jy enigiets in die tekskas vir die PIN-kode skryf, sal jy sien dat enigiets geldig is:

Klasinstansies

Soek na en druk lewende instansies van 'n spesifieke Java-klas uit, gespesifiseer deur 'n ten volle gekwalifiseerde klasnaam. Uit is die resultaat van 'n poging om 'n stringwaarde vir 'n ontdekte beswaar te kry wat tipies eiendomswaardes vir die objek sou bevat.

android heap print_instances <class>

Keystore/Intents

Jy kan speel met die keystore en intents deur:

android keystore list
android intents launch_activity
android intent launch_service

Geheue

Uitleg

memory dump all <local destination> #Dump all memory
memory dump from_base <base_address> <size_to_dump> <local_destination> #Dump a part

Lys

memory list modules

Aan die onderkant van die lys kan jy frida sien:

Laat ons kyk wat frida uitvoer:

Soek/Skryf

Jy kan ook binne die geheue soek en skryf met objection:

memory search "<pattern eg: 41 41 41 ?? 41>" (--string) (--offsets-only)
memory write "<address>" "<pattern eg: 41 41 41 41>" (--string)

SQLite

Jy kan die opdrag sqlite gebruik om met sqlite-databasisse te interageer.

Uitgang

exit

Wat ek mis in Objection

  • Die hooking metodes laat soms die aansoek vasloop (dit is ook as gevolg van Frida).
  • Jy kan nie die instansies van die klasse gebruik om funksies van die instansie te roep nie. En jy kan nie nuwe instansies van klasse skep en hulle gebruik om funksies te roep nie.
  • Daar is nie 'n snelkoppeling (soos dié vir sslpinnin) om al die algemene kriptografie metodes wat deur die aansoek gebruik word te hook om gesifreerde teks, plat teks, sleutels, IV's en algoritmes wat gebruik word, te sien.

Bug bounty wenk: teken aan vir Intigriti, 'n premium bug bounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin om belonings tot $100,000 te verdien!

{% embed url="https://go.intigriti.com/hacktricks" %}

Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: