AVD - Android Virtual Device
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Vielen Dank an @offsecjay für seine Hilfe bei der Erstellung dieses Inhalts.
Android Studio ermöglicht es, virtuelle Maschinen von Android auszuführen, die du zum Testen von APKs verwenden kannst. Um sie zu nutzen, benötigst du:
Die Android SDK-Tools - Hier herunterladen.
Oder Android Studio (mit Android SDK-Tools) - Hier herunterladen.
In Windows (in meinem Fall) nach der Installation von Android Studio hatte ich die SDK-Tools installiert in: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
In mac kannst du die SDK-Tools herunterladen und sie im PATH haben, indem du Folgendes ausführst:
Oder über die Android Studio GUI, wie in https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a angegeben, die sie in ~/Library/Android/sdk/cmdline-tools/latest/bin/
und ~/Library/Android/sdk/platform-tools/
und ~/Library/Android/sdk/emulator/
installieren wird.
Für die Java-Probleme:
Wenn Sie Android Studio installiert haben, können Sie einfach die Hauptprojektansicht öffnen und auf: Tools --> AVD Manager.
Klicken Sie dann auf Create Virtual Device
Wählen Sie das Telefon aus, das Sie verwenden möchten und klicken Sie auf Next.
Wenn Sie ein Telefon mit installiertem Play Store benötigen, wählen Sie eines mit dem Play Store-Symbol aus!
In der aktuellen Ansicht können Sie das Android-Image auswählen und herunterladen, das das Telefon ausführen wird:
Wählen Sie es aus, und wenn es nicht heruntergeladen ist, klicken Sie auf das Download-Symbol neben dem Namen (warten Sie jetzt, bis das Image heruntergeladen ist).
Sobald das Image heruntergeladen ist, wählen Sie einfach Next
und Finish
.
Die virtuelle Maschine wird erstellt. Jetzt wird sie jedes Mal, wenn Sie auf den AVD-Manager zugreifen, vorhanden sein.
Um sie auszuführen, drücken Sie einfach die Starttaste.
Zunächst müssen Sie entscheiden, welches Telefon Sie verwenden möchten. Um die Liste der möglichen Telefone anzuzeigen, führen Sie aus:
Sobald Sie den Namen des Geräts, das Sie verwenden möchten, festgelegt haben, müssen Sie entscheiden, welches Android-Image Sie auf diesem Gerät ausführen möchten.
Sie können alle Optionen mit sdkmanager
auflisten:
Und lade diejenige (oder alle), die du verwenden möchtest, mit:
Sobald Sie das Android-Image heruntergeladen haben, das Sie verwenden möchten, können Sie alle heruntergeladenen Android-Images auflisten mit:
Zu diesem Zeitpunkt haben Sie das Gerät ausgewählt, das Sie verwenden möchten, und das Android-Image heruntergeladen, sodass Sie die virtuelle Maschine mit:
Im letzten Befehl habe ich eine VM mit dem Namen "AVD9" erstellt, die das Gerät "Nexus 5X" und das Android-Image "system-images;android-28;google_apis;x86_64" verwendet. Jetzt können Sie die virtuellen Maschinen, die Sie erstellt haben, mit folgendem Befehl auflisten:
Wir haben bereits gesehen, wie Sie die erstellten virtuellen Maschinen auflisten können, aber Sie können sie auch auflisten mit:
Sie können einfach jede erstellte virtuelle Maschine ausführen mit:
Oder indem Sie fortgeschrittenere Optionen verwenden, können Sie eine virtuelle Maschine wie folgt ausführen:
Es gibt jedoch eine Menge nützlicher Befehlszeilenoptionen, die Sie verwenden können, um eine virtuelle Maschine zu starten. Unten finden Sie einige interessante Optionen, aber Sie können eine vollständige Liste hier finden
Boot
-snapshot name
: VM-Snapshot starten
-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Alle aufgezeichneten Snapshots auflisten
Netzwerk
-dns-server 192.0.2.0, 192.0.2.255
: Ermöglicht die Angabe von durch Kommas getrennten DNS-Servern für die VM.
-http-proxy 192.168.1.12:8080
: Ermöglicht die Angabe eines HTTP-Proxys (sehr nützlich, um den Verkehr mit Burp zu erfassen)
-port 5556
: Setzt die TCP-Portnummer, die für die Konsole und adb verwendet wird.
-ports 5556,5559
: Setzt die TCP-Ports, die für die Konsole und adb verwendet werden.
-tcpdump /path/dumpfile.cap
: Erfasst den gesamten Verkehr in einer Datei
System
-selinux {disabled|permissive}
: Setzt das Security-Enhanced Linux-Sicherheitsmodul entweder auf deaktiviert oder permissiv auf einem Linux-Betriebssystem.
-timezone Europe/Paris
: Setzt die Zeitzone für das virtuelle Gerät
-screen {touch(default)|multi-touch|o-touch}
: Setzt den emulierten Touchscreen-Modus.
-writable-system
: Verwenden Sie diese Option, um während Ihrer Emulationssitzung ein beschreibbares Systemabbild zu haben. Sie müssen auch adb root; adb remount
ausführen. Dies ist sehr nützlich, um ein neues Zertifikat im System zu installieren.
Wenn Sie ein Gerät mit Play Store heruntergeladen haben, können Sie nicht direkt Root erhalten, und Sie erhalten diese Fehlermeldung
Using rootAVD with Magisk konnte ich es rooten (folgen Sie zum Beispiel diesem Video oder diesem hier).
Überprüfen Sie die folgende Seite, um zu lernen, wie man ein benutzerdefiniertes CA-Zertifikat installiert:
Install Burp CertificateSie können die GUI verwenden, um jederzeit einen Snapshot der VM zu erstellen:
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)