Objection Tutorial

Support HackTricks

Bug bounty tip: jiandikishe kwa Intigriti, jukwaa la bug bounty la kiwango cha juu lililotengenezwa na hackers, kwa hackers! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na uanze kupata zawadi hadi $100,000!

Utangulizi

objection - Utafiti wa Simu wa Wakati Halisi

Objection ni zana ya utafiti wa simu wa wakati halisi, inayotumiwa na Frida. Ilijengwa kwa lengo la kusaidia kutathmini programu za simu na hali yao ya usalama bila haja ya kifaa cha simu kilichovunjwa au kilichoshikiliwa.

Kumbuka: Hii si aina yoyote ya kukwepa jailbreak / root. Kwa kutumia objection, bado unakabiliwa na vizuizi vyote vilivyowekwa na sandbox inayofaa unayokutana nayo.

Muhtasari

Lengo la objection ni kumruhusu mtumiaji kuita vitendo vikuu vinavyotolewa na Frida. Vinginevyo, mtumiaji atahitaji kuunda script moja kwa kila programu anayotaka kupima.

Tutorial

Kwa ajili ya tutorial hii nitatumia APK ambayo unaweza kupakua hapa:

2MB
app-release.zip
archive

Au kutoka kwenye hifadhi yake ya asili(pakua app-release.apk)

Usanidi

pip3 install objection

Connection

Fanya muunganisho wa kawaida wa ADB na anzisha seva ya frida kwenye kifaa (na hakikisha kwamba frida inafanya kazi kwenye mteja na seva).

Ikiwa unatumia kifaa kilichopandishwa ni muhimu kuchagua programu unayotaka kupima ndani ya chaguo la --gadget. katika kesi hii:

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

Basic Actions

Sio amri zote zinazowezekana za objections zitakazoorodheshwa katika tutorial hii, ni zile tu ambazo nimezipata kuwa za manufaa zaidi.

Environment

Taarifa za kuvutia (kama nywila au njia) zinaweza kupatikana ndani ya mazingira.

env

Taarifa za Frida

frida

Pakia/Download

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

Ingiza skripti ya frida

import <local path frida-script>

SSLPinning

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

Ugunduzi wa mizizi

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

Amri ya Exec

android shell_exec whoami

Picha za skrini

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

Uchambuzi wa Kihistoria uliofanywa kuwa wa Kiharakati

Katika programu halisi tunapaswa kujua taarifa zote zilizogunduliwa katika sehemu hii kabla ya kutumia objection kutokana na uchambuzi wa kihistoria. Hata hivyo, njia hii huenda ukawaona mambo mapya kwani hapa utakuwa na orodha kamili ya madarasa, mbinu na vitu vilivyotolewa.

Hii pia ni muhimu ikiwa kwa namna fulani huwezi kupata msimbo wa chanzo unaoweza kusomeka wa programu hiyo.

Orodha ya shughuli, wapokeaji na huduma

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

Frida itatoa kosa ikiwa hakuna inapatikana

Kupata shughuli ya sasa

android hooking get current_activity

Tafuta Madarasa

Tuanze kutafuta madarasa ndani ya programu yetu

android hooking search classes asvid.github.io.fridaapp

Njia za Kutafuta za darasa

Sasa hebu tutoe njia ndani ya darasa MainActivity:

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

Orodha ya Mbinu zilizotangazwa za darasa na vigezo vyake

Hebu tuone ni vigezo gani mbinu za darasa zinahitaji:

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

Orodha ya madarasa

Unaweza pia kuorodhesha madarasa yote ambayo yamepakuliwa ndani ya programu ya sasa:

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

Hii ni muhimu sana ikiwa unataka kuunganisha njia ya darasa na unajua tu jina la darasa. Unaweza kutumia kazi hii kutafuta ni moduli ipi inayomiliki darasa na kisha kuunganisha njia yake.

Kuunganisha kuwa rahisi

Kuunganisha (kuangalia) njia

Kutoka kwenye kanuni ya chanzo ya programu tunajua kwamba kazi sum() kutoka MainActivity inatekelezwa kila sekunde. Hebu jaribu kudondosha taarifa zote zinazowezekana kila wakati kazi inaitwa (hoja, thamani ya kurudi na backtrace):

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

Hooking (kuangalia) darasa zima

Kwa kweli, ninapata mbinu zote za darasa la MainActivity kuwa za kuvutia sana, hebu ziunganishe zote. Kuwa makini, hii inaweza kusababisha programu kuanguka.

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 kila kazi inaitwa, its hoja and the thamani return.

Kubadilisha thamani ya boolean ya kazi

From the source code you can see that the function checkPin gets a String as argument and returns a boolean. Lets make the function kila wakati irejeze kweli:

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

Class instances

Search for and print mifano hai ya darasa maalum la Java, 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 kuwa na thamani za mali za kitu.

android heap print_instances <class>

Keystore/Intents

Unaweza kucheza na keystore na intents ukitumia:

android keystore list
android intents launch_activity
android intent launch_service

Kumbukumbu

Dump

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

Orodha

memory list modules

Katika mwisho wa orodha unaweza kuona frida:

Hebu tuangalia ni nini frida inasafirisha:

Search/Write

Unaweza pia kutafuta na kuandika ndani ya kumbukumbu kwa kutumia objection:

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

SQLite

Unaweza kutumia amri sqlite kuingiliana na hifadhidata za sqlite.

Exit

exit

Nini ninakosa katika Objection

  • Mbinu za hooking wakati mwingine zinaweza kusababisha programu kuanguka (hii pia ni kwa sababu ya Frida).

  • Huwezi kutumia mifano ya madarasa kuita kazi za mfano. Na huwezi kuunda mifano mipya ya madarasa na kuvitumia kuita kazi.

  • Hakuna njia fupi (kama ile ya sslpinnin) ya kuhooki mbinu zote za kawaida za crypto zinazotumiwa na programu ili kuona maandiko yaliyofichwa, maandiko ya kawaida, funguo, IVs na algorithimu zinazotumiwa.

Nasaha ya bug bounty: jiandikishe kwa Intigriti, jukwaa la bug bounty la premium lililoundwa na hackers, kwa hackers! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na uanze kupata zawadi hadi $100,000!

Support HackTricks

Last updated