Objection Tutorial

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

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!

Uvod

objection - Runtime Mobile Exploration

Objection je alat za istraživanje mobilnih aplikacija u realnom vremenu, pokretan od strane Fride. 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 osnovne 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:

Ili sa njegovog originalnog repozitorijuma (preuzmite app-release.apk)

Instalacija

pip3 install objection

Povezivanje

Napravite redovnu ADB konekciju i pokrenite frida server na uređaju (i proverite da li frida radi i na klijentu i na serveru).

Ako koristite root-ovan 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

Započ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 hukujete metod klase a znate samo ime klase. Možete koristiti ovu funkciju da pretražite koji modul poseduje klasu i zatim hukujete njen metod.

Hukovanje je jednostavno

Hukovanje (praćenje) metoda

Iz izvornog koda aplikacije znamo da se funkcija sum() iz klase MainActivity pokreće svake sekunde. Pokušajmo da izbacimo sve moguće informacije svaki put kada se funkcija pozove (argumente, povratnu vrednost i stek poziva):

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

Hakovanje (praćenje) 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 hakovana, videćete kada se svaka funkcija poziva, njeni argumenti 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 žive 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 Fride).

  • 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) za hakovanje svih zajedničkih kripto metoda koje koristi aplikacija kako biste videli šifrovani tekst, običan tekst, ključeve, IV-e i korišćene algoritme.

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!

Naučite hakovanje AWS-a od početnika do stručnjaka sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated