hacktricks/mobile-pentesting/android-app-pentesting/avd-android-virtual-device.md
2024-02-11 02:13:58 +00:00

11 KiB

AVD - Kifaa cha Android Virtual

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Asante sana kwa @offsecjay kwa msaada wake wakati wa kuunda maudhui haya.

Ni nini

Android Studio inaruhusu kuendesha mashine za kawaida za Android ambazo unaweza kutumia kwa kujaribu APKs. Ili kuzitumia, utahitaji:

Katika Windows (katika kesi yangu) baada ya kusakinisha Android Studio nilikuwa na Zana za SDK zilizosakinishwa katika: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools

Katika mac unaweza kupakua zana za SDK na kuziweka kwenye PATH kwa kukimbia:

brew tap homebrew/cask
brew install --cask android-sdk

Au kutoka Android Studio GUI kama ilivyoelezwa katika https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a ambayo itawasakinisha katika ~/Library/Android/sdk/cmdline-tools/latest/bin/ na ~/Library/Android/sdk/platform-tools/ na ~/Library/Android/sdk/emulator/

Kwa matatizo ya Java:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home

GUI

Tengeneza Mashine ya Virtual

Ikiwa umeweka Android Studio, unaweza tu kufungua tazama mradi kuu na kufikia: Zana --> Msimamizi wa AVD.

Kisha, bonyeza Tengeneza Kifaa cha Virtual

chagua simu unayotaka kutumia na bonyeza Next.

{% hint style="warning" %} Ikiwa unahitaji simu iliyo na Duka la Kucheza iliyowekwa, chagua moja na alama ya Duka la Kucheza!

{% endhint %}

Katika tazama ya sasa utaweza kuchagua na kupakua picha ya Android ambayo simu itatumia:

Basi, ichague na ikiwa haijapakuliwa bonyeza ishara ya Pakua kando ya jina (sasa subiri hadi picha ipakuliwe).
Baada ya picha kupakuliwa, tu chagua Next na Finish.

Mashine ya virtual itatengenezwa. Sasa kila wakati unapoingia kwenye msimamizi wa AVD itakuwepo.

Anza Mashine ya Virtual

Ili kuianza, bonyeza tu kitufe cha Anza.

Zana ya Mstari wa Amri

Kwanza kabisa, unahitaji kuamua simu unayotaka kutumia, ili kuona orodha ya simu zinazowezekana tekeleza:

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
[...]

Baada ya kuamua jina la kifaa unachotaka kutumia, unahitaji kuamua ni picha ya Android ipi unayotaka kuendesha kwenye kifaa hiki.
Unaweza kuorodhesha chaguo zote kwa kutumia sdkmanager:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list

Na pakua moja (au zote) unayotaka kutumia na:

{% 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 %}

Baada ya kupakua picha ya Android unayotaka kutumia, unaweza kuorodhesha picha zote za Android zilizopakuliwa kwa kutumia:

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

Wakati huu umekuwa umefanya uamuzi wa kifaa unachotaka kutumia na umeshusha picha ya Android, hivyo unaweza kuunda mashine ya kawaida kwa kutumia:

{% 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 %}

Katika amri ya mwisho Nimeunda VM iliyoitwa "AVD9" kwa kutumia kifaa "Nexus 5X" na picha ya Android "system-images;android-28;google_apis;x86_64".
Sasa unaweza kuorodhesha mashine za kawaida ulizounda kwa kutumia:

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

Kukimbia Mashine ya Virtual

Tayari tumeshajifunza jinsi unavyoweza kuorodhesha mashine za virtual zilizoundwa, lakini pia unaweza kuziorodhesha kwa kutumia:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27

Unaweza kwa urahisi kuendesha mashine halisi iliyoundwa kwa kutumia:

{% 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 %}

Au kutumia chaguo za juu zaidi unaweza kuendesha mashine ya kawaida kama:

{% 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 %}

Chaguo za amri ya mstari

Hata hivyo, kuna chaguo nyingi tofauti za amri ya mstari ambazo unaweza kutumia kuanzisha mashine ya kawaida. Hapa chini unaweza kupata chaguo kadhaa za kuvutia lakini unaweza kupata orodha kamili hapa

Kuanza

  • -snapshot name : Anza picha ya VM
  • -snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img : Onyesha orodha ya picha zote zilizorekodiwa

Mtandao

  • -dns-server 192.0.2.0, 192.0.2.255 : Ruhusu kuonyesha seva za DNS zilizotenganishwa kwa kutumia koma.
  • -http-proxy 192.168.1.12:8080 : Ruhusu kuonyesha wakala wa HTTP unaotumiwa (muhimu sana kwa kukamata trafiki kwa kutumia Burp)
  • -port 5556 : Weka nambari ya bandari ya TCP inayotumiwa kwa konsoli na adb.
  • -ports 5556,5559 : Weka bandari za TCP zinazotumiwa kwa konsoli na adb.
  • -tcpdump /path/dumpfile.cap : Kamata trafiki yote kwenye faili

Mfumo

  • -selinux {disabled|permissive} : Weka moduli ya usalama ya Linux iliyoimarishwa kwa hali ya kuzimwa au ya kibali kwenye mfumo wa uendeshaji wa Linux.
  • -timezone Europe/Paris : Weka muda wa eneo kwa kifaa cha kawaida
  • -screen {touch(default)|multi-touch|o-touch} : Weka hali ya skrini ya kugusa iliyosanidiwa.
  • -writable-system : Tumia chaguo hili kuwa na picha ya mfumo inayoweza kuandikwa wakati wa kikao chako cha uigaji. Utahitaji pia kukimbia adb root; adb remount. Hii ni muhimu sana kwa kusakinisha cheti kipya kwenye mfumo.

Kupata mizizi kwenye kifaa cha Duka la Kucheza

Ikiwa umepakua kifaa na Duka la Kucheza, hautaweza kupata mizizi moja kwa moja, na utapata ujumbe wa kosa hili

$ adb root
adbd cannot run as root in production builds

Kwa kutumia rootAVD na Magisk niliweza kuiruhusu (fuata mfano kama video hii au hii nyingine).

Sakinisha Cheti cha Burp

Angalia ukurasa ufuatao ili kujifunza jinsi ya kusakinisha cheti cha CA cha desturi:

{% content-ref url="install-burp-certificate.md" %} install-burp-certificate.md {% endcontent-ref %}

Chaguzi Nzuri za AVD

Chukua Picha ya Snapshot

Unaweza kutumia GUI kuchukua picha ya snapshot ya VM wakati wowote:

Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: