AVD - Android Virtual Device

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Vielen Dank an @offsecjay für seine Hilfe bei der Erstellung dieses Inhalts.

Was ist

Android Studio ermöglicht es, virtuelle Maschinen von Android auszuführen, die Sie zum Testen von APKs verwenden können. Um sie zu verwenden, benötigen Sie:

In Windows (in meinem Fall) nach der Installation von Android Studio hatte ich die SDK-Tools installiert in: C:\Users\<Benutzername>\AppData\Local\Android\Sdk\tools

Auf dem Mac können Sie die SDK-Tools herunterladen und sie im PATH ausführen:

brew tap homebrew/cask
brew install --cask android-sdk

Oder aus dem 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.

Für die Java-Probleme:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home

GUI

Virtuelle Maschine vorbereiten

Wenn Sie Android Studio installiert haben, können Sie einfach die Hauptprojektansicht öffnen und auf folgendes zugreifen: Tools --> AVD Manager.

Klicken Sie dann auf Virtuelles Gerät erstellen

Wählen Sie das Telefon aus, das Sie verwenden möchten und klicken Sie auf Weiter.

Wenn Sie ein Telefon mit vorinstalliertem Play Store benötigen, wählen Sie eines mit dem Play Store-Symbol darauf aus!

In der aktuellen Ansicht können Sie das Android-Image auswählen und herunterladen, das auf dem Telefon ausgeführt wird:

Wählen Sie es aus und klicken Sie auf das Download Symbol neben dem Namen, falls es noch nicht heruntergeladen ist (warten Sie jetzt, bis das Image heruntergeladen ist). Sobald das Image heruntergeladen ist, wählen Sie einfach Weiter und Fertig.

Die virtuelle Maschine wird erstellt. Jetzt wird sie jedes Mal, wenn Sie auf den AVD-Manager zugreifen, vorhanden sein.

Virtuelle Maschine starten

Um sie zu starten, drücken Sie einfach die Start-Schaltfläche.

Befehlszeilentool

Zunächst müssen Sie entscheiden, welches Telefon Sie verwenden möchten, um die Liste der möglichen Telefone anzuzeigen, führen Sie aus:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list device

d: 0 or "automotive_1024p_landscape"
Name: Automotive (1024p landscape)
OEM : Google
Tag : android-automotive-playstore
---------
id: 1 or "Galaxy Nexus"
Name: Galaxy Nexus
OEM : Google
---------
id: 2 or "desktop_large"
Name: Large Desktop
OEM : Google
Tag : android-desktop
---------
id: 3 or "desktop_medium"
Name: Medium Desktop
OEM : Google
Tag : android-desktop
---------
id: 4 or "Nexus 10"
Name: Nexus 10
OEM : Google
[...]

Sobald Sie sich für den Namen des Geräts entschieden 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:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list

Und laden Sie denjenigen (oder alle) herunter, den Sie verwenden möchten, mit:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"

Sobald Sie das Android-Image heruntergeladen haben, das Sie verwenden möchten, können Sie mit folgendem Befehl alle heruntergeladenen Android-Images auflisten:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list target
----------
id: 1 or "android-28"
Name: Android API 28
Type: Platform
API level: 28
Revision: 6
----------
id: 2 or "android-29"
Name: Android API 29
Type: Platform
API level: 29
Revision: 4

Zu diesem Zeitpunkt haben Sie sich für das Gerät entschieden, das Sie verwenden möchten, und das Android-Image heruntergeladen, sodass Sie die virtuelle Maschine erstellen können, indem Sie:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat -v create avd -k "system-images;android-28;google_apis;x86_64" -n "AVD9" -d "Nexus 5X"

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 hat. Jetzt kannst du die erstellten virtuellen Maschinen auflisten:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list avd

Name: AVD9
Device: Nexus 5X (Google)
Path: C:\Users\cpolo\.android\avd\AVD9.avd
Target: Google APIs (Google Inc.)
Based on: Android API 28 Tag/ABI: google_apis/x86_64

The following Android Virtual Devices could not be loaded:
Name: Pixel_2_API_27
Path: C:\Users\cpolo\.android\avd\Pixel_2_API_27_1.avd
Error: Google pixel_2 no longer exists as a device

Virtuelle Maschine ausführen

Wir haben bereits gesehen, wie Sie die erstellten virtuellen Maschinen auflisten können, aber Sie können sie auch mit folgendem Befehl auflisten:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27

Du kannst einfach eine erstellte virtuelle Maschine ausführen, indem du:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"

Oder Sie können eine virtuelle Maschine wie folgt ausführen, indem Sie fortgeschrittenere Optionen verwenden:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system

Befehlszeilenoptionen

Es gibt jedoch viele verschiedene nützliche Befehlszeilenoptionen, die Sie verwenden können, um eine virtuelle Maschine zu starten. Nachfolgend finden Sie einige interessante Optionen, aber Sie können hier eine vollständige Liste finden

Boot

  • -snapshot name : Starten Sie die VM-Snapshot

  • -snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img : Listet alle aufgezeichneten Snapshots auf

Netzwerk

  • -dns-server 192.0.2.0, 192.0.2.255 : Ermöglicht die Angabe der DNS-Server für die VM durch Kommas getrennt.

  • -http-proxy 192.168.1.12:8080 : Ermöglicht die Angabe eines HTTP-Proxys (sehr nützlich, um den Datenverkehr mit Burp zu erfassen)

  • -port 5556 : Legt die TCP-Portnummer fest, die für die Konsole und adb verwendet wird.

  • -ports 5556,5559 : Legt die TCP-Ports für die Konsole und adb fest.

  • -tcpdump /path/dumpfile.cap : Erfasst den gesamten Datenverkehr in einer Datei

System

  • -selinux {disabled|permissive} : Legt das Security-Enhanced Linux-Sicherheitsmodul auf einem Linux-Betriebssystem entweder auf deaktiviert oder permissiv fest.

  • -timezone Europe/Paris : Legt die Zeitzone für das virtuelle Gerät fest

  • -screen {touch(default)|multi-touch|o-touch} : Legt den emulierten Touchscreen-Modus fest.

  • -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.

Rooting eines Play Store-Geräts

Wenn Sie ein Gerät mit Play Store heruntergeladen haben, können Sie nicht direkt rooten, und Sie erhalten diese Fehlermeldung

$ adb root
adbd cannot run as root in production builds

Verwendung von rootAVD mit Magisk konnte ich es rooten (folge zum Beispiel diesem Video oder diesem).

Burp-Zertifikat installieren

Überprüfen Sie die folgende Seite, um zu erfahren, wie Sie ein benutzerdefiniertes CA-Zertifikat installieren:

pageInstall Burp Certificate

Nette AVD-Optionen

Ein Schnappschuss machen

Sie können die GUI verwenden, um jederzeit einen Schnappschuss der VM zu machen:

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated