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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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
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:
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.
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.
Worteldetektering
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
Skermskoots
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
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
Soek Metodes van 'n klas
Nou laat ons die metodes binne die klas MainActivity: onttrek.
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:
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:
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):
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.
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:
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 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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.