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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
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
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:
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.
env
Taarifa za Frida
frida
Pakia/Pakua
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.
Exec Command
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 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
android hooking list activities
android hooking list services
android hooking list receivers
Frida itazindua kosa ikiwa hakuna inapatikana
Kupata shughuli ya sasa
android hooking get current_activity
Tafuta Madarasa
Tuanzishe kutafuta madarasa ndani ya programu yetu
android hooking search classes asvid.github.io.fridaapp
Tafuta Mbinu za darasa
Sasa hebu tutoe mbinu 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 vipi 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 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):
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.
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:
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 tuone ni nini frida inasafirisha:
Tafuta/Andika
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 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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.