Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

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

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
droidground — एंड्रॉइड CTF चुनौतियों के लिए एक लचीला प्लेग्राउंड। | Kitploit
उपकरण/GitHubGitHub/secforce/droidground
एंड्रॉइड सुरक्षागतिशील विश्लेषण (सैंडबॉक्सिंग)शोषणमोबाइल ऐप पेंटेस्टिंगCTFपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubsecforce/droidground

droidground

एंड्रॉइड CTF चुनौतियों के लिए एक लचीला प्लेग्राउंड।

रिपॉजिटरी देखें
117715 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट


droidground

DroidGround


वेबसाइट | डेमो

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

DroidGround इस समस्या को हल करने के लिए डिज़ाइन किया गया है।

यह एक कस्टम-निर्मित प्लेटफ़ॉर्म है जो नियंत्रित और यथार्थवादी वातावरण में Android मोबाइल हैकिंग चुनौतियों की मेज़बानी करता है, जहाँ हमलावरों को बस इतना प्रतिबंधित किया जाता है कि उन्हें चुनौतियों को इच्छित तरीके से हल करना पड़े।

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

📋 विषय-सूची

  • 🧭 अवलोकन
  • ✨ विशेषताएँ
  • 📸 स्क्रीनशॉट
  • ⚙️ कॉन्फ़िगरेशन
  • 🧩 उपयोग के मामले
  • ⚙️ उपयोग
  • 💡 सुझाव
  • 🛠 विकास
  • 🤝 योगदान
  • 📚 श्रेय
  • 🪪 लाइसेंस

🧭 अवलोकन

DroidGround कई प्रकार की Android चुनौतियों को सक्षम बनाता है जिन्हें पारंपरिक CTF सेटअप में लागू करना अन्यथा कठिन होता है। उदाहरण के लिए, एक रिमोट कोड एक्ज़ीक्यूशन (RCE) चुनौती में, खिलाड़ियों को स्थानीय विश्लेषण के लिए एक APK प्राप्त हो सकता है। कमज़ोरी खोजने के बाद, वे एक Frida स्क्रिप्ट विकसित कर सकते हैं और उसे DroidGround के माध्यम से वास्तविक लक्षित डिवाइस पर चला सकते हैं ताकि फ़्लैग को आंतरिक स्टोरेज से निकाल सकें। अन्य चुनौती प्रकारों में छिपी हुई गतिविधियाँ (hidden activities), कस्टम ब्रॉडकास्ट इंटेंट, सेवा शोषण, या प्रीलोडेड टूल्स का उपयोग करके डायनेमिक विश्लेषण शामिल हो सकते हैं।

रियल-टाइम डिवाइस स्ट्रीमिंग, फीचर्स पर सूक्ष्म-स्तरीय (fine-grained) नियंत्रण, Frida एकीकरण, और अनुकूलन योग्य सेटअप और रीसेट स्क्रिप्ट के साथ, DroidGround CTF आयोजकों को सुरक्षित, लचीली और यथार्थवादी Android चुनौतियाँ बनाने में सशक्त बनाता है जो सामान्यतः संभव से कहीं आगे जाती हैं।

✨ विशेषताएँ

DroidGround सर्वर-नियंत्रित सुविधाओं का एक समृद्ध सेट प्रदान करता है।

  • रियल-टाइम डिवाइस स्क्रीन (scrcpy के माध्यम से)
  • चुनौती की स्थिति रीसेट करें
  • ऐप पुनः आरंभ करें / गतिविधि शुरू करें / सेवा शुरू करें
  • ब्रॉडकास्ट इंटेंट भेजें
  • डिवाइस बंद करें / रीबूट करें
  • बगरिपोर्ट डाउनलोड करें (bugreportz)
  • Frida स्क्रिप्टिंग
    • प्रीलोडेड लाइब्रेरी से चलाएँ (जेल्ड मोड)
    • मनमानी स्क्रिप्ट चलाएँ (फुल मोड)
  • फ़ाइल ब्राउज़र
  • टर्मिनल एक्सेस
  • APK प्रबंधन
  • Logcat व्यूअर
  • एक्सप्लॉइट सर्वर (यदि टीम मोड सक्षम है)

लगभग सभी सुविधाएँ मॉड्यूलर हैं और पर्यावरण चर (environment variables) के माध्यम से परिभाषित की जाती हैं, जिससे चुनौती के दायरे पर सटीक नियंत्रण सुनिश्चित होता है।

📸 स्क्रीनशॉट

⚙️ कॉन्फ़िगरेशन

रूट निर्देशिका में .env.sample फ़ाइल एक अच्छा प्रारंभिक बिंदु है। यह वर्तमान में समर्थित सभी env वेरिएबल्स की पूरी सूची है:

DROIDGROUND_IP_IFACE पहले सटीक मिलान की खोज करता है और फिर उस पहले इंटरफ़ेस पर फ़ॉलबैक करता है जो प्रदान किए गए मान से शुरू होता है, क्योंकि Docker कंटेनर के भीतर केवल नेटवर्क इंटरफ़ेस उपसर्ग (prefix) निर्दिष्ट करने की अनुमति देता है।

DROIDGROUND_NUM_TEAMS वेरिएबल का उपयोग एप्लिकेशन के व्यवहार को आंतरिक रूप से थोड़ा बदल देता है। यदि यह विकल्प सेट है:

  1. एक्सप्लॉइट सर्वर सुविधा सक्षम हो जाती है, जिससे प्रत्येक टीम अपने स्वयं के (बहुत सरल) एक्सप्लॉइट सर्वर का उपयोग अपने टीम टोकन के माध्यम से कर सकती है।
  2. एक्सप्लॉइट ऐप्स को इंस्टॉल और चलाने के लिए टीम टोकन आवश्यक होगा। प्रत्येक इंस्टॉल किया गया ऐप एक टीम से जुड़ा होगा और अन्य टीमें उसे नहीं चला पाएँगी।

यह उन चुनौतियों में एक ही DroidGround इंस्टेंस को कई टीमों के साथ साझा करने की अनुमति देता है जहाँ फ़्लैग को नेटवर्क अनुरोध के माध्यम से बाहर निकाला (exfiltrate) जा सकता है। यह CTF प्रतियोगिताओं के लिए DroidGround की डिप्लॉय लागत को काफी हद तक कम करता है।

इसके अलावा, यदि मान -1 पर सेट है तो यह तथाकथित अनलिमिटेड टीम्स (Unlimited Teams) मोड को सक्षम करेगा। इस मोड में अवलोकन पृष्ठ पर एक नया टीम टोकन जनरेट करने के लिए एक बटन उपलब्ध होगा। यदि यह मोड सक्षम है तो सभी DROIDGROUND_TEAM_TOKEN_<N> वेरिएबल्स को अनदेखा कर दिया जाता है।

🧩 उपयोग के मामले

यहाँ कुछ तरीके दिए गए हैं जिनसे DroidGround का उपयोग किया जा सकता है:

  1. छिपी हुई गतिविधि: फ़्लैग देखने के लिए एक अनएक्सपोज़्ड गतिविधि खोजें और लॉन्च करें (खिलाड़ी के ऐप में एक डमी फ़्लैग होता है)।
  2. RCE: ऐप RCE के प्रति संवेदनशील है और फ़्लैग डिवाइस पर संग्रहीत है।
  3. Frida इंस्ट्रुमेंटेशन: एक मेथड को ओवरलोड करें और स्क्रिप्ट का उपयोग करके प्राइवेट मेमोरी से फ़्लैग निकालें।

⚙️ उपयोग

examples फ़ोल्डर में कुछ नमूना Docker Compose फ़ाइलें दी गई हैं। वे DroidGround सैंपल्स रिपो के ऐप्स का उपयोग करती हैं, जिन्हें धीरे-धीरे बढ़ाया जाएगा ताकि सभी प्रमुख विशेषताओं को प्रदर्शित किया जा सके। ये आपके स्वयं के CTF को सेटअप करने के तरीके को समझने के लिए भी एक अच्छा प्रारंभिक बिंदु हैं।

बूट होने पर DroidGround निम्न कार्य करता है:

  1. adb के साथ कनेक्शन सेट करता है
  2. यदि मौजूद है तो DROIDGROUND_INIT_SCRIPTS_FOLDER द्वारा निर्दिष्ट फ़ोल्डर में setup.sh चलाता है। इस स्क्रिप्ट का उपयोग लक्षित ऐप को इंस्टॉल करने और CTF को इनिशियलाइज़ करने के लिए आवश्यक बाकी सब कुछ करने के लिए किया जा सकता है (जैसे, फ़्लैग को एक ज्ञात स्थान पर रखना)
  3. (यदि Frida सक्षम है) इंस्टॉल किए गए संस्करण और डिवाइस के आर्किटेक्चर के आधार पर सही frida-server डाउनलोड करके उसे प्रारंभ करता है
  4. लक्षित ऐप चलाता है (वह जो DROIDGROUND_APP_PACKAGE_NAME के माध्यम से निर्दिष्ट होता है)। यदि ऐप इंस्टॉल नहीं है तो DroidGround बाहर निकल जाएगा।
  5. REST APIs, WebSocket सर्वर और डिस्प्ले स्ट्रीमिंग सेट करता है

यहाँ एक नमूना setup.sh स्क्रिप्ट है:

root@kitploit:~
#!/usr/bin/env bash

adb shell pm uninstall com.example.app # To do some cleanup
echo "Sleep for 2 seconds before installing app"
sleep 2
echo "Installing app..."
adb install ./flag.apk # The cwd is set to the "init.d" folder, so the apk file can be accessed with the relative path
echo "Install command executed"

प्रोडक्शन डिप्लॉय (वास्तविक CTF में) के लिए आप पहले से DroidGround इंस्टेंस की एक पूर्व-निर्धारित संख्या प्रावधानित (provision) करना चाह सकते हैं या आप उपयोगकर्ताओं को इंस्टेंस स्पॉन करने की अनुमति देना चाह सकते हैं (एक सीमा के साथ या शायद प्रत्येक टीम/उपयोगकर्ता को एक विशिष्ट इंस्टेंस से संबद्ध करना)। इस कारण से हमने एक सरल स्पॉनर उदाहरण भी जोड़ा है।

वैकल्पिक रूप से, जैसा कि पहले उल्लेख किया गया है, आप एक ऐसी चुनौती बना सकते हैं जहाँ फ़्लैग को नेटवर्क अनुरोध के माध्यम से बाहर निकाला जा सकता है और कई इंस्टेंस स्पॉन करने (जो महंगा हो सकता है) से बचने के लिए DROIDGROUND_NUM_TEAMS env वेरिएबल का लाभ उठा सकते हैं। net-multi-step फ़ोल्डर इस प्रकार की चुनौतियों को वितरित करने का एक अच्छा उदाहरण प्रदान करता है।

💡 सुझाव

आपका Android CTF सेटअप करने के लिए यहाँ कुछ सुझाव दिए गए हैं:

  • Frida फुल मोड सक्षम करते समय सावधान रहें, खिलाड़ी के पास डिवाइस पर पूर्ण नियंत्रण होगा (इसीलिए हमने Frida जेल मोड बनाया है जैसा कि Frida लाइब्रेरी में विस्तृत है)।
  • टर्मिनल सक्षम करते समय सावधान रहें, खिलाड़ी के पास डिवाइस पर पूर्ण नियंत्रण होगा।
  • शटडाउन सुविधा सक्षम करते समय सावधान रहें।
  • यदि आप फ़्लैग को सीधे UI में दृश्यमान बनाने की योजना बनाते हैं तो आप अलग-अलग इंस्टेंस स्पॉन करने का तरीका खोजना चाह सकते हैं (प्रत्येक टीम/खिलाड़ी के लिए एक)

