
ब्लू पिजन एक ब्लूटूथ-आधारित डेटा एक्सफ़िलट्रेशन और प्रॉक्सी टूल है जो एक दूरस्थ कमांड और कंट्रोल (C2) सर्वर और एक समझौता किए गए होस्ट के बीच संचार सक्षम करता है।
ब्लू पिजन: रेड टीमर्स के लिए ब्लूटूथ-आधारित डेटा एक्सफिल्ट्रेशन और प्रॉक्सी टूल
1. ब्लू पिजन - मोबाइल एप्लिकेशन
2. ब्लू बीक - कस्टम EdXposed फ्रेमवर्क हुक
3. ब्लू डिस्पैचर - समझौता किए गए होस्ट के लिए .NET मॉड्यूल
ब्लू पिजन एक ब्लूटूथ-आधारित डेटा एक्सफिल्ट्रेशन और प्रॉक्सी टूल है जो दूरस्थ कमांड और कंट्रोल (C2) सर्वर और समझौता किए गए होस्ट के बीच संचार सक्षम बनाता है।
रॉक डव की अपने घर तक संदेश ले जाने की क्षमता से प्रेरित होकर, ब्लू पिजन होमिंग व्यवहार की नकल करता है और एजेंट (समझौता किया गया होस्ट) और उसके घोंसले (मोबाइल एप्लिकेशन और फिर C2 सर्वर पर प्रॉक्सी) के बीच संदेश/पेलोड पहुंचाता है।
ब्लू पिजन को एक Android एप्लिकेशन के रूप में विकसित किया गया है जिसे रेड टीमर समझौता किए गए होस्ट के आस-पास तैनात कर सकता है और यह विशेष रूप से उन रेड टीम ऑपरेशनों के लिए उपयोगी है जहां पारंपरिक चैनलों (जैसे, वेब, ई-मेल, DNS) पर संचार उपलब्ध नहीं है।
MITRE AT&CK फ्रेमवर्क के एक्सफिल्ट्रेशन रणनीति के अंतर्गत "एक्सफिल्ट्रेशन ओवर अल्टरनेटिव प्रोटोकॉल" तकनीक (ID: T1048) का विस्तार करते हुए, ब्लू पिजन साइबर किल चेन के एक्शन ऑन ऑब्जेक्टिव के रूप में ब्लूटूथ फाइल शेयरिंग को एक्सफिल्ट्रेशन माध्यम के रूप में उपयोग करके कमांड और कंट्रोल स्थापित करने और डेटा एक्सफिल्ट्रेशन करने का एक नया तरीका प्रदान करता है।
ब्लू पिजन @mahchiahui, @jingloon और @cloudkanghao द्वारा बनाया गया है
(स्रोत: https://spectrum.ieee.org/tech-history/silicon-revolution/consider-the-pigeon-a-surprisingly-capable-technology)
कमांड और कंट्रोल स्थापित करना और डेटा एक्सफिल्ट्रेशन करना साइबर किल चेन के प्रमुख चरण हैं, लेकिन वे अक्सर अपनी जटिलताओं और गलत तरीके से किए जाने पर गंभीर परिणामों के साथ आते हैं। एक रेड टीम ऑपरेशन में, एक गलत प्रयास नेटवर्क गतिविधि लॉग में स्थायी निशान छोड़ सकता है और डिटेक्शन तंत्रों के लिए अलार्म बजा सकता है।
अपने कुछ रेड टीमिंग अभ्यासों में, हमने पाया कि हमें पारंपरिक चैनलों (जैसे, वेब, ईमेल, DNS) से गुज़रे बिना डेटा एक्सफिल्ट्रेट करने और समझौता किए गए होस्ट के साथ संवाद करने के एक तरीके की आवश्यकता है।
इस आवश्यकता को पूरा करने के लिए कुछ समाधान उपलब्ध होने के कारण, हमने वायरलेस/रेडियो-कम्युनिकेशन वैक्टर पर आधारित विभिन्न एक्सफिल्ट्रेशन विचारों की खोज की। परिणामस्वरूप, अपने रेड टीम टूलसेट का विस्तार करने के लिए ब्लू पिजन बनाया गया।
ब्लू पिजन एक Android मोबाइल फोन के अंदर एक फोरग्राउंड सेवा के रूप में चलता है। जब रेड टीमर/दुर्भावनापूर्ण इनसाइडर फोन को समझौता किए गए होस्ट (ब्लू डिस्पैचर पेलोड से संक्रमित) के निकट तैनात करता है, तो ब्लू पिजन एक दूरस्थ C2 सर्वर (उर्फ ब्लू कूप) के लिए एक एक्सफिल्ट्रेशन पॉइंट और कमांड रिले प्रॉक्सी के रूप में कार्य करने में सक्षम होगा।
ब्लू पिजन के क्रियान्वयन का डेमो वीडियो देखने के लिए यहां क्लिक करें
ब्लू पिजन को निम्नलिखित प्रमुख आवश्यकताओं के साथ इंजीनियर किया गया था:
ब्लू पिजन को विभिन्न स्तरों पर डिटेक्शन से बचते हुए डेटा एक्सफिल्ट्रेशन की अनुमति देनी चाहिए:
नेटवर्क ट्रैफ़िक डिटेक्शन से बचना: समझौता किए गए होस्ट से डेटा एक्सफिल्ट्रेशन पारंपरिक संचार चैनलों के माध्यम से नहीं हो सकता क्योंकि उनके लॉग और मॉनिटर होने की संभावना है (और पहले से ही कई बेहतर विकल्प मौजूद हैं, तो पहिया का पुन: आविष्कार क्यों करें, है ना?)
मानवीय डिटेक्शन से बचना: डेटा एक्सफिल्ट्रेशन पीड़ित की मशीन पर बिना किसी दृश्य संकेत के होना चाहिए, क्योंकि सबसे खराब स्थिति में पीड़ित से समझौता की गई मशीन का उपयोग जारी रहने की उम्मीद है।
ब्लू पिजन को गुप्तता बनाए रखनी चाहिए, यानी मैदान में तैनात होने पर अगोचर रहना चाहिए।
भारी-भरकम लैपटॉप, रास्पबेरी पाई और होमब्रू हैकर किट एकदम नो-गो हैं क्योंकि यह तैनाती की संभावनाओं और व्यवहार्यता को सीमित करता है। हमें एक छोटा और मासूम दिखने वाला कबूतर चाहिए, कोई बड़ा अल्फा नर मोर नहीं!
ब्लू पिजन एक सामान्य Android फोन के भीतर छिपा रहता है जिसे रेड टीमर/दुर्भावनापूर्ण इनसाइडर मैदान में ला सकता है। किसी को भी मोबाइल फोन पर संदेह नहीं होता...
दुर्लभ घटना में जहां रेड टीमर को निरीक्षण के लिए चुनौती दी जाती है, ब्लू पिजन को ऑपरेशन के संदर्भ के अनुरूप एक अगोचर एप्लिकेशन के रूप में प्रच्छन्न किया जा सकता है। आधार प्रूफ-ऑफ-कॉन्सेप्ट में, मोबाइल एप्लिकेशन एक बैटरी ऑप्टिमाइज़र ऐप के रूप में प्रच्छन्न है। बेझिझक रिपो को फोर्क करें और ब्लू पिजन को एक सौंदर्यपरक मेकओवर दें!
ब्लू पिजन को फोन तैनात करते समय रेड टीमर को एक्सफिल्ट्रेशन प्रयास के कोई संकेत प्रकट करने से बचना चाहिए।
रेड टीमर को केवल एप्लिकेशन लॉन्च करना होगा और फोन को समझौता की गई मशीन के निकट लाना होगा।
ब्लू पिजन मोबाइल फोन की पृष्ठभूमि में चलता है और स्क्रीन को सक्रिय रखने की आवश्यकता नहीं होती है।
ब्लू पिजन स्वचालित रूप से आने वाले संदेशों को उपभोग करता है और रेड टीमर को फ़ाइल स्थानांतरण अनुरोध पॉप-अप को मैन्युअल रूप से स्वीकार करने की आवश्यकता नहीं होती है (यह वास्तव में पॉप अप भी नहीं होगा)।
ब्लू पिजन को तैनाती के दौरान समझौता किए गए होस्ट के लिए (और केवल उसके लिए) अधिकतम उपलब्धता बनाए रखनी चाहिए।
ब्लू पिजन को रेड टीमर द्वारा नियमित हस्तक्षेप के बिना आने वाले संदेशों को पकड़ने के लिए जीवित रहने में सक्षम होना चाहिए।
ब्लू पिजन को दुर्भावनापूर्ण अनुरोधों/DoS प्रयासों का सामना करने और इच्छित होस्ट के लिए उपलब्धता बनाए रखने में सक्षम होना चाहिए।
ब्लू पिजन समझौता किए गए होस्ट को स्कैन और कनेक्ट करने के लिए स्थायी रूप से खोज योग्य मोड में रहने में सक्षम है।
DoS और रीप्ले हमलों से बचाव के लिए HMAC-आधारित प्रमाणीकरण और फ़ाइलनाम रैंडमाइज़ेशन का उपयोग किया जाता है। ब्लू पिजन एक कॉन्फिगरेबल गुप्त पासफ्रेज़ के साथ प्रमाणित करने के बाद ही फ़ाइल स्थानांतरण अनुरोधों को स्वीकार करता है।
ब्लू पिजन को तीन-भाग वाले फ्रेमवर्क के रूप में डिज़ाइन किया गया है जिसमें निम्नलिखित घटक शामिल हैं:
ब्लू पिजन Android मोबाइल एप्लिकेशन है जो समझौता किए गए होस्ट और C2 सर्वर (उर्फ ब्लू कूप) के बीच मध्यस्थ प्रॉक्सी के रूप में कार्य करता है। ब्लू पिजन पारंपरिक ब्लूटूथ फ़ाइल शेयरिंग (OBEX का उपयोग करके) पर समझौता किए गए होस्ट (ब्लू डिस्पैचर पेलोड से संक्रमित) के साथ संचार करता है। डेटा होस्ट से टेक्स्ट फ़ाइलों पर JSON ऑब्जेक्ट के रूप में एक्सफिल्ट्रेट किया जाता है। इसे com.csg.bluepigeon.pigeon पैकेज में BluePigeonListener क्लास को संपादित करके अनुकूलित किया जा सकता है और बाद में दूरस्थ ब्लू कूप पर रिले किया जा सकता है। प्राप्त होने पर, संदेश की एक प्रति /sdcard/blue_pigeon/backup निर्देशिका में भी रखी जाएगी।
इस रिपो में, ब्लू पिजन एक साधारण दिखने वाले बैटरी ऑप्टिमाइज़र एप्लिकेशन के रूप में आता है। हालांकि, इसे अन्य UI शैलियों में बदला जा सकता है। com.csg.bluepigeon.ui पैकेज को संपादित करके ब्लू पिजन के UI को अपने ऑपरेशन की आवश्यकताओं के अनुसार अनुकूलित करने के लिए स्वतंत्र महसूस करें।
यहां देखने के लिए कुछ नहीं है... बस एक मासूम बैटरी ऑप्टिमाइज़र ऐप!
ब्लू बीक पैकेज में आधुनिक Android (Android 9/10) की Bluetooth API प्रतिबंधों को बायपास करने के लिए लिखे गए कस्टम EdXposed फ्रेमवर्क हुक* का एक सेट है:
BlueBeakHook - आने वाले फ़ाइल स्थानांतरण अनुरोध का निरीक्षण करता है और तय करता है कि इसे उपभोग करना है या नहीं। यह सुनिश्चित करने के लिए कि आने वाले संदेश विश्वसनीय स्रोतों से हैं, एक कॉन्फिगरेबल गुप्त पासफ्रेज़ का उपयोग करके प्रमाणीकरण लागू करता है। हम नहीं चाहते कि यह गलती से एक दुर्भावनापूर्ण बड़े अनुरोध (DoS बाय हॉगिंग अटैक शमन) को उपभोग कर ले। यह पहले से उपभोग किए गए फ़ाइलनामों को भी अस्वीकार करता है (DoS बाय रीप्ले अटैक शमन)। (देखें सुरक्षा संबंधी विचार)
CooCooHook - डिफ़ॉल्ट Android ब्लूटूथ डिस्कवरेबल मोड टाइमआउट को बायपास करता है ताकि यह सुनिश्चित हो सके कि मोबाइल फोन मैदान में तैनात होने पर डिस्कवरी पैकेट प्रसारित करना जारी रखेगा। यह आवश्यक है ताकि समझौता किया गया होस्ट ऑपरेशन में किसी भी बिंदु पर ब्लू पिजन को स्कैन और संपर्क कर सके।
NoPopupHook - Android OS पर ब्लूटूथ फ़ाइल स्थानांतरण पॉपअप जनरेशन को बायपास करता है और कोड के माध्यम से अनुरोधों को स्वीकार या अस्वीकार करने की अनुमति देता है। यह रेड टीमर को आने वाले संदेशों को स्वीकार करने के लिए लगातार फोन पर रहने से रोकने के लिए है। संदिग्ध भाई, संदिग्ध...
BirdIsAliveHook - सिस्टम घड़ी के बगल में एक साफ-सुथरा छोटा दृश्य संकेतक प्रदान करता है जो दर्शाता है कि सब कुछ ठीक है और तैनाती के लिए तैयार है।
कॉन्सेप्ट आर्ट बिल्कुल सटीक था!
*EdXposed क्यों? खैर... हम संकल्पना चरण में शुरुआत में 2 बड़ी समस्याओं में भाग गए:
1. सुरक्षा चिंताओं के कारण, आधुनिक Android OS अब ऐप्स को प्रोग्रामेटिक रूप से आने वाले ब्लूटूथ फ़ाइल स्थानांतरण अनुरोधों को स्वीकार या फ़िल्टर करने की अनुमति नहीं देता है। यह समस्याग्रस्त है क्योंकि ब्लू पिजन का संचालन तरीका आने वाले अनुरोधों का निरीक्षण करने और उन्हें वास्तविक समय में स्वीकार या अस्वीकार करने पर निर्भर करता है।
2. Android के ब्लूटूथ डिस्कवरी मोड टाइमआउट का डिफ़ॉल्ट अधिकतम समय 3600 सेकंड (1 घंटा) है। इस सीमा पर टिके रहने का मतलब होगा कि रेड टीमर को बार-बार मैन्युअल रूप से ब्लू पिजन को रीफ्रेश करना होगा, जो काफी अव्यावहारिक हो सकता है और ऑपरेशन के संचालन में बाधा डाल सकता है।
इन समस्याओं को प्रभावी ढंग से संबोधित करने के लिए, हमने EdXposed फ्रेमवर्क का उपयोग करने का निर्णय लिया, जो Android रनटाइम (ART) हुकिंग प्रदान करता है, और OS-स्तरीय प्रतिबंधों को मॉड्यूलर तरीके से बायपास करने के लिए अपने कस्टम हुक लिखे।
ब्लू डिस्पैचर में Windows ब्लूटूथ स्टैक का उपयोग करके ब्लू पिजन को पेलोड उत्पन्न करने, भेजने और प्राप्त करने के लिए .NET मॉड्यूल शामिल हैं। यह मॉड्यूल ब्लू पिजन और समझौता किए गए होस्ट के बीच ब्लूटूथ सुरक्षा प्रमाणीकरण, यानी डिवाइस पेयरिंग की आवश्यकता के बिना फ़ाइल स्थानांतरण की अनुमति देता है। यह चोरी-छिपेपन (एक प्रमुख आवश्यकता) बनाए रखने में मदद करता है क्योंकि पीड़ित मशीन पर कोई दृश्य पॉप-अप नहीं होगा, जो संदेह पैदा करेगा।
दृश्य तोड़फोड़ के कारण विफल ऑपरेशन की डेवलपर की कलात्मक कल्पना।
ब्लू डिस्पैचर द्वारा उपयोग किए जाने वाले अधिकांश अंतर्निहित ब्लूटूथ मॉड्यूल प्रसिद्ध और बहुत शक्तिशाली 32feet लाइब्रेरी से आते हैं।
ब्लू डिस्पैचर में ऐसे विकल्प हैं जो उपयोगकर्ताओं को ट्रांसमिशन के लिए फ्लैग दर्ज करने की अनुमति देते हैं।
| फ्लैग | विवरण |
|---|---|
| --device, -d | भेजने के लिए मोबाइल डिवाइस |
| --message, -m | भेजी जाने वाली टेक्स्ट स्ट्रिंग |
C:\Users\user>.\BlueDispatcher.exe
Usage: BlueDispatcher [options]
Options:
-m|--message Message to send to server
-d|--device Device to send to
C:\Users\user>.\BlueDispatcher.exe -d "Pixel 3 XL" -m "fly pigeon fly"
नोट: यदि आवश्यक हो तो ब्लू डिस्पैचर में अपना स्वयं का एप्लिकेशन-लेयर एन्क्रिप्शन लागू करें, क्योंकि पेलोड RFCOMM के माध्यम से सादे टेक्स्ट में स्थानांतरित किए जाते हैं।
अपनी डेटा एक्सफिल्ट्रेशन आवश्यकताओं के लिए ब्लू पिजन तैनात करने के लिए, निम्नलिखित की आवश्यकता है:
ब्लू पिजन के लिए एक रूटेड Android फोन + Magisk की आवश्यकता है।
Magisk के माध्यम से riru-core और riru-edxposed स्थापित करें। मॉड्यूल स्थापित करने के बाद Android डिवाइस को रीबूट करें।
"बैटरी ऑप्टिमाइज़र" एप्लिकेशन खोलकर ब्लू पिजन लॉन्च करें।
ब्लू कूप एंडपॉइंट और गुप्त पासफ्रेज़ (प्रमाणीकरण के लिए उपयोग किया जाता है) को ऊपरी बाएँ कोने पर बटन क्लिक करके कॉन्फ़िगर किया जा सकता है।
एक आक्रामक उपकरण के रूप में, यह थोड़ा शर्मनाक होगा यदि ब्लू पिजन अन्य हमलावरों या पक्षी नफरत करने वालों के सरल प्रयासों के खिलाफ कमजोर साबित होता है।
एक शुरुआत के लिए*, ब्लू पिजन को इन कुछ संभावित हमलों से सुरक्षा के साथ डिज़ाइन किया गया है:
एक्सफिल्ट्रेशन माध्यम के रूप में ब्लूटूथ फ़ाइल शेयरिंग का उपयोग करने की एक सीमा इसकी अतुल्यकालिक स्थानांतरण की कमी है। चूंकि किसी भी समय केवल 1 फ़ाइल स्थानांतरण प्रक्रिया हो सकती है, ब्लू पिजन को केवल वैध आने वाले अनुरोधों की अनुमति और उपभोग करने में सावधानी बरतनी चाहिए।
यदि आस-पास का कोई प्रतिद्वंद्वी एक दुष्ट अनुरोध तैयार कर सकता है और ब्लू पिजन को इसे स्वीकार करने के लिए धोखा दे सकता है, तो वे एक अत्यधिक बड़ी डमी फ़ाइल भेजकर सेटअप के खिलाफ एक अस्थायी DoS हमला कर सकते हैं। हमलावर फ़ाइल में एम्बेडेड दुर्भावनापूर्ण सामग्री के साथ मोबाइल फोन या रिमोट ब्लू कूप से समझौता करने का भी प्रयास कर सकता है।
ऐसे संभावित हमलों को कम करने के लिए, आने वाले फ़ाइल अनुरोधों के फ़ाइलनामों को एक कॉन्फिगरेबल साझा पासफ्रेज़ के साथ HMAC प्रमाणीकरण योजना का उपयोग करके प्रमाणित किया जाता है।
फ़ाइलनाम सत्यापन प्रक्रिया को निम्नलिखित चरणों में विभाजित किया गया है:
BP-e2211d9e19f1669d1a09ea4828d3e2bc171a10bce71cafb53a64179f497273ea.txtprovidedHash और randprovidedHash के विरुद्ध HmacSHA512(rand, passphrase) सत्यापित करें (पहले 32 हेक्साडेसिमल अंकों/16 बाइट्स की तुलना करके)फ़ाइलनाम सत्यापन तर्क com.csg.bluepigeon.util.EncryptionManager में रहता है और इसे तदनुसार अनुकूलित किया जा सकता है।
डेवलपर नोट: वास्तव में, एक प्रेषक MAC पता सत्यापन सबसे आदर्श होगा, लेकिन हमने फ़ाइलनाम सत्यापन के साथ जाने का निर्णय लिया क्योंकि पीड़ित के ब्लूटूथ MAC पते का पहले से निर्धारण करना मुश्किल होगा।
हमले का एक और तरीका रीप्ले अटैक के माध्यम से होगा। आस-पास का कोई प्रतिद्वंद्वी संचार ट्रैफ़िक को सूंघ सकता है और पहले से स्वीकार किए गए फ़ाइलनाम को प्राप्त कर सकता है। वे फिर फ़ाइलनाम को पुन: उपयोग/"रीप्ले" करने का प्रयास कर सकते हैं और ब्लू पिजन को एक दुष्ट फ़ाइल स्थानांतरण अनुरोध भेज सकते हैं। इसी तरह, एक पर्याप्त बड़ा दुष्ट फ़ाइल स्थानांतरण सेटअप के खिलाफ एक अस्थायी DoS प्रेरित कर सकता है।
इसे कम करने के लिए, फ़ाइलनामों को पुन: उपयोग करने की अनुमति नहीं दी जाएगी। ब्लू बीक यह सुनिश्चित करेगा कि आने वाला फ़ाइलनाम पहले उपभोग नहीं किया गया है (/sdcard/blue_pigeon/backup फ़ोल्डर को पोल करके)।
इस आधार रिपो में, फ़ाइलनाम का rand घटक 32 हेक्साडेसिमल अंक/16 बाइट्स लंबा है, जो लगभग 2^128 में 1 की टक्कर दर प्रदान करता है (अच्छी यादृच्छिकता मानकर तुच्छ गणना)।
टक्कर सीमाओं को फ़ाइलनाम संरचना और सत्यापन योजना को अनुकूलित करके समायोजित किया जा सकता है। प्रासंगिक कोड com.csg.bluepigeon.util.EncryptionManager में रहते हैं।
*यदि आपने कोई अन्य पक्षी-हत्या के अवसर खोजे हैं जिन्हें हमने अनदेखा किया है और/या ब्लू पिजन को मजबूत करने में योगदान देना चाहते हैं, तो कृपया बेझिझक एक मुद्दा बनाएं या पुल अनुरोध भेजें!
बेझिझक मुद्दे बनाएं और पुल अनुरोध भेजें!