Drozer ist ein Sicherheitstest-Framework für Android.
Mit Drozer können Sie nach Sicherheitslücken in Apps und Geräten suchen, indem Sie die Rolle einer App übernehmen und mit der Android-Runtime, den IPC-Endpunkten anderer Apps und dem zugrunde liegenden Betriebssystem interagieren.
Drozer bietet Tools, mit denen Sie öffentliche Android-Exploits nutzen, teilen und verstehen können.
Drozer ist eine Open-Source-Software, die von WithSecure verwaltet wird und unter folgender Adresse heruntergeladen werden kann: https://labs.withsecure.com/tools/drozer/
Dies ist eine BETA-Version einer neu geschriebenen Drozer-Version. Diese Version wurde aktualisiert, um Python3 zu unterstützen.
Derzeit sind die folgenden bekannten Probleme vorhanden:
Um sicherzustellen, dass Drozer auf allen Systemen ausgeführt werden kann, wurde ein Docker-Container erstellt, der über einen funktionierenden Build von Drozer verfügt.
Sie können pip
oder pipx
(vorzugsweise, falls verfügbar) verwenden, um die neueste Version von Drozer von PyPI zu installieren:
pipx install drozer
Alternativ können Sie einzelne Releases von GitHub herunterladen und ausführen:
pipx install ./drozer- * .whl
Wenn Sie es noch nicht getan haben, können Sie Folgendes ausführen:
pipx ensurepath
um sicherzustellen, dass pipx
-installierte Pakete in Ihrem PATH
angezeigt werden
Um Drozer aus dem Quellcode zu erstellen, können Sie Folgendes ausführen.
git clone https://github.com/WithSecureLabs/drozer.git
cd drozer
pip install .
Um die nativen Android-Komponenten für ein bestimmtes SDK zu erstellen, können Sie die Umgebungsvariable ANDROID_SDK
auf den Pfad festlegen. Zum Beispiel:
Linux/macOS:
export ANDROID_SDK=/home/drozerUser/Android/Sdk/platforms/android-34/android.jar
Windows – PowerShell:
New-Item - Path Env:ANDROID_SDK - Value ' C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar '
Windows – cmd:
set ANDROID_SDK = " C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar "
Der Standort des verwendeten d8
Werkzeugs kann auch durch Setzen von D8
geändert werden.
Drozer kann mit Android Debug Bridge (adb) installiert werden.
Laden Sie hier den neuesten Drozer Agent herunter.
adb install drozer-agent.apk
Jetzt sollte die Drozer-Konsole auf Ihrem PC installiert sein und der Agent auf Ihrem Testgerät ausgeführt werden. Jetzt müssen Sie die beiden verbinden und schon können Sie mit der Erkundung beginnen.
Dazu nutzen wir den im Drozer-Agenten eingebetteten Server. Starten Sie zunächst den Agenten, wählen Sie die Option „Embedded Server“ und tippen Sie auf „Aktivieren“, um den Server zu starten. Sie sollten eine Benachrichtigung sehen, dass der Server gestartet wurde.
Befolgen Sie dann eine der folgenden Optionen.
Standardmäßig lauscht der Drozer-Agent auf allen Schnittstellen an Port 31415 auf eingehende TCP-Verbindungen. Um eine Verbindung zum Agenten herzustellen, führen Sie den folgenden Befehl aus:
drozer console connect --server <phone's IP address>
Wenn Sie den Docker-Container verwenden, wäre der entsprechende Befehl:
docker run --net host -it withsecurelabs/drozer console connect --server <phone's IP address>
In manchen Fällen ist die Verbindung zum Gerät über das Netzwerk möglicherweise nicht möglich. In diesen Szenarien können wir die Portweiterleitungsfunktionen von adb
nutzen, um eine Verbindung über USB herzustellen.
Zunächst müssen Sie eine geeignete Portweiterleitung einrichten, damit Ihr PC eine Verbindung zu einem TCP-Socket herstellen kann, der vom Agenten im Emulator oder auf dem Gerät geöffnet wurde. Standardmäßig verwendet Drozer Port 31415
adb forward tcp:31415 tcp:31415
Sie können jetzt eine Verbindung zum Drozer-Agenten herstellen, indem Sie eine Verbindung zu localhost
herstellen (oder einfach die Ziel-IP nicht angeben).
drozer console connect
Es sollte eine Drozer-Eingabeaufforderung angezeigt werden:
Selecting ebe9fcc0c47b28da (Google sdk_gphone64_x86_64 12)
.. ..:.
..o.. .r..
..a.. . ....... . ..nd
ro..idsnemesisand..pr
.otectorandroidsneme.
.,sisandprotectorandroids+.
..nemesisandprotectorandroidsn:.
.emesisandprotectorandroidsnemes..
..isandp,..,rotecyayandro,..,idsnem.
.isisandp..rotectorandroid..snemisis.
,andprotectorandroidsnemisisandprotec.
.torandroidsnemesisandprotectorandroid.
.snemisisandprotectorandroidsnemesisan:
.dprotectorandroidsnemesisandprotector.
drozer Console (v3.0.0)
dz>
Die Eingabeaufforderung bestätigt die Android-ID des Geräts, mit dem Sie eine Verbindung hergestellt haben, zusammen mit dem Hersteller, dem Modell und der Android-Softwareversion.
Sie können jetzt mit der Erkundung des Geräts beginnen.
Befehl | Beschreibung |
---|---|
laufen | Führt ein Drozer-Modul aus |
Liste | Zeigt eine Liste aller Drozer-Module an, die in der aktuellen Sitzung ausgeführt werden können. Dadurch werden Module ausgeblendet, für deren Ausführung Sie nicht über die entsprechenden Berechtigungen verfügen. |
Hülse | Starten Sie im Kontext des Agent-Prozesses eine interaktive Linux-Shell auf dem Gerät. |
CD | Mountet einen bestimmten Namespace als Stammverzeichnis der Sitzung, um zu vermeiden, dass der vollständige Name eines Moduls wiederholt eingegeben werden muss. |
sauber | Entfernen Sie temporäre Dateien, die von Drozer auf dem Android-Gerät gespeichert wurden. |
Mitwirkende | Zeigt eine Liste der Personen an, die zum Drozer-Framework und den auf Ihrem System verwendeten Modulen beigetragen haben. |
Echo | Text auf der Konsole ausgeben. |
Ausfahrt | Beenden Sie die Drozer-Sitzung. |
helfen | Hilfe zu einem bestimmten Befehl oder Modul anzeigen. |
laden | Laden Sie eine Datei mit Drozer-Befehlen und führen Sie diese nacheinander aus. |
Modul | Suchen und installieren Sie zusätzliche Drozer-Module aus dem Internet. |
Berechtigungen | Zeigt eine Liste der dem Drozer-Agenten erteilten Berechtigungen an. |
Satz | Speichern Sie einen Wert in einer Variablen, der als Umgebungsvariable an alle von Drozer erzeugten Linux-Shells übergeben wird. |
nicht gesetzt | Entfernen Sie eine benannte Variable, die Drozer an alle von ihm erzeugten Linux-Shells übergibt. |
Drozer wird unter einer 3-Klausel-BSD-Lizenz veröffentlicht. Ausführliche Informationen finden Sie unter LIZENZ.
Drozer ist Open-Source-Software, die durch Beiträge der Community großartig gemacht wurde.
Den vollständigen Quellcode, die Möglichkeit, Fehler zu melden, Funktionen vorzuschlagen und Patches beizutragen, finden Sie in unserem Github-Projekt:
https://github.com/WithSecureLabs/drozer
Hier können Fehlerberichte, Funktionswünsche, Kommentare und Fragen eingereicht werden.