11 KiB
Objection Tutorijal
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Savet za bug bounty: Prijavite se za Intigriti, premium platformu za bug bounty kreiranu od hakera, za hakere! Pridružite nam se na https://go.intigriti.com/hacktricks danas, i počnite da zarađujete nagrade do $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Uvod
objection - Runtime Mobile Exploration
Objection je alat za istraživanje mobilnih aplikacija u realnom vremenu, pokretan od strane Frida. Napravljen je sa ciljem da pomogne u proceni mobilnih aplikacija i njihovog bezbednosnog položaja bez potrebe za jailbroken ili rooted mobilnim uređajem.
Napomena: Ovo nije neka vrsta jailbreak / root zaobilaska. Korišćenjem objection
, i dalje ste ograničeni svim restrikcijama koje nameće odgovarajući sandbox sa kojim se suočavate.
Rezime
Cilj objection-a je omogućiti korisniku da pozove glavne akcije koje nudi Frida. Inače, korisnik će morati da napravi jedan skript za svaku aplikaciju koju želi da testira.
Tutorijal
Za ovaj tutorijal ću koristiti APK koji možete preuzeti ovde:
{% file src="../../../.gitbook/assets/app-release.zip" %}
Ili sa njegovog originalnog repozitorijuma (preuzmite app-release.apk)
Instalacija
pip3 install objection
Povezivanje
Napravite običnu ADB konekciju i pokrenite frida server na uređaju (i proverite da li frida radi i na klijentu i na serveru).
Ako koristite rootovani uređaj, potrebno je izabrati aplikaciju koju želite testirati unutar opcije --gadget. U ovom slučaju:
frida-ps -Uai
objection --gadget asvid.github.io.fridaapp explore
Osnovne radnje
Neće biti navedene sve moguće komande objekcije u ovom tutorijalu, već samo one koje sam smatrao korisnijim.
Okruženje
Neke zanimljive informacije (poput lozinki ili putanja) mogu se pronaći unutar okruženja.
env
Frida Informacije
frida
Postavi/Preuzmi
file download <remote path> [<local path>]
file upload <local path> [<remote path>]
Uvoz frida skripte
import <local path frida-script>
SSLPinning
android sslpinning disable #Attempts to disable SSL Pinning on Android devices.
Detekcija root-a
android root disable #Attempts to disable root detection on Android devices.
android root simulate #Attempts to simulate a rooted Android environment.
Izvrši komandu
android shell_exec whoami
Snimci ekrana
android ui screenshot /tmp/screenshot
android ui FLAG_SECURE false #This may enable you to take screenshots using the hardware keys
Statistička analiza pretvorena u dinamičku
U stvarnoj aplikaciji trebalo bi da znamo sve informacije otkrivene u ovom delu pre korišćenja prigovora zahvaljujući statističkoj analizi. U svakom slučaju, na ovaj način možda možete videti nešto novo jer ćete ovde imati potpuni spisak klasa, metoda i izvezenih objekata.
Ovo je takođe korisno ako iz nekog razloga niste u mogućnosti da dobijete neki čitljiv izvorni kod aplikacije.
Spisak aktivnosti, prijemnika i servisa
android hooking list activities
android hooking list services
android hooking list receivers
Frida će pokrenuti grešku ako ništa nije pronađeno
Dobijanje trenutne aktivnosti
android hooking get current_activity
Pretraga Klasa
Počnimo sa traženjem klasa unutar naše aplikacije
android hooking search classes asvid.github.io.fridaapp
Pretraga metoda klase
Sada ćemo izdvojiti metode unutar klase MainActivity:
android hooking search methods asvid.github.io.fridaapp MainActivity
Lista deklarisanih metoda klase sa njihovim parametrima
Otkrijmo koje parametre metodi klase zahtevaju:
android hooking list class_methods asvid.github.io.fridaapp.MainActivity
Lista klasa
Takođe možete da prikažete sve klase koje su učitane unutar trenutne aplikacije:
android hooking list classes #List all loaded classes, As the target application gets usedmore, this command will return more classes.
Ovo je veoma korisno ako želite da povežete metodu klase, a znate samo ime klase. Možete koristiti ovu funkciju da pronađete koji modul poseduje klasu i zatim povežete njenu metodu.
Povezivanje je lako
Povezivanje (praćenje) metode
Iz izvornog koda aplikacije znamo da se funkcija sum() iz klase MainActivity izvršava svake sekunde. Pokušajmo da izbacimo sve moguće informacije svaki put kada se funkcija pozove (argumente, vrednost povratka i stek poziva):
android hooking watch class_method asvid.github.io.fridaapp.MainActivity.sum --dump-args --dump-backtrace --dump-return
Hakovanje (pratnja) cele klase
Zapravo, smatram da su svi metodi klase MainActivity zaista interesantni, hajde da ih hukujemo sve. Budite oprezni, ovo može uzrokovati pad aplikacije.
android hooking watch class asvid.github.io.fridaapp.MainActivity --dump-args --dump-return
Ako igrate sa aplikacijom dok je klasa povezana, videćete kada se svaka funkcija poziva, njene argumente i vrednost povratka.
Menjanje boolean vrednosti povratka funkcije
Iz izvornog koda možete videti da funkcija checkPin dobija String kao argument i vraća boolean. Hajde da funkciju uvek vraća true:
Sada, ako unesete bilo šta u polje za unos PIN koda, videćete da je sve validno:
Instance klase
Pretražite i štampajte aktivne instance određene Java klase, navedene potpuno kvalifikovanim imenom klase. Rezultat je pokušaj dobijanja string vrednosti za otkriveni prigovor koji bi tipično sadržavao vrednosti svojstava objekta.
android heap print_instances <class>
Keystore/Intents
Možete se igrati sa keystore-om i intentima koristeći:
android keystore list
android intents launch_activity
android intent launch_service
Memorija
Izbacivanje
memory dump all <local destination> #Dump all memory
memory dump from_base <base_address> <size_to_dump> <local_destination> #Dump a part
Lista
memory list modules
Na dnu liste možete videti Fridu:
Pogledajmo šta Frida izvozi:
Pretraga/Pisanje
Takođe možete pretraživati i pisati unutar memorije pomoću Objection-a:
memory search "<pattern eg: 41 41 41 ?? 41>" (--string) (--offsets-only)
memory write "<address>" "<pattern eg: 41 41 41 41>" (--string)
SQLite
Možete koristiti komandu sqlite
da biste interagovali sa SQLite bazama podataka.
Exit
exit
Šta mi nedostaje u Objection-u
- Metode hakovanja ponekad ruše aplikaciju (ovo je takođe zbog Fridda).
- Ne možete koristiti instance klasa da biste pozvali funkcije instance. I ne možete kreirati nove instance klasa i koristiti ih da biste pozvali funkcije.
- Ne postoji prečica (poput one za sslpinnin) da hakujete sve uobičajene kripto metode koje koristi aplikacija kako biste videli šifrovani tekst, običan tekst, ključeve, IV-e i algoritme koji se koriste.
Savet za bug bounty: Prijavite se za Intigriti, premium platformu za bug bounty kreiranu od hakera, za hakere! Pridružite nam se na https://go.intigriti.com/hacktricks danas, i počnite da zarađujete nagrade do $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu Proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.