11 KiB
AVD - Android Virtual Device
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Hvala puno @offsecjay na pomoći prilikom kreiranja ovog sadržaja.
Šta je
Android Studio omogućava pokretanje virtuelnih mašina Android koje možete koristiti za testiranje APK-ova. Da biste ih koristili, biće vam potrebni:
- Android SDK alati - Preuzmite ovde.
- Ili Android Studio (sa Android SDK alatima) - Preuzmite ovde.
Na Windows-u (u mom slučaju) nakon instalacije Android Studio imao sam SDK alate instalirane u: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
Na Mac-u možete preuzeti SDK alate i imati ih u PATH-u pokretanjem:
brew tap homebrew/cask
brew install --cask android-sdk
Ili iz Android Studio GUI kao što je navedeno u https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a što će ih instalirati u ~/Library/Android/sdk/cmdline-tools/latest/bin/
i ~/Library/Android/sdk/platform-tools/
i ~/Library/Android/sdk/emulator/
Za Java probleme:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
GUI
Pripremite Virtuelnu Mašinu
Ako ste instalirali Android Studio, možete jednostavno otvoriti glavni prikaz projekta i pristupiti: Tools --> AVD Manager.
Zatim, kliknite na Create Virtual Device
izaberite telefon koji želite da koristite i kliknite na Next.
{% hint style="warning" %} Ako vam je potreban telefon sa instaliranim Play Store-om, izaberite onaj sa ikonom Play Store-a!
{% endhint %}U trenutnom prikazu moći ćete da izaberete i preuzmete Android sliku koju će telefon koristiti:
Dakle, izaberite je i ako nije preuzeta, kliknite na simbol Download pored imena (sada sačekajte dok se slika preuzme).
Kada se slika preuzme, jednostavno izaberite Next
i Finish
.
Virtuelna mašina će biti kreirana. Sada svaki put kada pristupite AVD manager-u, biće prisutna.
Pokrenite Virtuelnu Mašinu
Da biste je pokrenuli, jednostavno pritisnite Start button.
Alat za komandnu liniju
Prvo što treba da uradite je da odlučite koji telefon želite da koristite, da biste videli listu mogućih telefona, izvršite:
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
[...]
Kada odlučite ime uređaja koji želite da koristite, potrebno je da odlučite koju Android sliku želite da pokrenete na ovom uređaju.
Možete nabrojati sve opcije koristeći sdkmanager
:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
I preuzmite onaj (ili sve) koje želite da koristite sa:
{% 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 %}
Kada preuzmete Android sliku koju želite da koristite, možete prikazati sve preuzete Android slike sa:
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
U ovom trenutku ste odlučili koji uređaj želite da koristite i preuzeli ste Android sliku, tako da možete kreirati virtuelnu mašinu koristeći:
{% 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 %}
U poslednjoj komandi napravio sam VM nazvan "AVD9" koristeći uređaj "Nexus 5X" i Android sliku "system-images;android-28;google_apis;x86_64".
Sada možete prikazati virtuelne mašine koje ste napravili sa:
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
Pokrenite Virtuelnu Mašinu
Već smo videli kako možete da navedete kreirane virtuelne mašine, ali takođe ih možete navesti koristeći:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
Možete jednostavno pokrenuti bilo koju virtuelnu mašinu kreiranu koristeći:
{% 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 %}
Ili koristeći naprednije opcije možete pokrenuti virtuelnu mašinu kao:
{% 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 %}
Opcije komandne linije
Međutim, postoji mnogo različitih korisnih opcija komandne linije koje možete koristiti za pokretanje virtuelne mašine. Ispod možete pronaći neke zanimljive opcije, ali možete pronaći kompletnu listu ovde
Pokretanje
-snapshot name
: Pokreni VM snapshot-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Prikaži sve snimke koji su zabeleženi
Mreža
-dns-server 192.0.2.0, 192.0.2.255
: Omogućava da se navedu DNS serveri odvojeni zarezom za VM.-http-proxy 192.168.1.12:8080
: Omogućava da se navede HTTP proxy koji će se koristiti (veoma korisno za hvatanje saobraćaja koristeći Burp)-port 5556
: Postavi TCP broj porta koji se koristi za konzolu i adb.-ports 5556,5559
: Postavi TCP portove koji se koriste za konzolu i adb.-tcpdump /path/dumpfile.cap
: Hvata sav saobraćaj u datoteku
Sistem
-selinux {disabled|permissive}
: Postavi Security-Enhanced Linux sigurnosni modul na onemogućen ili permisivan režim na Linux operativnom sistemu.-timezone Europe/Paris
: Postavi vremensku zonu za virtuelni uređaj-screen {touch(default)|multi-touch|o-touch}
: Postavi emulirani režim dodirnog ekrana.-writable-system
: Koristite ovu opciju da imate zapisivu sistemsku sliku tokom vaše emulacije. Takođe ćete morati da pokreneteadb root; adb remount
. Ovo je veoma korisno za instalaciju novog sertifikata u sistem.
Rootovanje uređaja sa Play Store-a
Ako ste preuzeli uređaj sa Play Store-om, nećete moći da dobijete root direktno, i dobićete ovu poruku o grešci
$ adb root
adbd cannot run as root in production builds
Using rootAVD with Magisk uspeo sam da ga rootujem (pratite na primer ovaj video ili ovaj).
Instalirajte Burp Sertifikat
Proverite sledeću stranicu da biste saznali kako da instalirate prilagođeni CA sertifikat:
{% content-ref url="install-burp-certificate.md" %} install-burp-certificate.md {% endcontent-ref %}
Lepi AVD Opcije
Napravite Snimak
Možete koristiti GUI da napravite snimak VM-a u bilo kojem trenutku:
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.