Objection Tutorial

Reading time: 7 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Utangulizi

objection - Utafiti wa Simu kwa Wakati Halisi

Objection ni zana ya utafiti wa simu kwa wakati halisi, inayotolewa 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:

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

Usanidi

bash
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 inahitajika kuchagua programu unayotaka kupima ndani ya chaguo --gadget. katika kesi hii:

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

Mambo ya Msingi

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

Mazingira

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

bash
env

Taarifa za Frida

bash
frida

Pakia/Pakua

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

Ingiza skripti ya frida

bash
import <local path frida-script>

SSLPinning

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

Ugunduzi wa mizizi

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

Picha za skrini

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

Uchambuzi wa Kimuundo uliofanywa kuwa wa Kihisia

Katika programu halisi tunapaswa kujua taarifa zote zilizogunduliwa katika sehemu hii kabla ya kutumia objection kutokana na uchambuzi wa kimuundo. 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 baadhi ya msimbo wa chanzo unaoweza kusomeka wa programu.

Orodha ya shughuli, wapokeaji na huduma

bash
android hooking list activities

bash
android hooking list services
android hooking list receivers

Frida itazindua kosa ikiwa hakuna inapatikana

Kupata shughuli ya sasa

bash
android hooking get current_activity

Tafuta Madarasa

Tuanzishe kutafuta madarasa ndani ya programu yetu

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

Tafuta Mbinu za darasa

Sasa hebu tutoe mbinu ndani ya darasa MainActivity:

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

Orodha ya Mbinu zilizotangazwa za darasa na vigezo vyake

Hebu tuone ni vigezo vipi mbinu za darasa zinahitaji:

bash
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:

bash
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 source code ya programu tunajua kwamba kazi sum() kutoka MainActivity inatekelezwa kila sekunde. Hebu jaribu kudump taarifa zote zinazowezekana kila wakati kazi inaitwa (hoja, thamani ya kurudi na backtrace):

bash
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 MainActivity kuwa za kuvutia sana, hebu ziunganishe zote. Kuwa makini, hii inaweza kusababisha programu kuanguka.

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

Ikiwa unacheza na programu wakati darasa limeunganishwa, utaona wakati kila kazi inaitwa, hoja zake na thamani ya kurudi.

Kubadilisha thamani ya kurudi ya boolean ya kazi

Kutoka kwenye msimbo wa chanzo, unaweza kuona kwamba kazi checkPin inapata String kama hoja na inarudisha boolean. Hebu tufanye kazi hiyo irudishe daima true:

Sasa, ikiwa utaandika chochote kwenye kisanduku cha maandiko kwa ajili ya PIN, utaona kwamba chochote ni halali:

Mifano ya darasa

Tafuta na uchapishe mifano hai ya darasa maalum la Java, lililoainishwa na jina kamili la darasa. Matokeo ni jaribio la kupata thamani ya string kwa kigezo kilichogunduliwa ambacho kwa kawaida kitakuwa na thamani za mali za kitu.

android heap print_instances <class>

Keystore/Intents

Unaweza kucheza na keystore na intents ukitumia:

bash
android keystore list
android intents launch_activity
android intent launch_service

Kumbukumbu

Dump

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

Orodha

bash
memory list modules

Katika mwisho wa orodha unaweza kuona frida:

Hebu tuone ni nini frida inasafirisha:

Tafuta/Andika

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

bash
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

bash
exit

Nini nakosa katika Objection

  • Mbinu za hooking wakati mwingine zinaharibu programu (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 zinazotumika.

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks