Android Applications Pentesting

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!

Hacking Insights Engage with content that delves into the thrill and challenges of hacking

Real-Time Hack News Keep up-to-date with fast-paced hacking world through real-time news and insights

Latest Announcements Stay informed with the newest bug bounties launching and crucial platform updates

Join us on Discord and start collaborating with top hackers today!

Android Applications Basics

यह पृष्ठ पढ़ना अत्यधिक अनुशंसित है ताकि आप Android सुरक्षा से संबंधित सबसे महत्वपूर्ण भागों और एक Android एप्लिकेशन में सबसे खतरनाक घटकों के बारे में जान सकें:

Android Applications Basics

ADB (Android Debug Bridge)

यह मुख्य उपकरण है जिसकी आपको एक Android डिवाइस (अनुकरणीय या भौतिक) से कनेक्ट करने की आवश्यकता है। ADB आपको USB या Network के माध्यम से कंप्यूटर से उपकरणों को नियंत्रित करने की अनुमति देता है। यह उपयोगिता फाइलों की दोनों दिशाओं में कॉपी करने, ऐप्स की स्थापना और अनइंस्टॉल करने, शेल कमांड को निष्पादित करने, डेटा का बैकअप लेने, लॉग्स को पढ़ने जैसी अन्य कार्यों को सक्षम बनाती है।

ADB का उपयोग कैसे करें, यह जानने के लिए ADB Commands की निम्नलिखित सूची पर एक नज़र डालें।

Smali

कभी-कभी छिपी हुई जानकारी (शायद अच्छी तरह से छिपे हुए पासवर्ड या ध्वज) तक पहुँचने के लिए एप्लिकेशन कोड को संशोधित करना दिलचस्प होता है। फिर, APK को डिकंपाइल करना, कोड को संशोधित करना और इसे फिर से संकलित करना दिलचस्प हो सकता है। इस ट्यूटोरियल में आप APK को डिकंपाइल करना, Smali कोड को संशोधित करना और नए कार्यक्षमता के साथ APK को फिर से संकलित करना सीख सकते हैं। यह गतिशील विश्लेषण के दौरान कई परीक्षणों के लिए एक वैकल्पिक के रूप में बहुत उपयोगी हो सकता है जो प्रस्तुत किए जाने वाले हैं। फिर, इस संभावना को हमेशा ध्यान में रखें

Other interesting tricks

adb shell pm list packages
com.android.insecurebankv2

adb shell pm path com.android.insecurebankv2
package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk

adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
  • सभी स्प्लिट और बेस एपीके को APKEditor के साथ मिलाएं:

mkdir splits
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
java -jar ../APKEditor.jar m -i splits/ -o merged.apk

# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner
java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed

Static Analysis

सबसे पहले, एक APK का विश्लेषण करने के लिए आपको decompiler का उपयोग करके Java कोड पर एक नज़र डालनी चाहिए। कृपया, विभिन्न उपलब्ध decompilers के बारे में जानकारी के लिए यहाँ पढ़ें.

Looking for interesting Info

APK के strings पर एक नज़र डालकर आप passwords, URLs (https://github.com/ndelphit/apkurlgrep), api keys, encryption, bluetooth uuids, tokens और कुछ भी दिलचस्प खोज सकते हैं... यहां तक कि कोड निष्पादन backdoors या प्रमाणीकरण backdoors (ऐप के लिए हार्डकोडेड व्यवस्थापक क्रेडेंशियल्स) के लिए भी देखें।

Firebase

firebase URLs पर विशेष ध्यान दें और जांचें कि क्या यह गलत तरीके से कॉन्फ़िगर किया गया है। यहाँ FIrebase के बारे में और जानकारी और इसे कैसे शोषण करें।

Basic understanding of the application - Manifest.xml, strings.xml

एक एप्लिकेशन के _Manifest.xml** और **strings.xml_** फ़ाइलों की जांच संभावित सुरक्षा कमजोरियों को उजागर कर सकती है। इन फ़ाइलों को decompilers का उपयोग करके या APK फ़ाइल एक्सटेंशन को .zip में बदलकर और फिर इसे अनज़िप करके एक्सेस किया जा सकता है।

Manifest.xml से पहचानी गई Vulnerabilities में शामिल हैं:

  • Debuggable Applications: Manifest.xml फ़ाइल में debuggable="true" के रूप में सेट की गई एप्लिकेशन जोखिम पैदा करती हैं क्योंकि वे ऐसे कनेक्शन की अनुमति देती हैं जो शोषण की ओर ले जा सकते हैं। डिबग करने योग्य एप्लिकेशन को शोषित करने के तरीके को समझने के लिए, डिवाइस पर डिबग करने योग्य एप्लिकेशन को खोजने और शोषित करने पर एक ट्यूटोरियल देखें।

  • Backup Settings: संवेदनशील जानकारी से निपटने वाले एप्लिकेशनों के लिए android:allowBackup="false" विशेष रूप से सेट किया जाना चाहिए ताकि adb के माध्यम से अनधिकृत डेटा बैकअप को रोका जा सके, विशेष रूप से जब usb debugging सक्षम हो।

  • Network Security: res/xml/ में कस्टम नेटवर्क सुरक्षा कॉन्फ़िगरेशन (android:networkSecurityConfig="@xml/network_security_config") सुरक्षा विवरण जैसे प्रमाणपत्र पिन और HTTP ट्रैफ़िक सेटिंग्स को निर्दिष्ट कर सकते हैं। एक उदाहरण विशेष डोमेन के लिए HTTP ट्रैफ़िक की अनुमति देना है।

  • Exported Activities and Services: मैनिफेस्ट में निर्यातित गतिविधियों और सेवाओं की पहचान करना उन घटकों को उजागर कर सकता है जो दुरुपयोग के लिए संवेदनशील हो सकते हैं। गतिशील परीक्षण के दौरान आगे के विश्लेषण से यह पता चल सकता है कि इन घटकों का शोषण कैसे किया जाए।

  • Content Providers and FileProviders: उजागर सामग्री प्रदाता अनधिकृत पहुंच या डेटा में संशोधन की अनुमति दे सकते हैं। FileProviders की कॉन्फ़िगरेशन की भी जांच की जानी चाहिए।

  • Broadcast Receivers and URL Schemes: ये घटक शोषण के लिए उपयोग किए जा सकते हैं, विशेष रूप से इनपुट कमजोरियों के लिए URL योजनाओं के प्रबंधन के तरीके पर ध्यान देने के साथ।

  • SDK Versions: minSdkVersion, targetSDKVersion, और maxSdkVersion विशेषताएँ समर्थित Android संस्करणों को इंगित करती हैं, सुरक्षा कारणों से पुराने, कमजोर Android संस्करणों का समर्थन न करने के महत्व को उजागर करती हैं।

strings.xml फ़ाइल से, संवेदनशील जानकारी जैसे API keys, कस्टम स्कीमा, और अन्य डेवलपर नोट्स का पता लगाया जा सकता है, जो इन संसाधनों की सावधानीपूर्वक समीक्षा की आवश्यकता को उजागर करता है।

Tapjacking

Tapjacking एक हमला है जहां एक malicious application लॉन्च किया जाता है और एक पीड़ित एप्लिकेशन के ऊपर खुद को रखता है। जब यह स्पष्ट रूप से पीड़ित ऐप को अस्पष्ट करता है, तो इसका उपयोगकर्ता इंटरफ़ेस इस तरह से डिज़ाइन किया गया है कि उपयोगकर्ता को इसके साथ बातचीत करने के लिए धोखा दिया जाए, जबकि यह बातचीत को पीड़ित ऐप को पास कर रहा है। इसका प्रभाव यह है कि यह उपयोगकर्ता को यह जानने से अंधा कर देता है कि वे वास्तव में पीड़ित ऐप पर क्रियाएँ कर रहे हैं

अधिक जानकारी के लिए देखें:

Tapjacking

Task Hijacking

एक activity जिसमें launchMode singleTask पर सेट है और कोई taskAffinity परिभाषित नहीं है, वह task Hijacking के लिए संवेदनशील है। इसका मतलब है कि एक application स्थापित की जा सकती है और यदि इसे वास्तविक एप्लिकेशन से पहले लॉन्च किया जाता है, तो यह वास्तविक एप्लिकेशन के कार्य को हाईजैक कर सकती है (इसलिए उपयोगकर्ता malicious application के साथ बातचीत कर रहा होगा जबकि वह असल में वास्तविक एप्लिकेशन का उपयोग कर रहा है)।

अधिक जानकारी के लिए देखें:

Android Task Hijacking

Insecure data storage

Internal Storage

Android में, फ़ाइलें stored internal storage में designed होती हैं ताकि केवल app जो उन्हें created करती है, उन्हें accessible किया जा सके। यह सुरक्षा उपाय Android ऑपरेटिंग सिस्टम द्वारा enforced किया गया है और सामान्यतः अधिकांश एप्लिकेशनों की सुरक्षा आवश्यकताओं के लिए पर्याप्त है। हालाँकि, डेवलपर्स कभी-कभी MODE_WORLD_READABLE और MODE_WORLD_WRITABLE जैसे मोड का उपयोग करते हैं ताकि फ़ाइलों को विभिन्न एप्लिकेशनों के बीच shared किया जा सके। फिर भी, ये मोड अन्य एप्लिकेशनों द्वारा इन फ़ाइलों तक पहुंच को restrict नहीं करते हैं, जिसमें संभावित रूप से malicious एप्लिकेशन भी शामिल हैं।

  1. Static Analysis:

  • Ensure करें कि MODE_WORLD_READABLE और MODE_WORLD_WRITABLE का उपयोग carefully scrutinized किया गया है। ये मोड फ़ाइलों को unintended or unauthorized access के लिए potentially expose कर सकते हैं।

  1. Dynamic Analysis:

  • Verify करें कि ऐप द्वारा बनाई गई फ़ाइलों पर सेट की गई permissions क्या हैं। विशेष रूप से, check करें कि क्या कोई फ़ाइलें विश्व स्तर पर पढ़ने या लिखने के लिए सेट की गई हैं। यह एक महत्वपूर्ण सुरक्षा जोखिम पैदा कर सकता है, क्योंकि यह किसी भी एप्लिकेशन को जो डिवाइस पर स्थापित है, उसकी उत्पत्ति या इरादे की परवाह किए बिना, इन फ़ाइलों को read or modify करने की अनुमति देगा।

External Storage

External storage पर फ़ाइलों के साथ काम करते समय, कुछ सावधानियाँ बरतनी चाहिए:

  1. Accessibility:

  • External storage पर फ़ाइलें globally readable and writable होती हैं। इसका मतलब है कि कोई भी एप्लिकेशन या उपयोगकर्ता इन फ़ाइलों तक पहुँच सकता है।

  1. Security Concerns:

  • पहुँच की आसानी को देखते हुए, सलाह दी जाती है कि संवेदनशील जानकारी को external storage पर न रखें

  • External storage को किसी भी एप्लिकेशन द्वारा हटाया या एक्सेस किया जा सकता है, जिससे यह कम सुरक्षित हो जाता है।

  1. Handling Data from External Storage:

  • हमेशा input validation करें जो external storage से प्राप्त डेटा पर लागू होती है। यह महत्वपूर्ण है क्योंकि डेटा एक अविश्वसनीय स्रोत से है।

  • Dynamic loading के लिए external storage पर executables या class files को स्टोर करना दृढ़ता से हतोत्साहित किया जाता है।

  • यदि आपके एप्लिकेशन को external storage से executable फ़ाइलें प्राप्त करनी हैं, तो सुनिश्चित करें कि ये फ़ाइलें signed and cryptographically verified हैं इससे पहले कि उन्हें dynamically loaded किया जाए। यह आपके एप्लिकेशन की सुरक्षा अखंडता बनाए रखने के लिए महत्वपूर्ण है।

External storage को /storage/emulated/0, /sdcard, /mnt/sdcard में accessed किया जा सकता है।

Android 4.4 (API 17) से शुरू होकर, SD कार्ड में एक निर्देशिका संरचना है जो एक ऐप से उस ऐप के लिए विशेष रूप से निर्देशिका तक पहुंच को सीमित करती है। यह malicious एप्लिकेशन को किसी अन्य ऐप की फ़ाइलों तक पढ़ने या लिखने की पहुंच प्राप्त करने से रोकता है।

Sensitive data stored in clear-text

  • Shared preferences: Android प्रत्येक एप्लिकेशन को /data/data/<packagename>/shared_prefs/ पथ में xml फ़ाइलें आसानी से सहेजने की अनुमति देता है और कभी-कभी उस फ़ोल्डर में स्पष्ट पाठ में संवेदनशील जानकारी मिल सकती है।

  • Databases: Android प्रत्येक एप्लिकेशन को /data/data/<packagename>/databases/ पथ में sqlite डेटाबेस को आसानी से सहेजने की अनुमति देता है और कभी-कभी उस फ़ोल्डर में स्पष्ट पाठ में संवेदनशील जानकारी मिल सकती है।

Broken TLS

Accept All Certificates

किसी कारण से कभी-कभी डेवलपर्स सभी प्रमाणपत्रों को स्वीकार करते हैं भले ही उदाहरण के लिए होस्टनाम कोड की निम्नलिखित पंक्तियों के साथ मेल न खाता हो:

SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

A good way to test this is to try to capture the traffic using some proxy like Burp without authorising Burp CA inside the device. Also, you can generate with Burp a certificate for a different hostname and use it.

Broken Cryptography

Poor Key Management Processes

कुछ डेवलपर्स संवेदनशील डेटा को स्थानीय स्टोरेज में सहेजते हैं और इसे कोड में हार्डकोडेड/पूर्वानुमानित कुंजी के साथ एन्क्रिप्ट करते हैं। ऐसा नहीं किया जाना चाहिए क्योंकि कुछ रिवर्सिंग हमलावरों को गोपनीय जानकारी निकालने की अनुमति दे सकती है।

Use of Insecure and/or Deprecated Algorithms

डेवलपर्स को deprecated algorithms का उपयोग करके checks, store या send डेटा नहीं करना चाहिए। इनमें से कुछ एल्गोरिदम हैं: RC4, MD4, MD5, SHA1... यदि hashes का उपयोग पासवर्ड को स्टोर करने के लिए किया जाता है, तो उदाहरण के लिए, salt के साथ brute-force resistant hashes का उपयोग किया जाना चाहिए।

Other checks

  • यह अनुशंसा की जाती है कि APK को obfuscate करें ताकि हमलावरों के लिए रिवर्स इंजीनियरिंग का काम कठिन हो जाए।

  • यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे देखना चाहिए कि मोबाइल रूटेड है या नहीं और इसके अनुसार कार्य करना चाहिए।

  • यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे देखना चाहिए कि क्या emulator का उपयोग किया जा रहा है।

  • यदि ऐप संवेदनशील है (जैसे बैंक ऐप), तो इसे execute करने से पहले अपनी अखंडता की जांच करनी चाहिए कि क्या इसे संशोधित किया गया है।

  • APKiD का उपयोग करें यह जांचने के लिए कि APK बनाने के लिए कौन सा compiler/packer/obfuscator का उपयोग किया गया था।

React Native Application

Read the following page to learn how to easily access javascript code of React applications:

React Native Application

Xamarin Applications

Read the following page to learn how to easily access C# code of a xamarin applications:

Xamarin Apps

Superpacked Applications

According to this blog post superpacked is a Meta algorithm that compress the content of an application into a single file. The blog talks about the possibility of creating an app that decompress these kind of apps... and a faster way which involves to execute the application and gather the decompressed files from the filesystem.

Automated Static Code Analysis

The tool mariana-trench is capable of finding vulnerabilities by scanning the code of the application. This tool contains a series of known sources (that indicates to the tool the places where the input is controlled by the user), sinks (which indicates to the tool dangerous places where malicious user input could cause damages) and rules. These rules indicates the combination of sources-sinks that indicates a vulnerability.

With this knowledge, mariana-trench will review the code and find possible vulnerabilities on it.

Secrets leaked

An application may contain secrets (API keys, passwords, hidden urls, subdomains...) inside of it that you might be able to discover. You could us a tool such as https://github.com/dwisiswant0/apkleaks

Bypass Biometric Authentication

Bypass Biometric Authentication (Android)

Other interesting functions

  • Code execution: Runtime.exec(), ProcessBuilder(), native code:system()

  • Send SMSs: sendTextMessage, sendMultipartTestMessage

  • Native functions declared as native: public native, System.loadLibrary, System.load

Other tricks

content:// protocol

Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!

Hacking Insights Engage with content that delves into the thrill and challenges of hacking

Real-Time Hack News Keep up-to-date with fast-paced hacking world through real-time news and insights

Latest Announcements Stay informed with the newest bug bounties launching and crucial platform updates

Join us on Discord and start collaborating with top hackers today!


Dynamic Analysis

First of all, you need an environment where you can install the application and all the environment (Burp CA cert, Drozer and Frida mainly). Therefore, a rooted device (emulated or not) is extremely recommended.

Online Dynamic analysis

You can create a free account in: https://appetize.io/. This platform allows you to upload and execute APKs, so it is useful to see how an apk is behaving.

You can even see the logs of your application in the web and connect through adb.

Thanks to the ADB connection you can use Drozer and Frida inside the emulators.

Local Dynamic Analysis

Using an emulator

  • Android Studio (You can create x86 and arm devices, and according to this latest x86 versions support ARM libraries without needing an slow arm emulator).

  • Learn to set it up in this page:

AVD - Android Virtual Device
  • Genymotion (Free version: Personal Edition, you need to create an account. It's recommend to download the version WITH VirtualBox to avoid potential errors.)

  • Nox (Free, but it doesn't support Frida or Drozer).

When creating a new emulator on any platform remember that the bigger the screen is, the slower the emulator will run. So select small screens if possible.

To install google services (like AppStore) in Genymotion you need to click on the red marked button of the following image:

Also, notice that in the configuration of the Android VM in Genymotion you can select Bridge Network mode (this will be useful if you will be connecting to the Android VM from a different VM with the tools).

Use a physical device

You need to activate the debugging options and it will be cool if you can root it:

  1. Settings.

  2. (FromAndroid 8.0) Select System.

  3. Select About phone.

  4. Press Build number 7 times.

  5. Go back and you will find the Developer options.

Once you have installed the application, the first thing you should do is to try it and investigate what does it do, how does it work and get comfortable with it. I will suggest to perform this initial dynamic analysis using MobSF dynamic analysis + pidcat, so we will be able to learn how the application works while MobSF captures a lot of interesting data you can review later on.

Unintended Data Leakage

Logging

डेवलपर्स को debugging information को सार्वजनिक रूप से उजागर करने के प्रति सतर्क रहना चाहिए, क्योंकि इससे संवेदनशील डेटा लीक हो सकता है। एप्लिकेशन लॉग की निगरानी के लिए pidcat और adb logcat उपकरणों की सिफारिश की जाती है ताकि संवेदनशील जानकारी की पहचान और सुरक्षा की जा सके। Pidcat को इसके उपयोग में आसानी और पठनीयता के लिए पसंद किया जाता है।

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 ढांचा ऐप्स में कॉपी-पेस्ट कार्यक्षमता को सक्षम करता है, फिर भी यह एक जोखिम प्रस्तुत करता है क्योंकि अन्य एप्लिकेशन क्लिपबोर्ड तक पहुँच सकते हैं, जिससे संवेदनशील डेटा उजागर हो सकता है। यह महत्वपूर्ण है कि संवेदनशील अनुभागों के लिए कॉपी/पेस्ट कार्यों को बंद कर दिया जाए, जैसे कि क्रेडिट कार्ड विवरण, डेटा लीक को रोकने के लिए।

Crash Logs

यदि एक एप्लिकेशन crash होता है और logs सहेजता है, तो ये लॉग हमलावरों की मदद कर सकते हैं, विशेष रूप से जब एप्लिकेशन को रिवर्स-इंजीनियर नहीं किया जा सकता है। इस जोखिम को कम करने के लिए, क्रैश पर लॉगिंग से बचें, और यदि लॉग को नेटवर्क के माध्यम से भेजा जाना चाहिए, तो सुनिश्चित करें कि उन्हें सुरक्षा के लिए SSL चैनल के माध्यम से भेजा जाए।

As pentester, try to take a look to these logs.

Analytics Data Sent To 3rd Parties

एप्लिकेशन अक्सर Google Adsense जैसी सेवाओं को एकीकृत करते हैं, जो डेवलपर्स द्वारा अनुचित कार्यान्वयन के कारण अनजाने में संवेदनशील डेटा लीक कर सकते हैं। संभावित डेटा लीक की पहचान करने के लिए, यह सलाह दी जाती है कि एप्लिकेशन के ट्रैफ़िक को इंटरसेप्ट करें और देखें कि क्या कोई संवेदनशील जानकारी तीसरे पक्ष की सेवाओं को भेजी जा रही है।

SQLite DBs

Most of the applications will use internal SQLite databases to save information. During the pentest take a look to the databases created, the names of tables and columns and all the data saved because you could find sensitive information (which would be a vulnerability). Databases should be located in /data/data/the.package.name/databases like /data/data/com.mwr.example.sieve/databases

If the database is saving confidential information and is encrypted but you can find the password inside the application it's still a vulnerability.

Enumerate the tables using .tables and enumerate the columns of the tables doing .schema <table_name>

Drozer (Exploit Activities, Content Providers and Services)

From Drozer Docs: Drozer allows you to assume the role of an Android app and interact with other apps. It can do anything that an installed application can do, such as make use of Android’s Inter-Process Communication (IPC) mechanism and interact with the underlying operating system. . Drozer is s useful tool to exploit exported activities, exported services and Content Providers as you will learn in the following sections.

Exploiting exported Activities

Read this if you want to refresh what is an Android Activity. Also remember that the code of an activity starts in the onCreate method.

Authorisation bypass

When an Activity is exported you can invoke its screen from an external app. Therefore, if an activity with sensitive information is exported you could bypass the authentication mechanisms to access it.

Learn how to exploit exported activities with Drozer.

You can also start an exported activity from adb:

  • PackageName is com.example.demo

  • Exported ActivityName is com.example.test.MainActivity

adb shell am start -n com.example.demo/com.example.test.MainActivity

नोट: MobSF singleTask/singleInstance के उपयोग को android:launchMode में एक गतिविधि के रूप में दुर्भावनापूर्ण के रूप में पहचानता है, लेकिन इस के कारण, यह स्पष्ट रूप से केवल पुराने संस्करणों (API संस्करण < 21) पर खतरनाक है।

ध्यान दें कि एक प्राधिकरण बाईपास हमेशा एक कमजोरियों नहीं होती, यह इस पर निर्भर करेगा कि बाईपास कैसे काम करता है और कौन सी जानकारी उजागर होती है।

संवेदनशील जानकारी का रिसाव

गतिविधियाँ परिणाम भी लौटा सकती हैं। यदि आप एक निर्यातित और असुरक्षित गतिविधि को खोजने में सफल होते हैं जो setResult विधि को कॉल करती है और संवेदनशील जानकारी लौटाती है, तो यह संवेदनशील जानकारी का रिसाव है।

टैपजैकिंग

यदि टैपजैकिंग को रोका नहीं गया, तो आप निर्यातित गतिविधि का दुरुपयोग कर सकते हैं ताकि उपयोगकर्ता अप्रत्याशित क्रियाएँ कर सके। टैपजैकिंग क्या है, इसके बारे में अधिक जानकारी के लिए लिंक का पालन करें

सामग्री प्रदाताओं का शोषण - संवेदनशील जानकारी तक पहुँच और हेरफेर करना

यदि आप सामग्री प्रदाता क्या है, इसे ताज़ा करना चाहते हैं तो इसे पढ़ें। सामग्री प्रदाता मूल रूप से डेटा साझा करने के लिए उपयोग किए जाते हैं। यदि एक ऐप में उपलब्ध सामग्री प्रदाता हैं, तो आप उनसे संवेदनशील डेटा निकालने में सक्षम हो सकते हैं। यह भी संभावित SQL इंजेक्शन और पथ यात्रा का परीक्षण करने के लिए दिलचस्प है क्योंकि वे कमजोर हो सकते हैं।

ड्रोज़र के साथ सामग्री प्रदाताओं का शोषण कैसे करें, यह जानें।

सेवाओं का शोषण

यदि आप सेवा क्या है, इसे ताज़ा करना चाहते हैं तो इसे पढ़ें। याद रखें कि एक सेवा की क्रियाएँ onStartCommand विधि में शुरू होती हैं।

एक सेवा मूल रूप से कुछ ऐसा है जो डेटा प्राप्त कर सकता है, प्रसंस्करण कर सकता है और एक प्रतिक्रिया (या नहीं) लौटाता है। फिर, यदि एक एप्लिकेशन कुछ सेवाएँ निर्यात कर रहा है, तो आपको कोड की जांच करनी चाहिए ताकि यह समझ सकें कि यह क्या कर रहा है और गोपनीय जानकारी निकालने, प्राधिकरण उपायों को बाईपास करने के लिए इसे गतिशील रूप से परीक्षण करें... ड्रोज़र के साथ सेवाओं का शोषण कैसे करें, यह जानें।

प्रसारण रिसीवर्स का शोषण

यदि आप प्रसारण रिसीवर क्या है, इसे ताज़ा करना चाहते हैं तो इसे पढ़ें। याद रखें कि एक प्रसारण रिसीवर की क्रियाएँ onReceive विधि में शुरू होती हैं।

एक प्रसारण रिसीवर एक प्रकार के संदेश की प्रतीक्षा करेगा। रिसीवर संदेश को कैसे संभालता है, इसके आधार पर यह कमजोर हो सकता है। ड्रोज़र के साथ प्रसारण रिसीवर्स का शोषण कैसे करें, यह जानें।

स्कीमों / डीप लिंक का शोषण

आप मैन्युअल रूप से डीप लिंक की खोज कर सकते हैं, MobSF जैसे उपकरणों या इस स्क्रिप्ट का उपयोग करके। आप adb या एक ब्राउज़र का उपयोग करके एक घोषित स्कीम को खोल सकते हैं:

adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]

ध्यान दें कि आप पैकेज नाम को छोड़ सकते हैं और मोबाइल स्वचालित रूप से उस ऐप को कॉल करेगा जो उस लिंक को खोलना चाहिए।

<!-- Browser regular link -->
<a href="scheme://hostname/path?param=value">Click me</a>
<!-- fallback in your url you could try the intent url -->
<a href="intent://hostname#Intent;scheme=scheme;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>

कोड निष्पादित किया गया

ऐप में निष्पादित होने वाले कोड को खोजने के लिए, उस गतिविधि पर जाएं जिसे डीप लिंक द्वारा कॉल किया गया है और फ़ंक्शन onNewIntent को खोजें।

संवेदनशील जानकारी

हर बार जब आप एक डीप लिंक पाते हैं, तो जांचें कि यह URL पैरामीटर के माध्यम से संवेदनशील डेटा (जैसे पासवर्ड) प्राप्त नहीं कर रहा है, क्योंकि कोई अन्य एप्लिकेशन डीप लिंक का अनुकरण कर सकता है और उस डेटा को चुरा सकता है!

पैरामीटर पथ में

आपको यह भी जांचना चाहिए कि क्या कोई डीप लिंक URL के पथ के अंदर किसी पैरामीटर का उपयोग कर रहा है जैसे: https://api.example.com/v1/users/{username} , इस मामले में आप पथ यात्रा को मजबूर कर सकते हैं और कुछ इस तरह पहुंच सकते हैं: example://app/users?username=../../unwanted-endpoint%3fparam=value . ध्यान दें कि यदि आप एप्लिकेशन के अंदर सही एंडपॉइंट्स पाते हैं, तो आप Open Redirect (यदि पथ का एक भाग डोमेन नाम के रूप में उपयोग किया जाता है), खाता अधिग्रहण (यदि आप CSRF टोकन के बिना उपयोगकर्ता विवरण को संशोधित कर सकते हैं और कमजोर एंडपॉइंट ने सही विधि का उपयोग किया) और किसी अन्य कमजोरियों का कारण बन सकते हैं। इसके बारे में अधिक जानकारी यहाँ है।

अधिक उदाहरण

एक दिलचस्प बग बाउंटी रिपोर्ट लिंक के बारे में (/.well-known/assetlinks.json).

ट्रांसपोर्ट लेयर निरीक्षण और सत्यापन विफलताएँ

  • सर्टिफिकेट हमेशा ठीक से निरीक्षित नहीं होते Android एप्लिकेशनों द्वारा। इन एप्लिकेशनों के लिए चेतावनियों की अनदेखी करना और स्व-हस्ताक्षरित सर्टिफिकेट स्वीकार करना या कुछ मामलों में HTTP कनेक्शन का उपयोग करना सामान्य है।

  • SSL/TLS हैंडशेक के दौरान बातचीत कभी-कभी कमजोर होती है, असुरक्षित सिफर सूट का उपयोग करते हुए। यह कमजोरियों के कारण कनेक्शन को मैन-इन-द-मिडल (MITM) हमलों के प्रति संवेदनशील बनाता है, जिससे हमलावर डेटा को डिक्रिप्ट कर सकते हैं।

  • निजी जानकारी का लीक होना एक जोखिम है जब एप्लिकेशन सुरक्षित चैनलों का उपयोग करके प्रमाणीकरण करते हैं लेकिन फिर अन्य लेनदेन के लिए असुरक्षित चैनलों के माध्यम से संवाद करते हैं। यह दृष्टिकोण संवेदनशील डेटा, जैसे सत्र कुकीज़ या उपयोगकर्ता विवरण, को दुर्भावनापूर्ण संस्थाओं द्वारा इंटरसेप्शन से बचाने में विफल रहता है।

सर्टिफिकेट सत्यापन

हम सर्टिफिकेट सत्यापन पर ध्यान केंद्रित करेंगे। सुरक्षा बढ़ाने के लिए सर्वर के सर्टिफिकेट की अखंडता की पुष्टि की जानी चाहिए। यह महत्वपूर्ण है क्योंकि असुरक्षित TLS कॉन्फ़िगरेशन और असुरक्षित चैनलों के माध्यम से संवेदनशील डेटा का संचरण महत्वपूर्ण जोखिम पैदा कर सकता है। सर्वर सर्टिफिकेट की पुष्टि करने और कमजोरियों को संबोधित करने के लिए विस्तृत चरणों के लिए, यह संसाधन व्यापक मार्गदर्शन प्रदान करता है।

SSL पिनिंग

SSL पिनिंग एक सुरक्षा उपाय है जहां एप्लिकेशन सर्वर के सर्टिफिकेट की पुष्टि एक ज्ञात प्रति के खिलाफ करता है जो एप्लिकेशन के भीतर संग्रहीत होती है। यह विधि MITM हमलों को रोकने के लिए आवश्यक है। संवेदनशील जानकारी को संभालने वाले एप्लिकेशनों के लिए SSL पिनिंग को लागू करना अत्यधिक अनुशंसित है।

ट्रैफ़िक निरीक्षण

HTTP ट्रैफ़िक का निरीक्षण करने के लिए, प्रॉक्सी टूल का सर्टिफिकेट स्थापित करना आवश्यक है (जैसे, Burp)। इस सर्टिफिकेट को स्थापित किए बिना, एन्क्रिप्टेड ट्रैफ़िक प्रॉक्सी के माध्यम से दिखाई नहीं दे सकता। कस्टम CA सर्टिफिकेट स्थापित करने के लिए एक गाइड के लिए, यहाँ क्लिक करें

API स्तर 24 और उससे ऊपर को लक्षित करने वाले एप्लिकेशनों को प्रॉक्सी के CA सर्टिफिकेट को स्वीकार करने के लिए नेटवर्क सुरक्षा कॉन्फ़िग को संशोधित करने की आवश्यकता होती है। एन्क्रिप्टेड ट्रैफ़िक का निरीक्षण करने के लिए यह कदम महत्वपूर्ण है। नेटवर्क सुरक्षा कॉन्फ़िग को संशोधित करने के लिए निर्देशों के लिए, इस ट्यूटोरियल का संदर्भ लें

SSL पिनिंग को बायपास करना

जब SSL पिनिंग लागू होती है, तो HTTPS ट्रैफ़िक का निरीक्षण करने के लिए इसे बायपास करना आवश्यक हो जाता है। इस उद्देश्य के लिए विभिन्न विधियाँ उपलब्ध हैं:

  • स्वचालित रूप से संशोधित करें apk को SSL पिनिंग को बायपास करने के लिए apk-mitm के साथ। इस विकल्प का सबसे बड़ा लाभ यह है कि आपको SSL पिनिंग को बायपास करने के लिए रूट की आवश्यकता नहीं होगी, लेकिन आपको एप्लिकेशन को हटाना और नए को पुनः स्थापित करना होगा, और यह हमेशा काम नहीं करेगा।

  • आप इस सुरक्षा को बायपास करने के लिए Frida का उपयोग कर सकते हैं (नीचे चर्चा की गई)। यहाँ Burp+Frida+Genymotion का उपयोग करने के लिए एक गाइड है: 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"

  • आप MobSF डायनामिक एनालिसिस का उपयोग करके स्वचालित रूप से SSL पिनिंग को बायपास करने की कोशिश कर सकते हैं (नीचे समझाया गया)

  • यदि आप अभी भी सोचते हैं कि कुछ ट्रैफ़िक है जिसे आप कैप्चर नहीं कर रहे हैं, तो आप iptables का उपयोग करके ट्रैफ़िक को burp पर अग्रेषित करने की कोशिश कर सकते हैं। इस ब्लॉग को पढ़ें: https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62

सामान्य वेब कमजोरियों की खोज

यह भी महत्वपूर्ण है कि आप एप्लिकेशन के भीतर सामान्य वेब कमजोरियों की खोज करें। इन कमजोरियों की पहचान और शमन के लिए विस्तृत जानकारी इस सारांश के दायरे से परे है लेकिन इसे अन्यत्र व्यापक रूप से कवर किया गया है।

Frida

Frida डेवलपर्स, रिवर्स-इंजीनियर्स और सुरक्षा शोधकर्ताओं के लिए एक डायनामिक इंस्ट्रुमेंटेशन टूलकिट है। आप चल रहे एप्लिकेशन तक पहुँच सकते हैं और रन टाइम पर विधियों को हुक कर सकते हैं ताकि व्यवहार को बदल सकें, मान बदल सकें, मान निकाल सकें, विभिन्न कोड चला सकें... यदि आप Android एप्लिकेशनों का परीक्षण करना चाहते हैं, तो आपको Frida का उपयोग करना सीखना होगा।

Dump Memory - Fridump

जांचें कि क्या एप्लिकेशन संवेदनशील जानकारी को मेमोरी में संग्रहीत कर रहा है जिसे इसे संग्रहीत नहीं करना चाहिए जैसे पासवर्ड या म्नेमोनिक्स।

Fridump3 का उपयोग करके आप ऐप की मेमोरी को इस तरह डंप कर सकते हैं:

# With PID
python3 fridump3.py -u <PID>

# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"

यह ./dump फ़ोल्डर में मेमोरी को डंप करेगा, और वहाँ आप कुछ इस तरह grep कर सकते हैं:

strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$"

कीस्टोर में संवेदनशील डेटा

Android में कीस्टोर संवेदनशील डेटा संग्रहीत करने के लिए सबसे अच्छा स्थान है, हालाँकि, पर्याप्त विशेषाधिकारों के साथ इसे एक्सेस करना संभव है। चूंकि एप्लिकेशन यहाँ स्पष्ट पाठ में संवेदनशील डेटा संग्रहीत करने की प्रवृत्ति रखते हैं, इसलिए pentests को इसे रूट उपयोगकर्ता के रूप में या किसी ऐसे व्यक्ति के साथ जांचना चाहिए जिसके पास डिवाइस तक भौतिक पहुंच हो, जो इस डेटा को चुरा सकता है।

यहां तक कि अगर एक ऐप ने कीस्टोर में डेटा संग्रहीत किया है, तो डेटा को एन्क्रिप्ट किया जाना चाहिए।

कीस्टोर के अंदर डेटा तक पहुँचने के लिए आप इस Frida स्क्रिप्ट का उपयोग कर सकते हैं: https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js

frida -U -f com.example.app -l frida-scripts/tracer-cipher.js

फिंगरप्रिंट/बायोमेट्रिक्स बायपास

निम्नलिखित Frida स्क्रिप्ट का उपयोग करके यह संभव हो सकता है कि फिंगरप्रिंट प्रमाणीकरण को बायपास किया जा सके जो Android अनुप्रयोग कुछ संवेदनशील क्षेत्रों की सुरक्षा के लिए कर सकते हैं:

frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>

पृष्ठभूमि छवियाँ

जब आप एक एप्लिकेशन को पृष्ठभूमि में रखते हैं, तो Android एप्लिकेशन का एक स्नैपशॉट संग्रहीत करता है ताकि जब इसे अग्रभूमि में पुनर्प्राप्त किया जाए, तो यह ऐप से पहले छवि लोड करना शुरू कर दे ताकि ऐसा लगे कि ऐप तेजी से लोड हुआ है।

हालांकि, यदि इस स्नैपशॉट में संवेदनशील जानकारी है, तो स्नैपशॉट तक पहुंच रखने वाला कोई व्यक्ति उस जानकारी को चुरा सकता है (ध्यान दें कि इसे एक्सेस करने के लिए आपको रूट की आवश्यकता है)।

स्नैपशॉट आमतौर पर यहाँ संग्रहीत होते हैं: /data/system_ce/0/snapshots

Android एक तरीका प्रदान करता है FLAG_SECURE लेआउट पैरामीटर सेट करके स्क्रीनशॉट कैप्चर को रोकने के लिए। इस ध्वज का उपयोग करके, विंडो की सामग्री को सुरक्षित के रूप में माना जाता है, जिससे यह स्क्रीनशॉट में दिखाई नहीं देती या असुरक्षित डिस्प्ले पर नहीं देखी जा सकती।

getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);

Android Application Analyzer

यह उपकरण आपको गतिशील विश्लेषण के दौरान विभिन्न उपकरणों का प्रबंधन करने में मदद कर सकता है: https://github.com/NotSoSecure/android_application_analyzer

Intent Injection

डेवलपर्स अक्सर प्रॉक्सी घटक जैसे गतिविधियाँ, सेवाएँ, और प्रसारण रिसीवर बनाते हैं जो इन Intents को संभालते हैं और उन्हें startActivity(...) या sendBroadcast(...) जैसे तरीकों में पास करते हैं, जो जोखिम भरा हो सकता है।

खतरा इस बात में है कि हमलावरों को गैर-निर्यातित ऐप घटकों को ट्रिगर करने या संवेदनशील सामग्री प्रदाताओं तक पहुँचने की अनुमति दी जा रही है, इन Intents को गलत दिशा में भेजकर। एक उल्लेखनीय उदाहरण WebView घटक है जो URLs को Intent वस्तुओं में Intent.parseUri(...) के माध्यम से परिवर्तित करता है और फिर उन्हें निष्पादित करता है, जो संभावित रूप से दुर्भावनापूर्ण Intent इंजेक्शन की ओर ले जा सकता है।

Essential Takeaways

  • Intent Injection वेब के Open Redirect समस्या के समान है।

  • शोषण में Intent वस्तुओं को अतिरिक्त के रूप में पास करना शामिल है, जिन्हें असुरक्षित संचालन निष्पादित करने के लिए पुनर्निर्देशित किया जा सकता है।

  • यह गैर-निर्यातित घटकों और सामग्री प्रदाताओं को हमलावरों के लिए उजागर कर सकता है।

  • WebView का URL से Intent में रूपांतरण अनपेक्षित क्रियाओं को सुविधाजनक बना सकता है।

Android Client Side Injections and others

संभवतः आप इस प्रकार की कमजोरियों के बारे में वेब से जानते हैं। आपको Android एप्लिकेशन में इन कमजोरियों के प्रति विशेष रूप से सतर्क रहना चाहिए:

  • SQL Injection: गतिशील प्रश्नों या सामग्री-प्रदाताओं के साथ काम करते समय सुनिश्चित करें कि आप पैरामीटरयुक्त प्रश्नों का उपयोग कर रहे हैं।

  • JavaScript Injection (XSS): सुनिश्चित करें कि किसी भी WebViews के लिए JavaScript और प्लगइन समर्थन बंद है (डिफ़ॉल्ट रूप से बंद)। यहाँ अधिक जानकारी

  • Local File Inclusion: WebViews को फ़ाइल प्रणाली तक पहुँच बंद होनी चाहिए (डिफ़ॉल्ट रूप से सक्षम) - (webview.getSettings().setAllowFileAccess(false);)यहाँ अधिक जानकारी

  • Eternal cookies: कई मामलों में जब Android एप्लिकेशन सत्र समाप्त करता है, तो कुकी को रद्द नहीं किया जाता है या इसे डिस्क पर भी सहेजा जा सकता है।


अनुभवी हैकरों और बग बाउंटी शिकारियों के साथ संवाद करने के लिए HackenProof Discord सर्वर में शामिल हों!

Hacking Insights हैकिंग के रोमांच और चुनौतियों में गहराई से जाने वाली सामग्री के साथ संलग्न हों

Real-Time Hack News वास्तविक समय की समाचार और अंतर्दृष्टि के माध्यम से तेज़-तर्रार हैकिंग दुनिया के साथ अद्यतित रहें

Latest Announcements नवीनतम बग बाउंटी लॉन्च और महत्वपूर्ण प्लेटफ़ॉर्म अपडेट के साथ सूचित रहें

Join us on Discord और आज ही शीर्ष हैकरों के साथ सहयोग करना शुरू करें!

Automatic Analysis

Static analysis

Vulnerability assessment of the application एक अच्छे वेब-आधारित फ्रंटेंड का उपयोग करके। आप गतिशील विश्लेषण भी कर सकते हैं (लेकिन आपको वातावरण तैयार करने की आवश्यकता है)।

docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

Notice that MobSF can analyse Android(apk), IOS(ipa) and Windows(apx) applications (Windows applications must be analyzed from a MobSF installed in a Windows host). Also, if you create a ZIP file with the source code if an Android or an IOS app (go to the root folder of the application, select everything and create a ZIPfile), it will be able to analyse it also.

MobSF also allows you to diff/Compare analysis and to integrate VirusTotal (you will need to set your API key in MobSF/settings.py and enable it: VT_ENABLED = TRUE VT_API_KEY = <Your API key> VT_UPLOAD = TRUE). You can also set VT_UPLOAD to False, then the hash will be upload instead of the file.

Assisted Dynamic analysis with MobSF

MobSF can also be very helpful for dynamic analysis in Android, but in that case you will need to install MobSF and genymotion in your host (a VM or Docker won't work). Note: You need to start first a VM in genymotion and then MobSF. The MobSF dynamic analyser can:

  • Dump application data (URLs, logs, clipboard, screenshots made by you, screenshots made by "Exported Activity Tester", emails, SQLite databases, XML files, and other created files). All of this is done automatically except for the screenshots, you need to press when you want a screenshot or you need to press "Exported Activity Tester" to obtain screenshots of all the exported activities.

  • Capture HTTPS traffic

  • Use Frida to obtain runtime information

From android versions > 5, it will automatically start Frida and will set global proxy settings to capture traffic. It will only capture traffic from the tested application.

Frida

By default, it will also use some Frida Scripts to bypass SSL pinning, root detection and debugger detection and to monitor interesting APIs. MobSF can also invoke exported activities, grab screenshots of them and save them for the report.

To start the dynamic testing press the green bottom: "Start Instrumentation". Press the "Frida Live Logs" to see the logs generated by the Frida scripts and "Live API Monitor" to see all the invocation to hooked methods, arguments passed and returned values (this will appear after pressing "Start Instrumentation"). MobSF also allows you to load your own Frida scripts (to send the results of your Friday scripts to MobSF use the function send()). It also has several pre-written scripts you can load (you can add more in MobSF/DynamicAnalyzer/tools/frida_scripts/others/), just select them, press "Load" and press "Start Instrumentation" (you will be able to see the logs of that scripts inside "Frida Live Logs").

Moreover, you have some Auxiliary Frida functionalities:

  • Enumerate Loaded Classes: यह सभी लोड की गई कक्षाओं को प्रिंट करेगा

  • Capture Strings: यह एप्लिकेशन का उपयोग करते समय सभी कैप्चर किए गए स्ट्रिंग्स को प्रिंट करेगा (बहुत शोर)

  • Capture String Comparisons: यह बहुत उपयोगी हो सकता है। यह दो स्ट्रिंग्स को दिखाएगा जो तुलना की जा रही हैं और यदि परिणाम सत्य या असत्य था।

  • Enumerate Class Methods: कक्षा का नाम डालें (जैसे "java.io.File") और यह कक्षा के सभी तरीकों को प्रिंट करेगा।

  • Search Class Pattern: पैटर्न द्वारा कक्षाओं की खोज करें

  • Trace Class Methods: Trace एक पूरी कक्षा (कक्षा के सभी तरीकों के इनपुट और आउटपुट देखें)। याद रखें कि डिफ़ॉल्ट रूप से MobSF कई दिलचस्प Android API तरीकों को ट्रेस करता है।

Once you have selected the auxiliary module you want to use you need to press "Start Intrumentation" and you will see all the outputs in "Frida Live Logs".

Shell

Mobsf also brings you a shell with some adb commands, MobSF commands, and common shell commands at the bottom of the dynamic analysis page. Some interesting commands:

help
shell ls
activities
exported_activities
services
receivers

HTTP उपकरण

जब http ट्रैफ़िक कैप्चर किया जाता है, तो आप "HTTP(S) ट्रैफ़िक" के नीचे कैप्चर किए गए ट्रैफ़िक का एक भद्दा दृश्य देख सकते हैं या "Start HTTPTools" हरे बटन में एक बेहतर दृश्य देख सकते हैं। दूसरे विकल्प से, आप कैप्चर किए गए अनुरोधों को प्रॉक्सी जैसे Burp या Owasp ZAP पर भेज सकते हैं। इसके लिए, Burp चालू करें --> Intercept बंद करें --> MobSB HTTPTools में अनुरोध का चयन करें --> "Send to Fuzzer" पर दबाएं --> प्रॉक्सी पता चुनें (http://127.0.0.1:8080\)।

एक बार जब आप MobSF के साथ गतिशील विश्लेषण समाप्त कर लेते हैं, तो आप "Start Web API Fuzzer" पर दबा सकते हैं ताकि http अनुरोधों को फज़ किया जा सके और कमजोरियों की तलाश की जा सके।

MobSF के साथ गतिशील विश्लेषण करने के बाद प्रॉक्सी सेटिंग्स गलत हो सकती हैं और आप उन्हें GUI से ठीक नहीं कर पाएंगे। आप प्रॉक्सी सेटिंग्स को ठीक करने के लिए:

adb shell settings put global http_proxy :0

Assisted Dynamic Analysis with Inspeckage

आप इस उपकरण को Inspeckage से प्राप्त कर सकते हैं। यह उपकरण कुछ Hooks का उपयोग करेगा ताकि आपको यह जानने में मदद मिल सके कि एप्लिकेशन में क्या हो रहा है जब आप dynamic analysis करते हैं।

यह GUI के साथ स्थिर विश्लेषण करने के लिए एक शानदार उपकरण है

यह उपकरण कई सुरक्षा संबंधित Android एप्लिकेशन कमजोरियों की खोज के लिए डिज़ाइन किया गया है, चाहे वह source code में हो या पैकेज्ड APKs में। यह उपकरण "Proof-of-Concept" तैनात करने योग्य APK और ADB कमांड बनाने में भी सक्षम है, ताकि कुछ खोजी गई कमजोरियों (Exposed activities, intents, tapjacking...) का शोषण किया जा सके। Drozer की तरह, परीक्षण उपकरण को रूट करने की आवश्यकता नहीं है।

pip3 install --user qark  # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
qark --java path/to/parent/java/folder
qark --java path/to/specific/java/file.java

  • सभी निकाले गए फ़ाइलों को आसान संदर्भ के लिए प्रदर्शित करता है

  • APK फ़ाइलों को स्वचालित रूप से Java और Smali प्रारूप में डिकंपाइल करता है

  • सामान्य कमजोरियों और व्यवहार के लिए AndroidManifest.xml का विश्लेषण करें

  • सामान्य कमजोरियों और व्यवहार के लिए स्थैतिक स्रोत कोड विश्लेषण

  • डिवाइस जानकारी

  • और अधिक

reverse-apk relative/path/to/APP.apk

SUPER एक कमांड-लाइन एप्लिकेशन है जिसे Windows, MacOS X और Linux में उपयोग किया जा सकता है, जो .apk फ़ाइलों का विश्लेषण करता है ताकि कमजोरियों की खोज की जा सके। यह APKs को डिकंप्रेस करके और उन कमजोरियों का पता लगाने के लिए नियमों की एक श्रृंखला लागू करके ऐसा करता है।

सभी नियम rules.json फ़ाइल में केंद्रित हैं, और प्रत्येक कंपनी या परीक्षक अपने आवश्यक विश्लेषण के लिए अपने नियम बना सकता है।

नवीनतम बाइनरी डाउनलोड पृष्ठ से डाउनलोड करें।

super-analyzer {apk_file}

StaCoAn एक क्रॉसप्लेटफ़ॉर्म उपकरण है जो डेवलपर्स, बग बाउंटी शिकारियों और नैतिक हैकरों को मोबाइल अनुप्रयोगों पर स्टैटिक कोड विश्लेषण करने में मदद करता है।

विचार यह है कि आप अपने मोबाइल अनुप्रयोग फ़ाइल (एक .apk या .ipa फ़ाइल) को StaCoAn अनुप्रयोग पर खींचते और छोड़ते हैं और यह आपके लिए एक दृश्य और पोर्टेबल रिपोर्ट उत्पन्न करेगा। आप सेटिंग्स और वर्डलिस्ट को समायोजित कर सकते हैं ताकि आपको एक अनुकूलित अनुभव मिल सके।

डाउनलोड नवीनतम रिलीज़:

./stacoan

AndroBugs Framework एक Android कमजोरियों का विश्लेषण प्रणाली है जो डेवलपर्स या हैकर्स को Android अनुप्रयोगों में संभावित सुरक्षा कमजोरियों को खोजने में मदद करती है। Windows releases

python androbugs.py -f [APK file]
androbugs.exe -f [APK file]

Androwarn एक उपकरण है जिसका मुख्य उद्देश्य एक Android एप्लिकेशन द्वारा विकसित संभावित दुर्भावनापूर्ण व्यवहारों का पता लगाना और उपयोगकर्ता को चेतावनी देना है।

पता लगाने की प्रक्रिया एप्लिकेशन के Dalvik बाइटकोड का स्थैतिक विश्लेषण करके की जाती है, जिसे Smali के रूप में दर्शाया गया है, androguard पुस्तकालय के साथ।

यह उपकरण "खराब" एप्लिकेशनों के सामान्य व्यवहार की तलाश करता है जैसे: टेलीफोनी पहचानकर्ताओं का बहिर्वाह, ऑडियो/वीडियो प्रवाह का अवरोधन, PIM डेटा में संशोधन, मनमाने कोड का निष्पादन...

python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3

MARA एक Mोबाइल Aप्लिकेशन Rिवर्स इंजीनियरिंग और Aनालिसिस फ्रेमवर्क है। यह एक उपकरण है जो सामान्यतः उपयोग किए जाने वाले मोबाइल एप्लिकेशन रिवर्स इंजीनियरिंग और विश्लेषण उपकरणों को एकत्र करता है, ताकि OWASP मोबाइल सुरक्षा खतरों के खिलाफ मोबाइल एप्लिकेशनों का परीक्षण करने में सहायता मिल सके। इसका उद्देश्य इस कार्य को मोबाइल एप्लिकेशन डेवलपर्स और सुरक्षा पेशेवरों के लिए आसान और मित्रवत बनाना है।

यह सक्षम है:

  • विभिन्न उपकरणों का उपयोग करके Java और Smali कोड निकालना

  • smalisca, ClassyShark, androbugs, androwarn, APKiD का उपयोग करके APKs का विश्लेषण करना

  • regexps का उपयोग करके APK से निजी जानकारी निकालना।

  • मैनिफेस्ट का विश्लेषण करना।

  • pyssltest, testssl और whatweb का उपयोग करके पाए गए डोमेन का विश्लेषण करना

  • apk-deguard.com के माध्यम से APK को डिओबफस्केट करना

Koodous

मैलवेयर का पता लगाने के लिए उपयोगी: https://koodous.com/

कोड को ओबफस्केट/डिओबफस्केट करना

ध्यान दें कि जिस सेवा और कॉन्फ़िगरेशन का आप उपयोग करते हैं, उसके आधार पर कोड को ओबफस्केट किया जा सकता है या नहीं। रहस्य ओबफस्केटेड हो सकते हैं या नहीं।

विकिपीडिया से: ProGuard एक ओपन-सोर्स कमांड-लाइन उपकरण है जो Java कोड को संकुचित, अनुकूलित और ओबफस्केट करता है। यह बाइटकोड को अनुकूलित करने के साथ-साथ अप्रयुक्त निर्देशों का पता लगाने और उन्हें हटाने में सक्षम है। ProGuard मुफ्त सॉफ़्टवेयर है और इसे GNU जनरल पब्लिक लाइसेंस, संस्करण 2 के तहत वितरित किया जाता है।

ProGuard Android SDK का हिस्सा के रूप में वितरित किया जाता है और रिलीज़ मोड में एप्लिकेशन बनाते समय चलता है।

APK को डिओबफस्केट करने के लिए चरण-दर-चरण गाइड https://blog.lexfo.fr/dexguard.html पर खोजें

(उस गाइड से) आखिरी बार जब हमने जांचा, Dexguard का संचालन मोड था:

  • एक संसाधन को InputStream के रूप में लोड करें;

  • इसे डिक्रिप्ट करने के लिए FilterInputStream से विरासत में मिली एक क्लास को परिणाम दें;

  • एक रिवर्सर के समय को बर्बाद करने के लिए कुछ बेकार ओबफस्केशन करें;

  • DEX फ़ाइल प्राप्त करने के लिए डिक्रिप्टेड परिणाम को ZipInputStream में दें;

  • अंततः loadDex विधि का उपयोग करके परिणामस्वरूप DEX को एक संसाधन के रूप में लोड करें।

DeGuard Android ओबफस्केशन उपकरणों द्वारा किए गए ओबफस्केशन की प्रक्रिया को उलटता है। यह कोड निरीक्षण और पुस्तकालयों की भविष्यवाणी सहित कई सुरक्षा विश्लेषणों को सक्षम बनाता है।

आप उनके प्लेटफॉर्म पर एक ओबफस्केटेड APK अपलोड कर सकते हैं।

यह एक सामान्य Android डिओबफस्केटर है। Simplify वास्तव में एक ऐप को निष्पादित करता है ताकि इसके व्यवहार को समझा जा सके और फिर कोड को अनुकूलित करने की कोशिश करता है ताकि यह समान रूप से व्यवहार करे लेकिन इसे मानव के लिए समझना आसान हो। प्रत्येक अनुकूलन प्रकार सरल और सामान्य है, इसलिए यह मायने नहीं रखता कि ओबफस्केशन का विशिष्ट प्रकार क्या है।

APKiD आपको यह जानकारी देता है कि एक APK कैसे बनाया गया था। यह कई कंपाइलर्स, पैकर, ओबफस्केटर्स, और अन्य अजीब चीजों की पहचान करता है। यह PEiD Android के लिए है।

मैनुअल

कस्टम ओबफस्केशन को कैसे रिवर्स करें इस पर कुछ ट्रिक्स सीखने के लिए इस ट्यूटोरियल को पढ़ें

प्रयोगशालाएँ

AndroL4b एक Android सुरक्षा वर्चुअल मशीन है जो ubuntu-mate पर आधारित है, जिसमें रिवर्स इंजीनियरिंग और मैलवेयर विश्लेषण के लिए विभिन्न सुरक्षा विशेषज्ञों और शोधकर्ताओं से नवीनतम फ्रेमवर्क, ट्यूटोरियल और प्रयोगशालाओं का संग्रह शामिल है।

संदर्भ

अभी आजमाना बाकी है

Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!

Hacking Insights Engage with content that delves into the thrill and challenges of hacking

Real-Time Hack News Keep up-to-date with fast-paced hacking world through real-time news and insights

Latest Announcements Stay informed with the newest bug bounties launching and crucial platform updates

Join us on Discord and start collaborating with top hackers today!

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated