12 KiB
AVD - Dispositivo Virtual Android
AVD - Dispositivo Virtual Android
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.
Muito obrigado a @offsecjay por sua ajuda na criação deste conteúdo.
O que é
O Android Studio permite executar máquinas virtuais do Android que você pode usar para testar APKs. Para usá-las, você precisará de:
- As ferramentas do Android SDK - Baixe aqui.
- Ou Android Studio (com as ferramentas do Android SDK) - Baixe aqui.
No Windows (no meu caso), após instalar o Android Studio, as Ferramentas do SDK foram instaladas em: C:\Users\<NomeDoUsuário>\AppData\Local\Android\Sdk\tools
JDK
Para máquinas MacOS, recomendo que você instale a seguinte versão para poder usar os comandos da CLI mencionados nas seguintes seções:
brew install openjdk@8
GUI
Preparar Máquina Virtual
Se você instalou o Android Studio, basta abrir a visualização do projeto principal e acessar: Ferramentas --> Gerenciador AVD.
Em seguida, clique em Criar dispositivo virtual, selecione o telefone que deseja usar e clique em Avançar.
__Na visualização atual, você poderá selecionar e baixar a imagem do Android que o telefone vai executar:
Portanto, selecione-o e clique em Baixar** (agora aguarde até que a imagem seja baixada).
**Assim que a imagem for baixada, basta selecionar _**Avançar**_ e _Concluir_.
A máquina virtual será criada. Agora, sempre que você acessar o gerenciador AVD, ela estará presente.
Executar Máquina Virtual
Para executá-la, basta pressionar o botão Iniciar.
Ferramenta de Linha de Comando
Preparar Máquina Virtual
{% hint style="info" %}
Nos sistemas MacOS, o executável está localizado em /Users/<username>/Library/Android/sdk/tools/bin
{% endhint %}
Antes de tudo, você precisa decidir qual telefone deseja usar, para ver a lista de telefones possíveis, execute:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list device
id: 0 or "tv_1080p"
Name: Android TV (1080p)
OEM : Google
Tag : android-tv
---------
id: 1 or "tv_720p"
Name: Android TV (720p)
OEM : Google
Tag : android-tv
---------
id: 2 or "wear_round"
Name: Android Wear Round
OEM : Google
Tag : android-wear
---------
id: 3 or "wear_round_chin_320_290"
Name: Android Wear Round Chin
OEM : Google
Tag : android-wear
---------
id: 4 or "wear_square"
Name: Android Wear Square
OEM : Google
Tag : android-wear
---------
id: 5 or "Galaxy Nexus"
Name: Galaxy Nexus
OEM : Google
---------
id: 6 or "Nexus 10"
Name: Nexus 10
OEM : Google
---------
id: 7 or "Nexus 4"
Name: Nexus 4
OEM : Google
---------
id: 8 or "Nexus 5"
Name: Nexus 5
OEM : Google
---------
id: 9 or "Nexus 5X"
Name: Nexus 5X
OEM : Google
Depois de decidir o nome do dispositivo que você deseja usar, você precisa decidir qual imagem do Android deseja executar neste dispositivo. Você pode listar todas as opções usando sdkmanager
:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
E baixe aquele (ou todos) que você deseja usar com:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"
Depois de baixar a imagem do Android que você deseja usar, você pode listar todas as imagens do Android baixadas com o seguinte comando:
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
Neste momento, você decidiu o dispositivo que deseja usar e baixou a imagem do Android, então você pode criar a máquina virtual usando:
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"
No último comando eu criei uma VM chamada "AVD9" usando o dispositivo "Nexus 5X" e a imagem do Android "system-images;android-28;google_apis;x86_64".
Agora você pode listar as máquinas virtuais que você criou com:
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
Executar Máquina Virtual
Já vimos como você pode listar as máquinas virtuais criadas, mas você também pode listá-las usando:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
Você pode simplesmente executar qualquer máquina virtual criada usando:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"
Ou usando opções mais avançadas, você pode executar uma máquina virtual como:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
Opções de linha de comando
No entanto, existem muitas opções úteis de linha de comando diferentes que você pode usar para iniciar uma máquina virtual. Abaixo você pode encontrar algumas opções interessantes, mas pode encontrar uma lista completa aqui
Inicialização
-snapshot name
: Iniciar snapshot da VM-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Listar todos os snapshots gravados
Rede
-dns-server 192.0.2.0, 192.0.2.255
: Permite indicar, separados por vírgula, os servidores DNS para a VM.-http-proxy 192.168.1.12:8080
: Permite indicar um proxy HTTP a ser usado (muito útil para capturar o tráfego usando o Burp)-port 5556
: Define o número da porta TCP usada para o console e adb.-ports 5556,5559
: Define as portas TCP usadas para o console e adb.-tcpdump /path/dumpfile.cap
: Captura todo o tráfego em um arquivo
Sistema
-selinux {disabled|permissive}
: Define o módulo de segurança do Linux Security-Enhanced Linux para o modo desativado ou permissivo em um sistema operacional Linux.-timezone Europe/Paris
: Define o fuso horário para o dispositivo virtual-screen {touch(default)|multi-touch|o-touch}
: Define o modo de tela sensível ao toque emulado.-writable-system
: Use esta opção para ter uma imagem do sistema gravável durante sua sessão de emulação. Você também precisará executaradb root; adb remount
. Isso é muito útil para instalar um novo certificado no sistema.
Instalar o certificado Burp em uma Máquina Virtual
Antes de tudo, você precisa baixar o certificado Der do Burp. Você pode fazer isso em Proxy --> Options --> Import / Export CA certificate
Exporte o certificado no formato Der e vamos transformá-lo em uma forma que o Android será capaz de entender. Note que para configurar o certificado burp na máquina Android em AVD você precisa executar esta máquina com a opção -writable-system
.
Por exemplo, você pode executá-lo assim:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
Em seguida, para configurar o certificado do Burp, faça:
openssl x509 -inform DER -in burp_cacert.der -out burp_cacert.pem
CERTHASHNAME="`openssl x509 -inform PEM -subject_hash_old -in burp_cacert.pem | head -1`.0"
mv burp_cacert.pem $CERTHASHNAME #Correct name
adb root && adb remount #Allow to write on /syste
adb push $CERTHASHNAME /sdcard/ #Upload certificate
adb shell mv /sdcard/$CERTHASHNAME /system/etc/security/cacerts/ #Move to correct location
adb shell chmod 644 /system/etc/security/cacerts/$CERTHASHNAME #Assign privileges
adb reboot #Now, reboot the machine
Assim que a máquina terminar de reiniciar, o certificado burp estará em uso por ela!
Tirar um Snapshot
Você pode usar a GUI para tirar um snapshot da VM a qualquer momento:
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e para o repositório hacktricks-cloud.