11 KiB
AVD - Wirtualne urządzenie Android
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ź PLAN SUBSKRYPCJI!
- 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.
Bardzo dziękuję @offsecjay za pomoc przy tworzeniu tego materiału.
Co to jest
Android Studio umożliwia uruchamianie wirtualnych maszyn Androida, które można używać do testowania plików APK. Aby z nich skorzystać, 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 zostały zainstalowane w: C:\Users\<NazwaUżytkownika>\AppData\Local\Android\Sdk\tools
Na Macu możesz pobrać narzędzia SDK i umieścić je w PATH, uruchamiając:
brew tap homebrew/cask
brew install --cask android-sdk
Lub z interfejsu graficznego Android Studio, jak wskazano w https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a, co spowoduje ich instalację w ~/Library/Android/sdk/cmdline-tools/latest/bin/
i ~/Library/Android/sdk/platform-tools/
oraz ~/Library/Android/sdk/emulator/
W przypadku problemów 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ć główne widok 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 telefonu z zainstalowanym Sklepem Play, wybierz ten z ikoną Sklepu Play!
W bieżącym widoku będziesz mógł wybrać i pobrać obraz Androida, na którym będzie działał telefon:
Wybierz go i jeśli nie jest jeszcze pobrany, kliknij na symbol Pobierz obok nazwy (teraz poczekaj, aż obraz zostanie pobrany).
Po pobraniu obrazu, po prostu wybierz Dalej
i Zakończ
.
Wirtualna maszyna zostanie utworzona. Teraz za każdym razem, gdy będziesz korzystać z menedżera AVD, będzie ona dostępna.
Uruchomienie wirtualnej maszyny
Aby ją uruchomić, po prostu naciśnij przycisk Uruchom.
Narzędzie wiersza poleceń
Przede wszystkim 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
[...]
Kiedy już zdecydujesz, jaką nazwę chcesz użyć dla urządzenia, musisz zdecydować, jaką wersję Androida chcesz uruchomić na tym urządzeniu.
Możesz wyświetlić listę wszystkich opcji, używając polecenia 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 %}
Po pobraniu obrazu 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ć wirtualną maszynę, 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" używając 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 wirtualną maszynę
Już widzieliśmy, jak można wyświetlić utworzone wirtualne maszyny, ale można 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ą utworzoną maszynę wirtualną 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 %}
Lub używając bardziej zaawansowanych opcji, możesz uruchomić wirtualną maszynę, taką jak:
{% 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 %}
Opcje wiersza poleceń
Jednak istnieje wiele różnych przydatnych opcji wiersza poleceń, które można użyć do uruchomienia maszyny wirtualnej. Poniżej znajdują się niektóre interesujące opcje, ale można 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 listy wszystkich zarejestrowanych migawek
Sieć
-dns-server 192.0.2.0, 192.0.2.255
: Pozwala na wskazanie oddzielonych przecinkami serwerów DNS dla maszyny wirtualnej.-http-proxy 192.168.1.12:8080
: Pozwala na wskazanie serwera proxy HTTP do użycia (bardzo przydatne do przechwytywania ruchu za pomocą Burp)-port 5556
: Ustawia numer portu TCP używanego dla konsoli i adb.-ports 5556,5559
: Ustawia numery portów TCP używane dla konsoli i adb.-tcpdump /path/dumpfile.cap
: Przechwytuje cały ruch w pliku
System
-selinux {disabled|permissive}
: Ustawia moduł zabezpieczeń Linux Security-Enhanced na tryb wyłączony lub 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 instalacji nowego certyfikatu w systemie.
Rootowanie urządzenia z Google Play
Jeśli pobrałeś urządzenie z Google Play, nie będziesz w stanie uzyskać bezpośrednio uprawnień root, i otrzymasz ten komunikat o błędzie
$ adb root
adbd cannot run as root in production builds
Korzystając z rootAVD z Magisk udało mi się go zrootować (postępuj zgodnie na przykład z tego filmu lub tego).
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 %}
Przydatne opcje AVD
Wykonaj migawkę
Możesz użyć interfejsu graficznego do wykonania migawki wirtualnej maszyny w dowolnym momencie:
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ź PLAN SUBSKRYPCJI!
- 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 trikami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.