Objection Tutorial
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bug bounty tip: prijavite se za Intigriti, premium bug bounty platformu koju su kreirali hakeri, za hakere! Pridružite nam se na https://go.intigriti.com/hacktricks danas, i počnite da zarađujete nagrade do $100,000!
objection - Runtime Mobile Exploration
Objection je alat za istraživanje mobilnih aplikacija u realnom vremenu, pokretan Frida. Izgrađen je s ciljem da pomogne u proceni mobilnih aplikacija i njihovog bezbednosnog stanja bez potrebe za jailbreak-ovanim ili root-ovanim mobilnim uređajem.
Napomena: Ovo nije neka vrsta bypass-a za jailbreak / root. Korišćenjem objection
, i dalje ste ograničeni svim ograničenjima koja nameće odgovarajući sandbox s kojim se suočavate.
Cilj objection-a je omogućiti korisniku da pozove glavne akcije koje nudi Frida. U suprotnom, korisnik će morati da kreira jedan skript za svaku aplikaciju koju želi da testira.
Za ovaj tutorijal ću koristiti APK koji možete preuzeti ovde:
Ili iz njegovog originalnog repozitorijuma(preuzmite app-release.apk)
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 odabrati aplikaciju koju želite da testirate unutar --gadget opcije. u ovom slučaju:
Nisu sve moguće komande objections navedene u ovom tutorijalu, samo one koje sam smatrao korisnijim.
Neke zanimljive informacije (kao što su lozinke ili putanje) mogu se naći unutar okruženja.
U pravoj aplikaciji trebali bismo znati sve informacije otkrivene u ovom delu pre nego što koristimo objection zahvaljujući statickoj analizi. U svakom slučaju, na ovaj način možda možete videti nešto novo jer ćete ovde imati samo potpunu listu klasa, metoda i eksportovanih objekata.
Ovo je takođe korisno ako nekako niste u mogućnosti da dobijete neki čitljiv izvorni kod aplikacije.
Frida će pokrenuti grešku ako nijedna nije pronađena
Hajde da počnemo da tražimo klase unutar naše aplikacije.
Sada hajde da izdvojimo metode unutar klase MainActivity:
Hajde da otkrijemo koji parametri su potrebni metodama klase:
Takođe možete nabrojati sve klase koje su učitane unutar trenutne aplikacije:
Ovo je veoma korisno ako želite da hook-ujete metodu klase i samo znate ime klase. Možete koristiti ovu funkciju da pretražite koji modul poseduje klasu i zatim hook-ujete njenu metodu.
Iz izvornog koda aplikacije znamo da se funkcija sum() iz MainActivity izvršava svake sekunde. Pokušajmo da dump-ujemo sve moguće informacije svaki put kada se funkcija pozove (argumenti, povratna vrednost i backtrace):
Zapravo, smatram da su sve metode klase MainActivity zaista zanimljive, hajde da hook-ujemo sve. Budite oprezni, ovo može srušiti aplikaciju.
Ako igrate sa aplikacijom dok je klasa povezana, videćete kada se svaka funkcija poziva, njene argumente i vraćenu vrednost.
Iz izvornog koda možete videti da funkcija checkPin prima String kao argument i vraća boolean. Hajde da funkcija uvek vraća true:
Sada, ako napišete bilo šta u tekstualno polje za PIN kod, videćete da je bilo šta validno:
Pretražite i odštampajte žive instance specifične Java klase, navedene punim imenom klase. Rezultat je pokušaj dobijanja string vrednosti za otkrivenu objection koja bi obično sadržala vrednosti svojstava za objekat.
Možete se igrati sa keystore-om i intencijama koristeći:
Na dnu liste možete videti frida:
Hajde da proverimo šta frida izvozi:
Takođe možete pretraživati i pisati unutar memorije sa objection:
Možete koristiti komandu sqlite
za interakciju sa sqlite bazama podataka.
Metode za hooking ponekad sruše aplikaciju (to je takođe zbog Frida).
Ne možete koristiti instance klasa za pozivanje funkcija instance. I ne možete kreirati nove instance klasa i koristiti ih za pozivanje funkcija.
Ne postoji prečica (kao što je ona za sslpinnin) za hooking svih uobičajenih kripto metoda koje koristi aplikacija da biste videli šifrovani tekst, običan tekst, ključeve, IV-ove i korišćene algoritme.
Bug bounty saveta: prijavite se za Intigriti, premium bug bounty platformu koju su kreirali hakeri, za hakere! Pridružite nam se na https://go.intigriti.com/hacktricks danas, i počnite da zarađujete nagrade do $100,000!
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)