hacktricks/mobile-pentesting/android-app-pentesting/avd-android-virtual-device.md

11 KiB

AVD - Android Virtuele Toestel

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Baie dankie aan @offsecjay vir sy hulp tydens die skep van hierdie inhoud.

Wat is

Android Studio maak dit moontlik om virtuele masjiene van Android te hardloop wat jy kan gebruik om APKs te toets. Om hulle te gebruik, sal jy benodig:

In Windows (in my geval) nadat Android Studio geïnstalleer is het ek die SDK-gereedskap geïnstalleer in: C:\Users\<Gebruikersnaam>\AppData\Local\Android\Sdk\tools

In mac kan jy die SDK-gereedskap aflaai en hulle in die PAD hê deur te hardloop:

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

Of vanaf Android Studio GUI soos aangedui in https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a wat hulle sal installeer in ~/Library/Android/sdk/cmdline-tools/latest/bin/ en ~/Library/Android/sdk/platform-tools/ en ~/Library/Android/sdk/emulator/

Vir die Java probleme:

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

GUI

Maak Virtuele Masjien Gereed

Indien jy Android Studio geïnstalleer het, kan jy net die hoofprojek-aansig oopmaak en toegang kry tot: Tools --> AVD-bestuurder.

Klik dan op Skep Virtuele Toestel

kies die foon wat jy wil gebruik en klik op Volgende.

{% hint style="warning" %} Indien jy 'n foon met die Play Store geïnstalleer benodig, kies een met die Play Store-ikoon daarop!

{% endhint %}

In die huidige aansig sal jy in staat wees om die Android-beeld te kies en aflaai waarop die foon gaan loop:

Kies dit en as dit nie afgelaai is nie, klik op die Aflaai simbool langs die naam (wag nou totdat die beeld afgelaai is).
Sodra die beeld afgelaai is, kies net Volgende en Klaar.

Die virtuele masjien sal geskep word. Elke keer as jy die AVD-bestuurder toegang, sal dit beskikbaar wees.

Hardloop Virtuele Masjien

Om dit te hardloop druk net op die Begin-knoppie.

Opdraglyn-hulpmiddel

Eerstens moet jy besluit watter foon jy wil gebruik, om die lys van moontlike telefone te sien, voer uit:

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
[...]

Sodra jy die naam van die toestel wat jy wil gebruik, besluit het, moet jy besluit watter Android-beeld jy in hierdie toestel wil hardloop.
Jy kan al die opsies lys deur sdkmanager te gebruik:

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

En laai af die een (of almal) wat jy wil gebruik met:

{% code overflow="wrap" %}

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

{% endcode %}

Nadat jy die Android-beeld afgelaai het wat jy wil gebruik, kan jy alle afgelaai Android-beelde lys met:

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

Op hierdie oomblik het jy besluit watter toestel jy wil gebruik en jy het die Android-beeld afgelaai, so jy kan die virtuele masjien skep deur die volgende te gebruik:

{% code overflow="wrap" %}

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"

{% endcode %}

In die laaste opdrag het ek 'n VM genaamd "AVD9" geskep met die toestel "Nexus 5X" en die Android-beeld "system-images;android-28;google_apis;x86_64".
Nou kan jy die virtuele masjiene lys wat jy geskep het met:

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

Hardloop Virtuele Masjien

Ons het reeds gesien hoe jy die geskepte virtuele masjiene kan lys, maar jy kan hulle ook lys deur gebruik te maak van:

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

Jy kan eenvoudig enige virtuele masjien wat geskep is, hardloop met:

{% code overflow="wrap" %}

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

{% endcode %}

Of deur meer gevorderde opsies te gebruik, kan jy 'n virtuele masjien hardloop soos:

{% code overflow="wrap" %}

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

{% endcode %}

Opdraggewerf-opsies

Daar is egter 'n baie verskillende opdraglyn nuttige opsies wat jy kan gebruik om 'n virtuele masjien te begin. Hieronder kan jy 'n paar interessante opsies vind, maar kan 'n volledige lys hier vind

Begin

  • -snapshot name : Begin VM oomblikopname
  • -snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img : Lys al die opnames wat gemaak is

Netwerk

  • -dns-server 192.0.2.0, 192.0.2.255 : Laat toe om komma geskei die DNS-bedieners aan te dui aan die VM.
  • -http-proxy 192.168.1.12:8080 : Laat toe om 'n HTTP-proksi aan te dui om te gebruik (baie nuttig om die verkeer te onderskep met Burp)
  • -port 5556 : Stel die TCP-poortnommer in wat gebruik word vir die konsole en adb.
  • -ports 5556,5559 : Stel die TCP-poorte in wat gebruik word vir die konsole en adb.
  • -tcpdump /path/dumpfile.cap : Vang al die verkeer in 'n lêer

Stelsel

  • -selinux {disabled|permissive} : Stel die Security-Enhanced Linux-sekuriteitsmodule in om óf uitgeskakel óf permissief modus te wees op 'n Linux-bedryfstelsel.
  • -timezone Europe/Paris : Stel die tydsone vir die virtuele toestel in
  • -screen {touch(default)|multi-touch|o-touch} : Stel die nagebootste aanraakskaakskermmodus in.
  • -writable-system : Gebruik hierdie opsie om 'n skryfbare stelselbeeld gedurende jou nabootsingssessie te hê. Jy sal ook adb root; adb remount moet hardloop. Dit is baie nuttig om 'n nuwe sertifikaat in die stelsel te installeer.

Rooting 'n Play Store-toestel

As jy 'n toestel met Play Store afgelaai het, sal jy nie direk wortel kan kry nie, en jy sal hierdie foutboodskap kry

$ adb root
adbd cannot run as root in production builds

Gebruik rootAVD met Magisk ek was in staat om dit te root (volg byvoorbeeld hierdie video of hierdie een).

Installeer Burp-sertifikaat

Kyk na die volgende bladsy om te leer hoe om 'n aangepaste CA-sertifikaat te installeer:

{% content-ref url="install-burp-certificate.md" %} install-burp-certificate.md {% endcontent-ref %}

Lekker AVD-opsies

Neem 'n Oomblikopname

Jy kan die GUI gebruik om enige tyd 'n oomblikopname van die VM te neem:

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: