hacktricks/mobile-pentesting/android-app-pentesting/avd-android-virtual-device.md

244 lines
19 KiB
Markdown
Raw Normal View History

2023-11-06 08:38:02 +00:00
# AVD - एंड्रॉइड वर्चुअल डिवाइस
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
* प्राप्त करें [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) या [**telegram group**](https://t.me/peass) में शामिल हों या मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)** का** अनुसरण करें।**
* **अपने हैकिंग ट्रिक्स को** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **में PR जमा करके साझा करें।**
2022-04-28 16:01:33 +00:00
</details>
2023-11-06 08:38:02 +00:00
इस सामग्री को बनाने में मेरी मदद के लिए [**@offsecjay**](https://twitter.com/offsecjay) को बहुत धन्यवाद।
2020-09-10 15:57:58 +00:00
2023-11-06 08:38:02 +00:00
## यह क्या है
2023-11-06 08:38:02 +00:00
एंड्रॉइड स्टूडियो एंड्रॉइड के **वर्चुअल मशीन चलाने की अनुमति देता है जिन्हें आप APK को टेस्ट करने के लिए उपयोग कर सकते हैं**। इनका उपयोग करने के लिए आपको निम्नलिखित की आवश्यकता होगी:
2023-11-06 08:38:02 +00:00
* **एंड्रॉइड SDK टूल्स** - [यहां डाउनलोड करें](https://developer.android.com/studio/releases/sdk-tools)।
* या **एंड्रॉइड स्टूडियो** (एंड्रॉइड SDK टूल्स के साथ) - [यहां डाउनलोड करें](https://developer.android.com/studio)।
2023-11-06 08:38:02 +00:00
Windows में (मेरे मामले में) **एंड्रॉइड स्टूडियो स्थापित करने के बाद** मेरे पास **SDK टूल्स स्थापित हो गए थे**: `C:\Users\<UserName>\AppData\Local\Android\Sdk\tools`
2021-04-07 12:08:35 +00:00
2023-11-06 08:38:02 +00:00
mac में आप **SDK टूल्स डाउनलोड कर सकते हैं** और उन्हें PATH में रख सकते हैं चलाने के लिए:
2021-04-07 12:08:35 +00:00
```bash
brew tap homebrew/cask
brew install --cask android-sdk
```
2023-11-06 08:38:02 +00:00
या **Android Studio GUI** से जैसा कि [https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a](https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a) में दिखाया गया है, जो इन्हें `~/Library/Android/sdk/cmdline-tools/latest/bin/` और `~/Library/Android/sdk/platform-tools/` और `~/Library/Android/sdk/emulator/` में स्थापित करेगा।
2023-11-06 08:38:02 +00:00
जावा समस्याओं के लिए:&#x20;
```java
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
2021-04-07 12:08:35 +00:00
```
2022-05-01 13:25:53 +00:00
## GUI
2023-11-06 08:38:02 +00:00
### वर्चुअल मशीन तैयार करें
2023-11-06 08:38:02 +00:00
यदि आपने Android स्टूडियो स्थापित किया है, तो आप सीधे मुख्य परियोजना दृश्य को खोल सकते हैं और इसे एक्सेस कर सकते हैं: _**उपकरण**_ --> _**AVD प्रबंधक।**_
<div align="center" data-full-width="false">
<figure><img src="../../.gitbook/assets/image (670).png" alt="" width="293"><figcaption></figcaption></figure>
</div>
2023-11-06 08:38:02 +00:00
फिर, _**वर्चुअल डिवाइस बनाएं**_ पर क्लिक करें
<figure><img src="../../.gitbook/assets/image (671).png" alt="" width="188"><figcaption></figcaption></figure>
2023-11-06 08:38:02 +00:00
_**उस फोन को चुनें** जिसका आप उपयोग करना चाहते हैं और _**अगला**_ पर क्लिक करें।
{% hint style="warning" %}
2023-11-06 08:38:02 +00:00
यदि आपको Play Store स्थापित होने वाला फोन चाहिए तो उसे चुनें जिसमें Play Store आइकन है!
![](<../../.gitbook/assets/image (672).png>)
{% endhint %}
2023-11-06 08:38:02 +00:00
वर्तमान दृश्य में आपको फोन द्वारा चलाए जाने वाले Android इमेज को **चुनें और डाउनलोड करें**:
<figure><img src="../../.gitbook/assets/image (673).png" alt="" width="375"><figcaption></figcaption></figure>
2023-11-06 08:38:02 +00:00
इसलिए, इसे चुनें और यदि यह डाउनलोड नहीं हुआ है तो नाम के पास दिए गए _**डाउनलोड**_ प्रतीक पर क्लिक करें (**अब तक इमेज डाउनलोड होने तक प्रतीक्षा करें).**\
इमेज डाउनलोड हो जाने के बाद, बस **`अगला`** और **`समाप्त`** का चयन करें।
2023-11-06 08:38:02 +00:00
वर्चुअल मशीन बनाई जाएगी। अब **हर बार जब आप AVD प्रबंधक एक्सेस करेंगे तो यह मौजूद होगी**
2023-11-06 08:38:02 +00:00
### वर्चुअल मशीन चलाएं
2023-11-06 08:38:02 +00:00
इसे **चलाने** के लिए, बस _**प्रारंभ बटन**_ दबाएं।
![](<../../.gitbook/assets/image (334).png>)
2023-11-06 08:38:02 +00:00
## कमांड लाइन टूल
2023-11-06 08:38:02 +00:00
सबसे पहले आपको **तय करना होगा कि आप कौन सा फोन उपयोग करना चाहते हैं**, संभावित फोनों की सूची देखने के लिए निम्नलिखित कमांड का निष्पादन करें:
```
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list device
d: 0 or "automotive_1024p_landscape"
2023-11-06 08:38:02 +00:00
Name: Automotive (1024p landscape)
OEM : Google
Tag : android-automotive-playstore
---------
id: 1 or "Galaxy Nexus"
2023-11-06 08:38:02 +00:00
Name: Galaxy Nexus
OEM : Google
---------
id: 2 or "desktop_large"
2023-11-06 08:38:02 +00:00
Name: Large Desktop
OEM : Google
Tag : android-desktop
---------
id: 3 or "desktop_medium"
2023-11-06 08:38:02 +00:00
Name: Medium Desktop
OEM : Google
Tag : android-desktop
---------
id: 4 or "Nexus 10"
2023-11-06 08:38:02 +00:00
Name: Nexus 10
OEM : Google
[...]
```
2023-11-06 08:38:02 +00:00
जब आप उस उपकरण के नाम का निर्धारण कर लेते हैं जिसे आप उपयोग करना चाहते हैं, तो आपको **निर्धारित करना होगा कि आप इस उपकरण में कौन सा Android इमेज चलाना चाहते हैं।**\
आप `sdkmanager` का उपयोग करके सभी विकल्पों की सूची देख सकते हैं:
2020-09-10 15:57:58 +00:00
```bash
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
```
2023-11-06 08:38:02 +00:00
और उसे (या सभी को) डाउनलोड करें जिसे आप उपयोग करना चाहते हैं:
2020-09-10 15:57:58 +00:00
{% code overflow="wrap" %}
2020-09-10 15:57:58 +00:00
```bash
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"
```
{% endcode %}
2023-11-06 08:38:02 +00:00
जब आप डाउनलोड की गई Android इमेज का उपयोग करना चाहते हैं, तो आप निम्नलिखित कमांड का उपयोग करके **सभी डाउनलोड की गई Android इमेजों की सूची बना सकते हैं**:
```
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list target
----------
id: 1 or "android-28"
2023-11-06 08:38:02 +00:00
Name: Android API 28
Type: Platform
API level: 28
Revision: 6
----------
id: 2 or "android-29"
2023-11-06 08:38:02 +00:00
Name: Android API 29
Type: Platform
API level: 29
Revision: 4
```
2023-11-06 08:38:02 +00:00
इस समय आपने यह तय कर लिया है कि आप कौन सा उपकरण उपयोग करना चाहते हैं और आपने Android इमेज डाउनलोड कर लिया है, इसलिए **आप निम्नलिखित का उपयोग करके वर्चुअल मशीन बना सकते हैं**:
{% code overflow="wrap" %}
```bash
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 %}
2023-11-06 08:38:02 +00:00
अंतिम कमांड में मैंने "_AVD9_" नामक वीएम बनाई है जिसमें "_Nexus 5X_" डिवाइस और "_system-images;android-28;google\_apis;x86\_64_" एंड्रॉइड इमेज का उपयोग किया गया है।
अब आप निम्नलिखित कमांड का उपयोग करके आपके द्वारा बनाए गए वर्चुअल मशीनों की सूची देख सकते हैं:
```bash
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list avd
2023-11-06 08:38:02 +00:00
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:
2023-11-06 08:38:02 +00:00
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
```
2023-11-06 08:38:02 +00:00
### वर्चुअल मशीन चलाएं
2023-11-06 08:38:02 +00:00
हमने पहले ही देखा है कि आप कैसे बनाई गई वर्चुअल मशीनों की सूची बना सकते हैं, लेकिन **आप इसका उपयोग करके उन्हें सूचीबद्ध कर सकते हैं**:
```bash
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
```
2023-11-06 08:38:02 +00:00
आप किसी भी वर्चुअल मशीन को आसानी से चला सकते हैं जो निम्नलिखित तरीके से बनाई गई हो:
{% code overflow="wrap" %}
```bash
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 %}
2023-11-06 08:38:02 +00:00
या अधिक उन्नत विकल्प का उपयोग करके आप एक वर्चुअल मशीन चला सकते हैं जैसे:
{% code overflow="wrap" %}
```bash
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
```
{% endcode %}
2023-11-06 08:38:02 +00:00
### कमांड लाइन विकल्प
2023-11-06 08:38:02 +00:00
हालांकि, आप एक वर्चुअल मशीन आरंभ करने के लिए उपयोगी कई विभिन्न कमांड लाइन विकल्प प्रयोग कर सकते हैं। नीचे आपको कुछ दिलचस्प विकल्प मिलेंगे, लेकिन आप [यहां पूरी सूची पा सकते हैं](https://developer.android.com/studio/run/emulator-commandline)
2023-11-06 08:38:02 +00:00
**बूट**
2023-11-06 08:38:02 +00:00
* `-snapshot name` : वीएम स्नैपशॉट शुरू करें
* `-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img` : सभी स्नैपशॉट दर्ज करें
2023-11-06 08:38:02 +00:00
**नेटवर्क**
2023-11-06 08:38:02 +00:00
* `-dns-server 192.0.2.0, 192.0.2.255` : वीएम को DNS सर्वर को अल्पविराम से दर्ज करने की अनुमति दें।
* **`-http-proxy 192.168.1.12:8080`** : उपयोग करने के लिए एक HTTP प्रॉक्सी दर्ज करने की अनुमति दें (Burp का उपयोग करके ट्रैफिक को कैप्चर करने के लिए बहुत उपयोगी)
* `-port 5556` : कंसोल और adb के लिए उपयोग किए जाने वाले TCP पोर्ट नंबर सेट करें।
* `-ports 5556,5559` : कंसोल और adb के लिए उपयोग किए जाने वाले TCP पोर्ट सेट करें।
* **`-tcpdump /path/dumpfile.cap`** : एक फ़ाइल में सभी ट्रैफ़िक को कैप्चर करें
2023-11-06 08:38:02 +00:00
**सिस्टम**
2023-11-06 08:38:02 +00:00
* `-selinux {disabled|permissive}` : लिनक्स ऑपरेटिंग सिस्टम पर सुरक्षा-वृद्धि लिनक्स सुरक्षा मॉड्यूल को अक्षम या सुव्यवस्थित मोड पर सेट करें।
* `-timezone Europe/Paris` : वर्चुअल उपकरण के लिए समय क्षेत्र सेट करें
* `-screen {touch(default)|multi-touch|o-touch}` : नकली स्पर्श स्क्रीन मोड सेट करें।
* **`-writable-system`** : इस विकल्प का उपयोग आपके अनुकरण सत्र के दौरान एक लिखने योग्य सिस्टम इमेज होने के लिए करें। आपको भी `adb root; adb remount` चलाने की आवश्यकता होगी। इसका उपयोग सिस्टम में एक नया प्रमाणपत्र स्थापित करने के लिए बहुत उपयोगी है।
2023-11-06 08:38:02 +00:00
## एक प्ले स्टोर उपकरण को रूट करना
2023-11-06 08:38:02 +00:00
यदि आपने प्ले स्टोर के साथ एक उपकरण डाउनलोड किया है तो आप सीधे रूट प्राप्त करने में सक्षम नहीं होंगे, और आपको यह त्रुटि संदेश मिलेगा
```
$ adb root
adbd cannot run as root in production builds
```
2023-11-06 08:38:02 +00:00
[**rootAVD**](https://github.com/newbit1/rootAVD) का उपयोग करके [**Magisk**](https://github.com/topjohnwu/Magisk) के साथ मैंने इसे रूट करने में सफलता प्राप्त की है (उदाहरण के लिए [**इस वीडियो**](https://www.youtube.com/watch?v=Wk0ixxmkzAI) **या** [**इस वीडियो**](https://www.youtube.com/watch?v=qQicUW0svB8) का पालन करें)।
2023-11-06 08:38:02 +00:00
## Burp प्रमाणपत्र स्थापित करें
2023-11-06 08:38:02 +00:00
कस्टम CA प्रमाणपत्र स्थापित करने के लिए निम्नलिखित पृष्ठ की जांच करें:
{% content-ref url="install-burp-certificate.md" %}
[install-burp-certificate.md](install-burp-certificate.md)
{% endcontent-ref %}
2023-11-06 08:38:02 +00:00
## अच्छे AVD विकल्प
2023-11-06 08:38:02 +00:00
### स्नैपशॉट लें
2023-11-06 08:38:02 +00:00
आप किसी भी समय VM का स्नैपशॉट लेने के लिए **GUI का उपयोग** कर सकते हैं:
![](<../../.gitbook/assets/image (336).png>)
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की अनुमति चाहिए? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* प्राप्त करें [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)।
2022-04-28 16:01:33 +00:00
</details>