Drozer Tutorial
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Bug-Bounty-Tipp: Melden Sie sich an bei Intigriti, einer Premium-Bug-Bounty-Plattform, die von Hackern für Hacker erstellt wurde! Treten Sie uns heute bei https://go.intigriti.com/hacktricks und beginnen Sie, Prämien von bis zu $100.000 zu verdienen!
APKs zum Testen
Sieve (von mrwlabs)
Teile dieses Tutorials wurden aus der Drozer-Dokumentation pdf** extrahiert.**
Installation
Installieren Sie den Drozer-Client auf Ihrem Host. Laden Sie ihn von den neuesten Versionen herunter.
Laden Sie die drozer APK von den neueste Versionen herunter und installieren Sie sie. Im Moment ist es dieses.
Starting the Server
Agent läuft auf Port 31415, wir müssen Port-Forwarding einrichten, um die Kommunikation zwischen dem Drozer Client und Agent herzustellen, hier ist der Befehl dazu:
Schließlich starten Sie die Anwendung und drücken Sie die Schaltfläche "EIN"
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F365789996-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FoC7kdpmNTJZIcPU2vQzG%252Fuploads%252Fgit-blob-ab1786558a7b9d62724edd85419268e3c891bad5%252Fimage%2520%28459%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=c9b0182d&sv=1)
Und verbinden Sie sich damit:
Interessante Befehle
Befehle | Beschreibung |
Help MODULE | Zeigt die Hilfe des ausgewählten Moduls |
list | Zeigt eine Liste aller drozer-Module, die in der aktuellen Sitzung ausgeführt werden können. Dies blendet Module aus, für die Sie nicht die entsprechenden Berechtigungen haben. |
shell | Startet eine interaktive Linux-Shell auf dem Gerät, im Kontext des Agenten. |
clean | Entfernt temporäre Dateien, die von drozer auf dem Android-Gerät gespeichert wurden. |
load | Lädt eine Datei mit drozer-Befehlen und führt sie nacheinander aus. |
module | Findet und installiert zusätzliche drozer-Module aus dem Internet. |
unset | Entfernt eine benannte Variable, die drozer an alle Linux-Shells übergibt, die es startet. |
set | Speichert einen Wert in einer Variablen, die als Umgebungsvariable an alle von drozer gestarteten Linux-Shells übergeben wird. |
shell | Startet eine interaktive Linux-Shell auf dem Gerät, im Kontext des Agenten |
run MODULE | Führt ein drozer-Modul aus |
exploit | Drozer kann Exploits erstellen, die im Gerät ausgeführt werden. |
payload | Die Exploits benötigen eine Payload. |
Paket
Finden Sie den Namen des Pakets, indem Sie nach einem Teil des Namens filtern:
Grundlegende Informationen des Pakets:
Lese Manifest:
Angriffsfläche des Pakets:
Aktivitäten: Vielleicht kannst du eine Aktivität starten und eine Art von Autorisierung umgehen, die dich daran hindern sollte, sie zu starten.
Inhaltsanbieter: Vielleicht kannst du auf private Daten zugreifen oder eine Schwachstelle ausnutzen (SQL-Injection oder Path Traversal).
Dienste:
is debuggable: Mehr erfahren
Aktivitäten
Der Wert des exportierten Aktivitätskomponenten “android:exported” ist in der AndroidManifest.xml-Datei auf “true” gesetzt:
Liste exportierter Aktivitäten:
Startaktivität:
Vielleicht kannst du eine Aktivität starten und eine Art von Autorisierung umgehen, die dich daran hindern sollte, sie zu starten.
Sie können auch eine exportierte Aktivität von adb starten:
Paketname ist com.example.demo
Exportierte Aktivitätsname ist com.example.test.MainActivity
Content Providers
Dieser Beitrag war so umfangreich, dass er hier nicht passt, also kannst du ihn auf seiner eigenen Seite hier aufrufen.
Services
Ein exportierter Dienst wird in der Manifest.xml deklariert:
Überprüfen Sie im Code die **handleMessage
** Funktion, die die **Nachricht** empfängt:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F365789996-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FoC7kdpmNTJZIcPU2vQzG%252Fuploads%252Fgit-blob-f20e8ce2fc518cd80eb4ba6d3cc92921b98557d8%252Fimage%2520%2882%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7dab67b2&sv=1)
Listendienst
Interagieren Sie mit einem Dienst
Beispiel
Schauen Sie sich die drozer Hilfe für app.service.send
an:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F365789996-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FoC7kdpmNTJZIcPU2vQzG%252Fuploads%252Fgit-blob-b1c5a1a13c3d409442ea29b8a82310be8e29b742%252Fimage%2520%281079%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=d37c6699&sv=1)
Beachten Sie, dass Sie zuerst die Daten in "msg.what" senden, dann "msg.arg1" und "msg.arg2", Sie sollten im Code überprüfen, welche Informationen verwendet werden und wo.
Mit der Option --extra
können Sie etwas senden, das von "msg.replyTo" interpretiert wird, und mit --bundle-as-obj
erstellen Sie ein Objekt mit den bereitgestellten Details.
Im folgenden Beispiel:
what == 2354
arg1 == 9234
arg2 == 1
replyTo == object(string com.mwr.example.sieve.PIN 1337)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F365789996-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FoC7kdpmNTJZIcPU2vQzG%252Fuploads%252Fgit-blob-6046bf9a80645bab7a7591101301a9288f4783d8%252Fimage%2520%28647%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=4323da26&sv=1)
Broadcast-Empfänger
Im Abschnitt über grundlegende Android-Informationen können Sie sehen, was ein Broadcast-Empfänger ist.
Nachdem Sie diese Broadcast-Empfänger entdeckt haben, sollten Sie den Code von ihnen überprüfen. Achten Sie besonders auf die onReceive
-Funktion, da sie die empfangenen Nachrichten verarbeitet.
Alle Broadcast-Empfänger erkennen
Überprüfen Sie die Broadcast-Receiver einer App
Broadcast Interaktionen
Nachricht senden
In diesem Beispiel wird der FourGoats apk Content Provider missbraucht, um eine beliebige SMS an ein nicht-premium Ziel ohne Erlaubnis des Benutzers zu senden.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F365789996-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FoC7kdpmNTJZIcPU2vQzG%252Fuploads%252Fgit-blob-deb8d0d388e9fdc2f306cc84d13e3b79c623ac01%252Fimage%2520%28415%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=b3ac8a52&sv=1)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F365789996-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FoC7kdpmNTJZIcPU2vQzG%252Fuploads%252Fgit-blob-9fe1e166755bb71fc118787b447a1445b53eb4fd%252Fimage%2520%28573%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=d4d54ade&sv=1)
Wenn Sie den Code lesen, müssen die Parameter "phoneNumber" und "message" an den Content Provider gesendet werden.
Ist debuggeable
Eine Produktions-APK sollte niemals debuggeable sein. Das bedeutet, dass Sie einen Java-Debugger an die laufende Anwendung anhängen, sie zur Laufzeit inspizieren, Haltepunkte setzen, Schritt für Schritt vorgehen, Variablenwerte sammeln und sogar ändern können. Das InfoSec-Institut hat einen ausgezeichneten Artikel darüber, wie man tiefer gräbt, wenn Ihre Anwendung debuggeable ist und zur Laufzeit Code injiziert.
Wenn eine Anwendung debuggeable ist, wird sie im Manifest angezeigt:
Sie können alle debugbaren Anwendungen mit Drozer finden:
Tutorials
Mehr Informationen
Bug-Bounty-Tipp: Melden Sie sich an für Intigriti, eine Premium-Bug-Bounty-Plattform, die von Hackern für Hacker erstellt wurde! Treten Sie uns bei https://go.intigriti.com/hacktricks heute bei und beginnen Sie, Prämien von bis zu 100.000 $ zu verdienen!
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated