.. | ||
exploiting-content-providers.md | ||
README.md |
Drozer Tutoriaal
Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
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!
{% embed url="https://go.intigriti.com/hacktricks" %}
APKs om te toets
Dele van hierdie tutoriaal 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
Die 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. |
run MODULE | Voer 'n drozer-module uit |
exploit | Drozer kan exploits skep om op die toestel uit te voer. drozer exploit list |
payload | Die exploits 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: Dalk kan jy 'n aktiwiteit begin en 'n soort van magtiging omseil wat jou behoort te keer om dit te begin.
- Inhoudsverskaffers: Dalk kan jy toegang verkry tot private data 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
{% endcode %}
Jy kan ook 'n uitgevoerde aktiwiteit begin vanaf 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
Inhoudsverskaffers
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"/>
{% endcode %}
Binne die kode soek 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" sal stuur, dan "msg.arg1" en "msg.arg2", 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
Uitsaai-Ontvangers
In die Android basiese inligting afdeling kan jy sien wat 'n Uitsaai-Ontvanger is.
Nadat jy hierdie Uitsaai-Ontvangers ontdek het, moet jy die kode nagaan. Gee spesiale aandag aan die onReceive
funksie aangesien dit die ontvangste boodskappe sal hanteer.
Ontdek alle uitsaai-ontvangers
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 debuggeable
'n Produksie APK moet nooit debuggeable wees. Dit beteken dat jy 'n java debugger kan koppel aan die lopende aansoek, dit in tyd lopende kan inspekteer, breekpunte kan stel, 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 debuggable is en inspuiting van tydverloopkode.
Wanneer 'n aansoek debuggable is, sal dit in die Manifes verskyn:
<application theme="@2131296387" debuggable="true"
Jy kan alle toepassings met foutopsporing vind met Drozer:
run app.package.debuggable
Tutoriale
- https://resources.infosecinstitute.com/android-penetration-tools-walkthrough-series-drozer/#gref
- https://github.com/mgcfish/mobiletools/blob/master/_posts/2016-08-01-Using-Drozer-for-application-security-assessments.md
- https://www.hackingarticles.in/android-penetration-testing-drozer/
- https://medium.com/@ashrafrizvi3006/how-to-test-android-application-security-using-drozer-edc002c5dcac
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!
{% embed url="https://go.intigriti.com/hacktricks" %}
Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling van eksklusiewe NFTs
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.