Drozer Tutorial

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Bug bounty wenk: teken aan vir Intigriti, 'n premium bug bounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin om belonings te verdien tot $100,000!

APKs om te toets

Dele van hierdie handleiding is onttrek uit die Drozer dokumentasie pdf.

Installasie

Installeer Drozer Klient binne jou gasheer. Laai dit af van die nuutste vrylatings.

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

Laai die drozer APK af van die nuutste vrystellings. Op hierdie oomblik is dit hierdie.

adb install drozer.apk

Begin die Bediener

Agent hardloop op poort 31415, ons moet poort deurstuur om die kommunikasie tussen die Drozer-kliënt en Agent te vestig, hier is die bevel om dit te doen:

adb forward tcp:31415 tcp:31415

Uiteindelik, begin die toepassing en druk op die onderste "AAN"

En verbind daarmee:

drozer console connect

Interessante Opdragte

Opdragte

Beskrywing

Help MODULE

Wys die hulp van die gekose module

lys

Wys 'n lys van alle drozer-modules wat uitgevoer kan word in die huidige sessie. Dit verberg modules waarvoor jy nie die toepaslike regte het om uit te voer nie.

shell

Begin 'n interaktiewe Linux-skoot op die toestel, in die konteks van die Agent.

skoon

Verwyder tydelike lêers wat deur drozer op die Android-toestel gestoor word.

laai

Laai 'n lêer wat drozer-opdragte bevat en voer hulle in volgorde uit.

module

Vind en installeer addisionele drozer-modules van die Internet.

unset

Verwyder 'n benoemde veranderlike wat drozer aan enige Linux-skote wat dit aanroep, oordra.

stel

Berg 'n waarde op in 'n veranderlike wat as 'n omgewingsveranderlike aan enige Linux-skote wat deur drozer aangeroep word, oorgedra sal word.

shell

Begin 'n interaktiewe Linux-skoot op die toestel, in die konteks van die Agent.

hardloop MODULE

Voer 'n drozer-module uit

uitbuit

Drozer kan uitbuite skep om op die toestel uit te voer. drozer exploit list

lading

Die uitbuite benodig 'n lading. drozer payload list

Pakket

Vind die naam van die pakket deur te filter op 'n deel van die naam:

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

Basiese Inligting van die pakket:

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

Lees Manifest:

run app.package.manifest jakhar.aseem.diva

Aanvalsoppervlak van die pakket:

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
  • Aktiwiteite: Miskien kan jy 'n aktiwiteit begin en 'n soort toestemming omseil wat jou behoort te keer om dit te begin.

  • Inhoudsverskaffers: Miskien kan jy privaat data benader of 'n kwesbaarheid uitbuit (SQL Injection of Padtraversal).

  • Dienste:

  • is debuggable: Leer meer

Aktiwiteite

'n Uitgevoerde aktiwiteitskomponent se "android:exported" waarde is ingestel op "waar" in die AndroidManifest.xml-lêer:

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

Lys uitgevoerde aktiwiteite:

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

Begin aktiwiteit:

Miskien kan jy 'n aktiwiteit begin en 'n soort van magtiging omseil wat jou behoort te keer om dit te begin.

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

Jy kan ook 'n uitgevoerde aktiwiteit begin van adb:

  • PakketNaam is com.example.demo

  • Uitgevoerde AktiwiteitNaam is com.example.test.MainActivity

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

Inligtingsverskaffers

Hierdie pos was te groot om hier te wees, so jy kan dit op sy eie bladsy hier besoek.

Dienste

'n Uitgevoerde diens word binne die Manifest.xml verklaar:

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

Binne die kode kontroleer vir die **handleMessage**funksie wat die boodskap sal ontvang:

Lysdiens

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

Interageer met 'n diens

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

Voorbeeld

Neem 'n kykie na die drozer hulp vir app.service.send:

Let daarop dat jy eers die data binne "msg.what", dan "msg.arg1" en "msg.arg2" sal stuur, jy moet binne die kode ondersoek watter inligting gebruik word en waar. Deur die --extra opsie te gebruik, kan jy iets stuur wat geïnterpreteer word deur "msg.replyTo", en deur --bundle-as-obj te gebruik, skep jy 'n objek met die verskafte besonderhede.

In die volgende voorbeeld:

  • 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

Uitsaaionontvangers

In die Android basiese inligting afdeling kan jy sien wat 'n Uitsaaiontvanger is.

Nadat jy hierdie Uitsaaiontvangers ontdek het, moet jy die kode nagaan. Gee spesiale aandag aan die onReceive-funksie aangesien dit die ontvangste boodskappe sal hanteer.

Ontdek alle uitsaaiontvangers

run app.broadcast.info #Detects all

Kontroleer uitsaai-ontvangers van 'n program

#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

Uitsaai Interaksies

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

Stuur 'n boodskap

In hierdie voorbeeld van die misbruik van die FourGoats apk Inhoudverskaffer kan jy 'n willekeurige SMS stuur na enige nie-premium bestemming sonder om die gebruiker om toestemming te vra.

As jy die kode lees, moet die parameters "phoneNumber" en "message" na die Inhoudverskaffer gestuur word.

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!"

Is dit foutopspoorbaar

'n Produksie APK moet nooit foutopspoorbaar wees. Dit beteken dat jy 'n Java-foutopspoorer kan koppel aan die lopende aansoek, dit tydens uitvoering kan ondersoek, breekpunte kan instel, stap vir stap kan gaan, veranderlike waardes kan versamel en selfs kan verander. InfoSec-instituut het 'n uitstekende artikel oor dieper delf wanneer jou aansoek foutopspoorbaar is en tydens uitvoering kode inspuit.

Wanneer 'n aansoek foutopspoorbaar is, sal dit in die Manifes verskyn:

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

Jy kan alle toepassings wat gedebug kan word vind met Drozer:

run app.package.debuggable

Tutoriale

Meer inligting

Bug bounty wenk: teken aan vir Intigriti, 'n premium bug bounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin om belonings tot $100,000 te verdien!

Leer AWS hakwerk van niks tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated