Objection Tutorial

Reading time: 8 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Inleiding

objection - Runtime Mobile Exploration

Objection is 'n runtime mobiele verkenning toolkit, aangedryf deur Frida. Dit is gebou met die doel om te help om mobiele toepassings en hul sekuriteitsposisie te evalueer sonder die behoefte aan 'n jailbreak of ge-root mobiele toestel.

Let wel: Dit is nie 'n vorm van jailbreak / root omseiling nie. Deur objection te gebruik, is jy steeds beperk deur al die beperkings wat deur die toepaslike sandbox opgelê word.

Samevatting

Die doel van objection is om die gebruiker toe te laat om die hoofd aksies wat Frida bied aan te roep. Andersins, sal die gebruiker 'n enkele skrip vir elke toepassing wat hy wil toets, moet skep.

Tutorial

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

Of van sy oorspronklike berging(aflaai app-release.apk)

Installasie

bash
pip3 install objection

Verbinding

Maak 'n gereguleerde ADB-verbinding en begin die frida bediener op die toestel (en kyk of frida werk op beide die kliënt en die bediener).

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

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

Basiese Aksies

Nie alle moontlike opdragte van objections gaan in hierdie tutoriaal gelys word nie, net diegene wat ek meer nuttig gevind het.

Omgewing

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

bash
env

Frida Inligting

bash
frida

Laai op/Laai af

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

Importeer frida-skrip

bash
import <local path frida-script>

SSLPinning

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

Worteldetektering

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

Exec Command

bash
android shell_exec whoami

Skermskoots

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

Statiese 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 statiese analise. Hoe dit ook al sy, op hierdie manier kan jy dalk iets nuuts sien, aangesien jy hier slegs 'n volledige lys van klasse, metodes en geexporteerde voorwerpe sal hê.

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

Lys aktiwiteite, ontvangers en dienste

bash
android hooking list activities

bash
android hooking list services
android hooking list receivers

Frida sal 'n fout bekendstel as daar geen gevind word nie

Verkry huidige aktiwiteit

bash
android hooking get current_activity

Soek Klasse

Kom ons begin soek na klasse binne ons aansoek

bash
android hooking search classes asvid.github.io.fridaapp

Soek Metodes van 'n klas

Nou laat ons die metodes binne die klas MainActivity: onttrek.

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

Lys verklaarde Metodes van 'n klas met hul parameters

Kom ons uitvind watter parameters die metodes van die klas benodig:

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

Lys klasse

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

bash
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

Hooking (kyk) na 'n metode

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

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

Hooking (kyk) '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 toepassing crash.

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

As jy met die toepassing speel terwyl die klas gehook is, sal jy sien wanneer elke funksie aangeroep word, sy argumente en die terug waarde.

Verander boolean terugwaarde van 'n funksie

Uit die bronkode kan jy sien dat die funksie checkPin 'n String as argument ontvang en 'n boolean teruggee. Kom ons maak die funksie altyd waar terug:

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

Klas instansies

Soek en druk lewende instansies van 'n spesifieke Java-klas, gespesifiseer deur 'n volledig gekwalifiseerde klasnaam. Uit is die resultaat van 'n poging om 'n stringwaarde vir 'n ontdekte beswaar te verkry wat tipies eienskapswaardes vir die objek sou bevat.

android heap print_instances <class>

Keystore/Intents

Jy kan met die keystore en intents speel deur:

bash
android keystore list
android intents launch_activity
android intent launch_service

Geheue

Dump

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

Lys

bash
memory list modules

Aan die onderkant van die lys kan jy frida sien:

Kom ons kyk wat frida uitvoer:

Soek/Skryf

Jy kan ook binne geheue soek en skryf met objection:

bash
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 kommunikeer.

Exit

bash
exit

Wat ek mis in Objection

  • Die hooking metodes laat soms die toepassing crash (dit is ook as gevolg van Frida).
  • Jy kan nie die instansies van die klasse gebruik om funksies van die instansie aan te roep nie. En jy kan nie nuwe instansies van klasse skep en hulle gebruik om funksies aan te roep nie.
  • Daar is nie 'n snelkoppeling (soos die een vir sslpinnin) om al die algemene kripto metodes wat deur die toepassing gebruik word te hook nie om gesifde teks, gewone teks, sleutels, IVs en algoritmes wat gebruik word te sien.

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks