
एयरड्रॉइड ऐप के माध्यम से किसी डिवाइस की सारी जानकारी दूरस्थ रूप से चुराने के लिए आदर्श प्रोग्राम। [CVE-2019-9599] (https://www.exploit-db.com/exploits/46337)
वीडियो PoC एक्सप्लॉइट: https://www.youtube.com/watch?v=0QDM224_6DM
CVE: https://nvd.nist.gov/vuln/detail/CVE-2019-9599
एक्सप्लॉइट-डीबी: https://www.exploit-db.com/exploits/46337
AirDroid एक सबसे प्रसिद्ध और उपयोग किए जाने वाले उपकरणों में से है जो कंप्यूटर को दूरस्थ रूप से नियंत्रित करने के लिए, विशेष रूप से ब्राउज़र के माध्यम से, उपयोग किया जाता है।
सेवा को संचालित करने वाले डिवाइस को नियंत्रित और प्रबंधित करने के लिए, ग्राहक की ओर से स्वीकृति का एक प्रारंभिक चरण आवश्यक है, जहां नीचे प्रस्तुत 'Message Box' दिखाई देता है:
एक बार कनेक्शन स्वीकार हो जाने पर, सत्र का प्रभारी ब्राउज़र से डिवाइस का प्रबंधन कर सकता है, अन्य कार्यों के अलावा निम्नलिखित कार्य कर सकता है:
क्लाइंट-साइड सत्यापन को बायपास करने वाले PoC को साझा न करने के बावजूद, मैंने कनेक्शन स्वीकार होने के बाद विशेषाधिकार प्राप्त जानकारी निकालने के लिए कुछ उपयोगिता स्क्रिप्ट साझा की हैं।
इसी प्रकार, मैंने 'airdroid_dos.sh' और 'airdroid_fast_dos.sh' स्क्रिप्ट साझा की हैं, जो 'Remote DoS Application & System Crash' प्रकार की कार्रवाई करने के लिए जिम्मेदार हैं, जिसके माध्यम से सेवा को दूरस्थ रूप से भ्रष्ट करना, साथ ही सारी मेमोरी भरकर मोबाइल डिवाइस को स्थिर करना (जब तक वह बेकार न हो जाए) संभव होता है:
हम 'AirDroidPwner.py' स्क्रिप्ट को चलाकर शुरू करते हैं, जहां AirDroid सेवा चलाने वाले बहुत सारे डिवाइस खोजने के लिए Shodan की अपनी KEY प्रदान करना आवश्यक होगा:
# Usa tu API KEY de Shodan
SHODAN_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
api = shodan.Shodan(SHODAN_API_KEY)
निष्पादन निम्नलिखित तरीके से किया जाता है:
python AirDroidPwner.py
जैसा कि देखा जा सकता है, बहुत जटिल। इसके निष्पादन के बाद, Shodan API के माध्यम से पहले इंस्टेंस में, खोजे गए सभी IP (जिन्हें Shodan स्वयं अनुक्रमित करता है) को एक सरणी में संग्रहीत किया जाएगा, इस मामले में AirDroid सेवा (पोर्ट 8888) के लिए।
एक बार मिल जाने के बाद, यह सत्यापित करने के लिए एक सत्यापन प्रक्रिया की जाती है कि पाए गए होस्ट वास्तव में सेवा सक्षम रखते हैं, इसके लिए एक साधारण अनुरोध करने के बाद सर्वर-साइड प्रतिक्रिया द्वारा लौटाए गए स्थिति कोड का उपयोग किया जाता है।
सक्रिय होस्ट के अनुरूप तत्वों के साथ नई सरणी प्राप्त करने के बाद, उन्हें 'ips' नामक फ़ाइल में निर्यात किया जाता है। वर्तमान में निम्नलिखित ऑपरेशन मोड मौजूद हैं:
कनेक्शन की स्वीकृति के बाद (अनुरोध होस्टों पर लॉन्च किया जाता है और यह इस बात पर निर्भर करता है कि उनमें से कोई इसे स्वीकार करता है [दुर्भाग्य से, आप देखेंगे कि कई ऐसा करते हैं...]), सत्र पहचानकर्ता को 7bb पैरामीटर में संग्रहीत किया जाता है, जहां से बाद में क्वेरी प्रबंधित की जाती हैं:
def get_identifier(r_json):
identifier_session = r_json["7bb"]
return identifier_session
यदि ग्राहक कनेक्शन स्वीकार नहीं करता है, तो उन्हें अस्वीकृत कनेक्शनों के वेक्टर में संग्रहीत किया जाएगा ताकि बाद में निम्न प्रकार का हमला शुरू किया जा सके (हमलावर <y/n> निर्णय ले सकता है):
जहां 'Message Box' का उपयोग करके, संशोधन योग्य पुनरावृत्तियों (डिफ़ॉल्ट 10) के मुख्य लूप के साथ-साथ उप-लूपों के माध्यम से जो पीड़ितों पर 3,000 थ्रेडेड अनुरोध करते हैं, डिवाइस की RAM मेमोरी को भर दिया जाता है, जिससे न केवल एप्लिकेशन की दूरस्थ सेवा से इनकार होता है, बल्कि एक Remote System Crash भी होता है, जहां डिवाइस पूरी तरह से निष्क्रिय हो जाता है और सिस्टम रीबूट करने के लिए मजबूर होता है।
यह भेद्यता न केवल AirDroid के नवीनतम संस्करण को प्रभावित करती है, बल्कि इसके पहले के सभी संस्करणों को भी प्रभावित करती है।
यदि पीड़ित हमें कनेक्शन स्वीकार करता है, तो ये वे ऑपरेशन हैं जो वर्तमान में उपकरण में लागू हैं:
इसके अतिरिक्त, हम 'airdroid_dos.sh' और 'airdroid_fast_dos.sh' स्क्रिप्ट भी चला सकते हैं। दोनों के बीच मुख्य अंतर यह है कि दूसरा सीधे हमले पर जाता है, पहला यह जांचने के लिए एक संक्षिप्त प्रारंभिक जाँच करता है कि होस्ट के पास सक्रिय सेवा है या नहीं, आदि। (अधिक व्यावसायिक पक्ष)
यदि आप वेब ब्राउज़र से पहुंच प्रबंधित करना चाहते हैं, तो एक बार 'AirDroidPwner.py' स्क्रिप्ट चलाने और 'ips' फ़ाइल में आईपी की सूची निर्यात करने के बाद, 'web_browser.py' स्क्रिप्ट चलाना संभव है ताकि सभी सक्रिय सेवाओं को ब्राउज़र में खोला जा सके।
कार्य: