11 KiB
AVD - Android Virtual Device
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Kup oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 Grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud.
Dziękujemy bardzo @offsecjay za pomoc przy tworzeniu tego treści.
Co to jest
Android Studio pozwala uruchamiać wirtualne maszyny Androida, które można użyć do testowania plików APK. Aby ich użyć, będziesz potrzebować:
- Narzędzia Android SDK - Pobierz tutaj.
- Lub Android Studio (z narzędziami Android SDK) - Pobierz tutaj.
W systemie Windows (w moim przypadku) po zainstalowaniu Android Studio narzędzia SDK są zainstalowane w: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
Na Macu możesz pobrać narzędzia SDK i mieć je w ścieżce, uruchamiając:
brew tap homebrew/cask
brew install --cask android-sdk
Lub z Android Studio GUI, jak wskazano w https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a, które zainstalują je w ~/Library/Android/sdk/cmdline-tools/latest/bin/
oraz ~/Library/Android/sdk/platform-tools/
i ~/Library/Android/sdk/emulator/
Dla problemów związanych z Javą:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
GUI
Przygotuj wirtualną maszynę
Jeśli zainstalowałeś Android Studio, możesz po prostu otworzyć widok głównego projektu i przejść do: Narzędzia --> Menedżer AVD.
Następnie kliknij Utwórz wirtualne urządzenie
wybierz telefon, który chcesz użyć i kliknij Dalej.
{% hint style="warning" %} Jeśli potrzebujesz telefon z zainstalowanym Sklepem Play, wybierz ten z ikoną Sklepu Play!
{% endhint %}W bieżącym widoku będziesz mógł wybrać i pobrać obraz Androida, na którym będzie działał telefon:
Wybierz go, a jeśli nie został jeszcze pobrany, kliknij na symbol Pobierz obok nazwy (teraz poczekaj, aż obraz zostanie pobrany).
Gdy obraz zostanie pobrany, po prostu wybierz Dalej
i Zakończ
.
Wirtualna maszyna zostanie utworzona. Teraz za każdym razem, gdy uzyskasz dostęp do menedżera AVD, będzie ona obecna.
Uruchomienie wirtualnej maszyny
Aby ją uruchomić, po prostu naciśnij przycisk Uruchom.
Narzędzie wiersza poleceń
Po pierwsze musisz zdecydować, który telefon chcesz użyć, aby zobaczyć listę możliwych telefonów, wykonaj:
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
[...]
Gdy już zdecydujesz, jaką nazwę urządzenia chcesz użyć, musisz zdecydować, który obraz Androida chcesz uruchomić na tym urządzeniu.
Możesz wymienić wszystkie opcje, używając sdkmanager
:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
I pobierz (jeden lub wszystkie), które chcesz użyć za pomocą:
{% 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 %}
Gdy już pobierzesz obraz Androida, który chcesz użyć, możesz wyświetlić listę wszystkich pobranych obrazów Androida za pomocą:
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
W tym momencie zdecydowałeś się na urządzenie, które chcesz użyć, i pobrałeś obraz Androida, więc możesz utworzyć maszynę wirtualną, używając:
{% 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 %}
W ostatniej komendzie utworzyłem maszynę wirtualną o nazwie "AVD9" korzystając z urządzenia "Nexus 5X" i obrazu Androida "system-images;android-28;google_apis;x86_64".
Teraz możesz wyświetlić listę maszyn wirtualnych, które utworzyłeś za pomocą:
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
Uruchom maszynę wirtualną
Już widzieliśmy, jak można wyświetlić utworzone maszyny wirtualne, ale możesz je również wyświetlić za pomocą:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
Możesz po prostu uruchomić dowolną maszynę wirtualną utworzoną za pomocą:
{% 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 %}
Możesz także użyć bardziej zaawansowanych opcji, takich jak uruchomienie maszyny wirtualnej:
{% code overflow="wrap" %}
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
Opcje wiersza poleceń
Jednak istnieje wiele różnych przydatnych opcji wiersza poleceń, które można użyć do uruchomienia maszyny wirtualnej. Poniżej znajdziesz kilka interesujących opcji, ale możesz znaleźć pełną listę tutaj
Uruchamianie
-snapshot name
: Uruchomienie migawki maszyny wirtualnej-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Wyświetlenie wszystkich zarejestrowanych migawek
Sieć
-dns-server 192.0.2.0, 192.0.2.255
: Pozwala wskazać oddzielone przecinkami serwery DNS dla maszyny wirtualnej.-http-proxy 192.168.1.12:8080
: Pozwala wskazać serwer proxy HTTP do użycia (bardzo przydatne do przechwytywania ruchu za pomocą Burp)-port 5556
: Ustawia numer portu TCP używany do konsoli i adb.-ports 5556,5559
: Ustawia numery portów TCP używane do konsoli i adb.-tcpdump /path/dumpfile.cap
: Przechwytuje cały ruch w pliku
System
-selinux {disabled|permissive}
: Ustawia moduł bezpieczeństwa Linux Security-Enhanced Linux na wyłączony lub tryb permisywny w systemie operacyjnym Linux.-timezone Europe/Paris
: Ustawia strefę czasową dla urządzenia wirtualnego-screen {touch(default)|multi-touch|o-touch}
: Ustawia tryb emulowanego ekranu dotykowego.-writable-system
: Użyj tej opcji, aby mieć zapisywalny obraz systemu podczas sesji emulacji. Będziesz musiał również uruchomićadb root; adb remount
. Jest to bardzo przydatne do zainstalowania nowego certyfikatu w systemie.
Rootowanie urządzenia z Google Play
Jeśli pobrałeś urządzenie z Google Play, nie będziesz mógł uzyskać bezpośrednio uprawnień roota, i otrzymasz ten komunikat błędu
$ adb root
adbd cannot run as root in production builds
Używając rootAVD z Magisk udało mi się go zrootować (zobacz na przykład ten film lub ten).
Instalacja Certyfikatu Burp
Sprawdź następującą stronę, aby dowiedzieć się, jak zainstalować niestandardowy certyfikat CA:
{% content-ref url="install-burp-certificate.md" %} install-burp-certificate.md {% endcontent-ref %}
Fajne Opcje AVD
Zrób Zrzut
Możesz użyć interfejsu graficznego do zrobienia zrzutu maszyny wirtualnej w dowolnym momencie:
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.