Objection Tutorial

Support HackTricks

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

Inleiding

objection - Runtime Mobile Exploration

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

Nota: 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 repository(aflaai app-release.apk)

Installasie

pip3 install objection

Verbinding

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

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

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

Basic Actions

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

Environment

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

env

Frida Inligting

frida

Laai op/Laai af

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

Importeer frida-skrip

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.

Exec Command

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

Statiese analise gemaak Dinamies

In 'n werklike toepassing moet ons al die inligting wat in hierdie deel ontdek is, 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 uitgevoerde objekte 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

android hooking list activities
android hooking list services
android hooking list receivers

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

Verkry huidige aktiwiteit

android hooking get current_activity

Soek Klasse

Kom ons begin soek na klasse binne ons aansoek

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 van verklaarde Metodes van 'n klas met hul parameters

Kom ons uitvind 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 in die huidige aansoek gelaai is:

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

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

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, kom ons hook hulle almal. Wees versigtig, dit kan 'n toepassing crash.

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

If you play with the application while the class is hooked you will see when elke funksie aangeroep word, its argumente and the terug waarde.

Verander boolean terugwaarde van 'n funksie

From the source code you can see that the function checkPin gets a String as argument and returns a boolean. Laat ons die funksie altyd true teruggee:

Now, If you write anything in the text box for the PIN code you will see tat anything is valid:

Klas instansies

Search for and print lewende instansies van 'n spesifieke Java klas, specified by a fully qualified class name. Out is the result of an attempt at getting a string value for a discovered objection which would typically bevat eiendom waardes vir die objek.

android heap print_instances <class>

Keystore/Intents

Jy kan met die keystore en intents speel deur:

android keystore list
android intents launch_activity
android intent launch_service

Geheue

Dump

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:

Kom ons kyk wat frida uitvoer:

Soek/Skryf

Jy kan ook binne 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 kommunikeer.

Exit

exit

Wat ek mis in Objection

  • Die hooking metodes laat soms die aansoek 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 crypto metodes wat deur die aansoek gebruik word te hook nie om gesifde teks, gewone teks, sleutels, IVs en algoritmes wat gebruik word te sien.

Bug bounty wenk: meld 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 bounties tot $100,000 te verdien!

Ondersteun HackTricks

Last updated