प्रोडक्शन में जाने से पहले सेटअप का परीक्षण करते समय लक्षित ऐप की अटैक सर्फेस (attack surface) प्राप्त करना उपयोगी हो सकता है। यह ऐसी चीज़ है जिसे खिलाड़ियों को नहीं देखना चाहिए क्योंकि अटैक सर्फेस की खोज और विश्लेषण करना उनके काम का हिस्सा है!

इसलिए, /attackSurface पर पहुँचने योग्य एक GET एंडपॉइंट प्रदान किया गया है और इसे एक टोकन (जिसे Authorization हेडर के मान के रूप में उपयोग करने की आवश्यकता है) से सुरक्षित किया गया है जो बूट के दौरान यादृच्छिक रूप से जनरेट होता है और लॉग में मुद्रित होता है (इसलिए केवल sysadmins के लिए सुलभ)।

यदि आप जेल्ड मोड में अपनी स्वयं की Frida स्क्रिप्ट का उपयोग करना चाहते हैं, तो आपको केवल उन्हें समाहित करने वाले फ़ोल्डर को Docker कंटेनर में bind-mount करने की आवश्यकता है:

root@kitploit:~
volumes:
  - <Frida library folder>:/droidground/library

उपलब्ध स्क्रिप्ट की सूची के बारे में एप्लिकेशन को निर्देश देने के लिए एक library.json फ़ाइल (library में मौजूद फ़ाइल के समान) आवश्यक है।

🛠 विकास

इसे चालू करना बहुत कठिन नहीं होना चाहिए, लेकिन शुरू करने से पहले आपके पास निम्नलिखित टूल्स इंस्टॉल होने चाहिए:

  • frida (केवल यदि आप Frida सक्षम करते हैं)
  • node (यह एक Node ऐप है, आपके पास होना आवश्यक है!)
  • adb (ठीक है, हम डिवाइस से बात करने के लिए इस पर निर्भर हैं)
  • JDK (कंपैनियन ऐप बनाने के लिए आपको इसकी आवश्यकता है)

उसके बाद आप निम्नलिखित चला सकते हैं:

root@kitploit:~
git clone https://github.com/SECFORCE/droidground.git
cd droidground

# Install without running scripts
npm install --ignore-scripts
# Rebuild frida to get the bindings
npm rebuild frida
# Build companion app
npm run companion
# Get scrcpy
npm run scrcpy

उसके बाद आपको केवल env वेरिएबल्स सेट करने हैं और फिर npm run dev चलाना है और आप तैयार हैं। हैप्पी डेव मोड!

🤝 योगदान

पुल रिक्वेस्ट का स्वागत है! कृपया बड़े बदलावों पर चर्चा करने के लिए पहले एक issue खोलें। नए CTF वर्कफ़्लो या चुनौती प्रकारों के विचारों की विशेष रूप से सराहना की जाती है।

📚 श्रेय

Angelo Delicato @SECFORCE द्वारा विकसित।

सर्वर अनुभाग @yume-chan द्वारा किए गए अद्भुत कार्य पर काफी हद तक निर्भर करता है, संभवतः यह ऐप अस्तित्व में नहीं होता यदि उनका अद्भुत कार्य नहीं होता।

कंपैनियन ऐप aya सर्वर पर आधारित है जो scrcpy सर्वर की तरह ही काम करता है। अधिक विवरण विशिष्ट README में पाए जा सकते हैं।

🪪 लाइसेंस

DroidGround को GPL-3.0 लाइसेंस के अंतर्गत जारी किया गया है।

टूल डाउनलोड करें
स्क्रीनशॉट अवलोकनस्क्रीनशॉट गतिविधि प्रारंभ करें
अवलोकनगतिविधि प्रारंभ करें
स्क्रीनशॉट Frida जेल्ड मोडस्क्रीनशॉट Frida फुल मोड
Frida जेल्ड मोडFrida फुल मोड
स्क्रीनशॉट फ़ाइल ब्राउज़रस्क्रीनशॉट ऐप मैनेजर
फ़ाइल ब्राउज़रऐप मैनेजर
स्क्रीनशॉट टर्मिनलस्क्रीनशॉट लॉग
टर्मिनललॉग
Variableविवरणडिफ़ॉल्ट
DROIDGROUND_BASE_PATHवेबऐप का पथ (सबपाथ पर होस्टिंग के लिए उपयोगी)-
DROIDGROUND_APP_PACKAGE_NAMEलक्षित ऐप का पैकेज नाम-
DROIDGROUND_ADB_HOSTADB होस्टlocalhost
DROIDGROUND_ADB_PORTADB पोर्ट5037
DROIDGROUND_ADB_SERIALकनेक्ट करने हेतु वैकल्पिक ADB डिवाइस सीरियल-
DROIDGROUND_DEVICE_TYPEusb या networkusb
DROIDGROUND_DEVICE_HOSTAndroid डिवाइस का IP (adb) (केवल नेटवर्क मोड)-
DROIDGROUND_DEVICE_PORTAndroid डिवाइस का पोर्ट (adb) (केवल नेटवर्क मोड)-
DROIDGROUND_INIT_SCRIPTS_FOLDERsetup.sh और reset.sh वाला फ़ोल्डर/init.d
DROIDGROUND_HOSTबाइंड पता0.0.0.0
DROIDGROUND_PORTबाइंड पोर्ट4242
DROIDGROUND_RESTART_APP_DISABLEDऐप पुनः आरंभ अक्षम करेंfalse
DROIDGROUND_APP_MANAGER_DISABLEDऐप मैनेजर अक्षम करेंfalse
DROIDGROUND_BUG_REPORT_DISABLEDबगरिपोर्ट अक्षम करेंfalse
DROIDGROUND_FILE_BROWSER_DISABLEDफ़ाइल ब्राउज़र अक्षम करेंfalse
DROIDGROUND_FRIDA_DISABLEDFrida समर्थन अक्षम करेंfalse
DROIDGROUND_FRIDA_TYPEjail या fulljail
DROIDGROUND_FRIDA_INJECTIONserver या gadgetserver
DROIDGROUND_LOGCAT_DISABLEDlogcat अक्षम करेंfalse
DROIDGROUND_REBOOT_ENABLEDरीबूट सक्षम करेंfalse
DROIDGROUND_SHUTDOWN_ENABLEDशटडाउन सक्षम करेंfalse
DROIDGROUND_START_ACTIVITY_DISABLEDstartActivity अक्षम करेंfalse
DROIDGROUND_START_RECEIVER_DISABLEDब्रॉडकास्ट अक्षम करेंfalse
DROIDGROUND_START_SERVICE_DISABLEDstartService अक्षम करेंfalse
DROIDGROUND_TERMINAL_DISABLEDटर्मिनल अक्षम करेंfalse
DROIDGROUND_RESET_DISABLEDरीसेट अक्षम करेंfalse
DROIDGROUND_EXPLOIT_APP_DURATIONएक्सप्लॉइट ऐप सक्रिय रहेगा उसका समय (सेकंड में)10
DROIDGROUND_EXPLOIT_APP_MAX_SIZEएक्सप्लॉइट ऐप का अधिकतम आकार (MB में)50
DROIDGROUND_NUM_TEAMSएक साथ खेलने वाली टीमों की संख्या-
DROIDGROUND_TEAM_TOKEN_<N>nवीं टीम के लिए टोकन। अनुपलब्ध होने पर स्वतः-जनरेट होता है-
DROIDGROUND_IP_STATICप्रदर्शित करने हेतु स्टैटिक IP पता। यह DROIDGROUND_IP_IFACE पर प्राथमिकता रखता है-
DROIDGROUND_IP_IFACEप्रदर्शित IP पते के लिए नेटवर्क इंटरफ़ेस-
DROIDGROUND_LOGO_LINKवैकल्पिक रूप से लोगो का क्लिक-थ्रू लिंक सेट करें (जैसे, आपका CTF मुख्य पृष्ठ)-