AVD - Android Virtual Device
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Dziękuję bardzo @offsecjay za pomoc w tworzeniu tej treści.
Android Studio pozwala na uruchamianie maszyn wirtualnych Android, które możesz wykorzystać do testowania APK. Aby z nich skorzystać, będziesz potrzebować:
Narzędzi SDK Android - Pobierz tutaj.
Lub Android Studio (z narzędziami SDK Android) - Pobierz tutaj.
W systemie Windows (w moim przypadku) po zainstalowaniu Android Studio miałem zainstalowane narzędzia SDK w: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
Na Macu możesz pobrać narzędzia SDK i mieć je w PATH, uruchamiając:
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, co zainstaluje je w ~/Library/Android/sdk/cmdline-tools/latest/bin/
oraz ~/Library/Android/sdk/platform-tools/
i ~/Library/Android/sdk/emulator/
W przypadku problemów z Javą:
Jeśli zainstalowałeś Android Studio, możesz po prostu otworzyć główny widok projektu i uzyskać dostęp do: Narzędzia --> Menadżer AVD.
Następnie kliknij na Utwórz Wirtualne Urządzenie
wybierz telefon, którego chcesz użyć i kliknij na Dalej.
Jeśli potrzebujesz telefonu z zainstalowanym Sklepem Play, wybierz jeden z ikoną Sklepu Play!
W bieżącym widoku będziesz mógł wybrać i pobrać obraz Androida, który telefon będzie uruchamiał:
Więc, wybierz go, a jeśli nie jest pobrany, kliknij na symbol Pobierz obok nazwy (teraz poczekaj, aż obraz zostanie pobrany).
Gdy obraz zostanie pobrany, po prostu wybierz Dalej
i Zakończ
.
Maszyna wirtualna zostanie utworzona. Teraz za każdym razem, gdy uzyskasz dostęp do menedżera AVD, będzie obecna.
Aby uruchomić ją, po prostu naciśnij Przycisk Start.
Przede wszystkim musisz zdecydować, którego telefonu chcesz użyć, aby zobaczyć listę możliwych telefonów, wykonaj:
Gdy zdecydujesz o nazwie urządzenia, które chcesz użyć, musisz zdecydować, który obraz Androida chcesz uruchomić na tym urządzeniu.
Możesz wylistować wszystkie opcje używając sdkmanager
:
I pobierz ten (lub wszystkie), które chcesz użyć za pomocą:
Po pobraniu obrazu Android, którego chcesz użyć, możesz wyświetlić wszystkie pobrane obrazy Android za pomocą:
W tym momencie zdecydowałeś, jakiego urządzenia chcesz użyć i pobrałeś obraz Androida, więc możesz utworzyć maszynę wirtualną za pomocą:
W ostatniej komendzie stworzyłem VM o nazwie "AVD9" używając urządzenia "Nexus 5X" oraz obrazu Android "system-images;android-28;google_apis;x86_64". Teraz możesz wyświetlić listę maszyn wirtualnych, które stworzyłeś za pomocą:
Już widzieliśmy, jak możesz wylistować utworzone maszyny wirtualne, ale możesz je również wylistować używając:
Możesz po prostu uruchomić dowolną maszynę wirtualną utworzoną za pomocą:
Lub korzystając z bardziej zaawansowanych opcji, możesz uruchomić maszynę wirtualną, taką jak:
Jednak istnieje wiele różnych przydatnych opcji wiersza poleceń, które możesz wykorzystać do uruchomienia maszyny wirtualnej. Poniżej znajdziesz kilka interesujących opcji, ale możesz znaleźć pełną listę tutaj
Uruchamianie
-snapshot name
: Uruchom snapshot VM
-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Wyświetl wszystkie zarejestrowane snapshoty
Sieć
-dns-server 192.0.2.0, 192.0.2.255
: Pozwól wskazać oddzielone przecinkami serwery DNS dla VM.
-http-proxy 192.168.1.12:8080
: Pozwól wskazać proxy HTTP do użycia (bardzo przydatne do przechwytywania ruchu za pomocą Burp)
-port 5556
: Ustaw numer portu TCP używanego dla konsoli i adb.
-ports 5556,5559
: Ustaw porty TCP używane dla konsoli i adb.
-tcpdump /path/dumpfile.cap
: Przechwyć cały ruch do pliku
System
-selinux {disabled|permissive}
: Ustaw moduł zabezpieczeń Security-Enhanced Linux na tryb wyłączony lub zezwalający na działanie w systemie operacyjnym Linux.
-timezone Europe/Paris
: Ustaw strefę czasową dla urządzenia wirtualnego
-screen {touch(default)|multi-touch|o-touch}
: Ustaw emulowany tryb 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
. To jest bardzo przydatne do zainstalowania nowego certyfikatu w systemie.
Jeśli pobrałeś urządzenie z Play Store, nie będziesz mógł uzyskać roota bezpośrednio i otrzymasz ten komunikat o błędzie
Using rootAVD with Magisk udało mi się uzyskać dostęp do roota (zobacz na przykład ten film lub ten).
Sprawdź następującą stronę, aby dowiedzieć się, jak zainstalować niestandardowy certyfikat CA:
Możesz użyć GUI, aby w dowolnym momencie zrobić zrzut ekranu VM:
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)