12 KiB
AVD - Dispositivo Virtual de Android
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de Telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Muchas gracias a @offsecjay por su ayuda en la creación de este contenido.
¿Qué es
Android Studio permite ejecutar máquinas virtuales de Android que puedes usar para probar APKs. Para poder utilizarlas, necesitarás:
- Las herramientas del SDK de Android - Descargar aquí.
- O Android Studio (con las herramientas del SDK de Android) - Descargar aquí.
En Windows (en mi caso) después de instalar Android Studio, las herramientas del SDK se instalaron en: C:\Users\<NombreDeUsuario>\AppData\Local\Android\Sdk\tools
En macOS, puedes descargar las herramientas del SDK y tenerlas en el PATH ejecutando:
brew tap homebrew/cask
brew install --cask android-sdk
O desde la interfaz gráfica de Android Studio como se indica en https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a, que los instalará en ~/Library/Android/sdk/cmdline-tools/latest/bin/
y ~/Library/Android/sdk/platform-tools/
y ~/Library/Android/sdk/emulator/
Para los problemas de Java:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
GUI
Preparar Máquina Virtual
Si has instalado Android Studio, simplemente abre la vista principal del proyecto y accede a: Herramientas --> Administrador AVD.
Luego, haz clic en Crear dispositivo virtual
selecciona el teléfono que deseas usar y haz clic en Siguiente.
{% hint style="warning" %} Si necesitas un teléfono con Play Store instalado, selecciona uno con el icono de Play Store en él!
En la vista actual podrás seleccionar y descargar la imagen de Android que el teléfono va a ejecutar:
Así que, selecciónala y si no está descargada, haz clic en el símbolo de Descargar junto al nombre (ahora espera hasta que se descargue la imagen).
Una vez descargada la imagen, simplemente selecciona Siguiente
y Finalizar
.
La máquina virtual se creará. Ahora cada vez que accedas al administrador AVD estará presente.
Ejecutar Máquina Virtual
Para ejecutarla, simplemente presiona el botón de Inicio.
Herramienta de Línea de Comandos
En primer lugar, debes decidir qué teléfono deseas usar, para ver la lista de teléfonos posibles ejecuta:
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
[...]
Una vez que hayas decidido el nombre del dispositivo que deseas utilizar, necesitas decidir qué imagen de Android deseas ejecutar en este dispositivo.
Puedes listar todas las opciones utilizando sdkmanager
:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
Y descarga el que desees usar (o todos) con:
{% 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 %}
Una vez que hayas descargado la imagen de Android que deseas utilizar, puedes listar todas las imágenes de Android descargadas con:
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
En este momento has decidido el dispositivo que deseas utilizar y has descargado la imagen de Android, por lo que puedes crear la máquina virtual utilizando:
{% 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 %}
En el último comando creé una VM llamada "AVD9" utilizando el dispositivo "Nexus 5X" y la imagen de Android "system-images;android-28;google_apis;x86_64".
Ahora puedes listar las máquinas virtuales que has creado con:
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
Ejecutar Máquina Virtual
Ya hemos visto cómo puedes listar las máquinas virtuales creadas, pero también puedes listarlas usando:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
Simplemente puedes ejecutar cualquier máquina virtual creada utilizando:
{% 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 %}
O utilizando opciones más avanzadas, puedes ejecutar una máquina virtual como:
{% 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 %}
Opciones de línea de comandos
Sin embargo, hay muchas opciones útiles de línea de comandos diferentes que puedes usar para iniciar una máquina virtual. A continuación, puedes encontrar algunas opciones interesantes, pero puedes encontrar una lista completa aquí
Arranque
-snapshot name
: Iniciar una instantánea de la máquina virtual-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Enumerar todas las instantáneas grabadas
Red
-dns-server 192.0.2.0, 192.0.2.255
: Permite indicar los servidores DNS separados por comas para la máquina virtual.-http-proxy 192.168.1.12:8080
: Permite indicar un proxy HTTP para usar (muy útil para capturar el tráfico usando Burp)-port 5556
: Establece el número de puerto TCP que se utiliza para la consola y adb.-ports 5556,5559
: Establece los puertos TCP utilizados para la consola y adb.-tcpdump /path/dumpfile.cap
: Captura todo el tráfico en un archivo
Sistema
-selinux {disabled|permissive}
: Establece el módulo de seguridad de Linux mejorado (SELinux) en modo desactivado o permisivo en un sistema operativo Linux.-timezone Europe/Paris
: Establece la zona horaria para el dispositivo virtual-screen {touch(default)|multi-touch|o-touch}
: Establece el modo de pantalla táctil emulado.-writable-system
: Usa esta opción para tener una imagen de sistema modificable durante tu sesión de emulación. También deberás ejecutaradb root; adb remount
. Esto es muy útil para instalar un nuevo certificado en el sistema.
Hacer root a un dispositivo de Play Store
Si descargaste un dispositivo con Play Store, no podrás obtener acceso root directamente y recibirás este mensaje de error.
$ adb root
adbd cannot run as root in production builds
Usando rootAVD con Magisk pude rootearlo (sigue por ejemplo este video o este otro).
Instalar Certificado de Burp
Consulta la siguiente página para aprender cómo instalar un certificado CA personalizado:
{% content-ref url="install-burp-certificate.md" %} install-burp-certificate.md {% endcontent-ref %}
Opciones útiles de AVD
Tomar una instantánea
Puedes usar la interfaz gráfica para tomar una instantánea de la máquina virtual en cualquier momento:
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.