Drozer Tutorial
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 noch heute bei unter 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 dem Drozer-Dokumentations-PDF** extrahiert.**
Installation
Installieren Sie den Drozer-Client auf Ihrem Host. Laden Sie ihn von den neuesten Versionen herunter.
Lade die drozer APK von den neuesten Veröffentlichungen herunter und installiere sie. Im Moment ist es diese.
Starten des Servers
Der Agent läuft auf Port 31415, wir müssen Port-Weiterleitung durchführen, um die Kommunikation zwischen dem Drozer-Client und dem Agent herzustellen. Hier ist der Befehl dazu:
Schließlich starten Sie die Anwendung und drücken Sie unten auf "ON"
Und verbinden Sie sich damit:
Interessante Befehle
Befehle | Beschreibung |
Help MODULE | Zeigt die Hilfe des ausgewählten Moduls an |
list | Zeigt eine Liste aller drozer Module, die in der aktuellen Sitzung ausgeführt werden können. Dies verbirgt Module, für die Sie nicht die entsprechenden Berechtigungen haben. |
shell | Startet eine interaktive Linux-Shell auf dem Gerät im Kontext des Agents. |
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 in Sequenz aus. |
module | Sucht und installiert zusätzliche drozer-Module aus dem Internet. |
unset | Entfernt eine benannte Variable, die drozer an alle von ihm gestarteten Linux-Shells übergibt. |
set | Speichert einen Wert in einer Variablen, der als Umgebungsvariable an alle von drozer gestarteten Linux-Shells übergeben wird. |
shell | Startet eine interaktive Linux-Shell auf dem Gerät im Kontext des Agents. |
run MODULE | Führt ein drozer-Modul aus |
exploit | Drozer kann Exploits erstellen, die auf dem Gerät ausgeführt werden sollen. |
payload | Die Exploits benötigen ein Payload. |
Paket
Finde den Namen des Pakets, indem du nach einem Teil des Namens filterst:
Grundlegende Informationen zum Paket:
Lesen Sie Manifest:
Angriffsfläche des Pakets:
Aktivitäten: Möglicherweise können Sie eine Aktivität starten und eine Art Autorisierung umgehen, die Sie daran hindern sollte, sie zu starten.
Inhaltsanbieter: Möglicherweise können Sie auf private Daten zugreifen oder eine Schwachstelle ausnutzen (SQL-Injection oder Pfadtraversierung).
Dienste:
is debuggable: Weitere Informationen
Aktivitäten
Der Wert "android:exported" eines exportierten Aktivitätskomponenten ist in der AndroidManifest.xml-Datei auf "true" gesetzt:
Auflisten exportierter Aktivitäten:
Aktivität starten:
Möglicherweise können Sie eine Aktivität starten und eine Art Autorisierung umgehen, die Sie daran hindern sollte, sie zu starten.
Sie können auch eine exportierte Aktivität von adb aus starten:
PackageName ist com.example.demo
Exportierter ActivityName ist com.example.test.MainActivity
Inhaltanbieter
Dieser Beitrag war zu groß, um hier zu sein, also können Sie darauf auf seiner eigenen Seite zugreifen.
Dienste
Ein exportierter Dienst wird in der Manifest.xml deklariert:
Im Code nach der **handleMessage
** Funktion suchen, die die Nachricht empfangen wird:
Dienst auflisten
Mit einem Dienst interagieren
Beispiel
Werfen Sie einen Blick auf die drozer Hilfe für app.service.send
:
Beachten Sie, dass Sie zuerst die Daten innerhalb von "msg.what", dann "msg.arg1" und "msg.arg2" senden werden. 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)
Broadcast Receiver
Im Abschnitt Grundlegende Informationen zu Android 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 Funktion onReceive
, da sie die empfangenen Nachrichten verarbeitet.
Alle Broadcast-Empfänger erkennen
Überprüfen Sie die Broadcast-Empfänger einer App
Broadcast Interaktionen
Nachricht senden
In diesem Beispiel, bei dem der FourGoats apk Content Provider missbraucht wird, können Sie eine beliebige SMS an ein nicht-premium Ziel ohne die Erlaubnis des Benutzers senden.
Wenn Sie den Code lesen, müssen die Parameter "phoneNumber" und "message" an den Content Provider gesendet werden.
Ist debugfähig
Eine Produktions-APK sollte niemals debugfähig sein. Das bedeutet, dass Sie einen Java-Debugger an die laufende Anwendung anhängen, sie zur Laufzeit inspizieren, Haltepunkte setzen, schrittweise vorgehen, Variablenwerte sammeln und sie sogar ändern können. InfoSec Institute hat einen ausgezeichneten Artikel über das tiefergehende Eindringen, wenn Ihre Anwendung debugfähig ist und das Einschleusen von Code zur Laufzeit.
Wenn eine Anwendung debugfähig ist, wird sie im Manifest angezeigt:
Du kannst alle debuggbaren Anwendungen mit Drozer finden:
Tutorials
Weitere Informationen
Bug-Bounty-Tipp: Registrieren Sie sich bei Intigriti, einer Premium-Bug-Bounty-Plattform, die von Hackern für Hacker erstellt wurde! Treten Sie uns noch heute bei https://go.intigriti.com/hacktricks bei und beginnen Sie, Prämien von bis zu 100.000 $ zu verdienen!
Last updated