
macOS के लिए एप्लिकेशन हाईजैक स्कैनर

boko.py macOS के लिए एक एप्लिकेशन स्कैनर है जो एप्लिकेशन एक्जीक्यूटेबल्स के लिए संभावित dylib हाइजैकिंग और कमजोर dylib कमजोरियों की खोज और पहचान करता है, साथ ही उन स्क्रिप्ट्स की भी जिनमें बैकडोर होने की संभावना है। यह उपकरण दिलचस्प फाइलों को भी चिह्नित करता है और मैन्युअल रूप से फाइल सिस्टम ब्राउज़ करने के बजाय उन्हें सूचीबद्ध करता है। सक्रिय खोज फ़ंक्शन के साथ, यह अनुमान लगाने की कोई आवश्यकता नहीं है कि कोई एक्जीक्यूटेबल dylib हाइजैकिंग के लिए कमजोर है या नहीं!
इस उपकरण को बनाने का कारण यह था कि मैं Dylib Hijack Scanner द्वारा खोजे गए डेटा पर अधिक नियंत्रण चाहता था। अधिकांश सार्वजनिक रूप से उपलब्ध स्कैनर एक कमजोर dylib के पहले मामले की खोज करने के बाद रुक जाते हैं, बिना शेष rpaths का विस्तार किए। चूंकि कभी-कभी पहला परिणाम SIP-संरक्षित क्षेत्र में एक गैर-मौजूद फ़ाइल में विस्तारित होता है, इसलिए मैं उन विस्तारित पथों के बाकी हिस्सों को प्राप्त करना चाहता था। इस वजह से, गलत सकारात्मक परिणाम होते हैं, इसलिए उपकरण प्रत्येक आइटम के लिए एक निश्चितता फ़ील्ड निर्दिष्ट करता है।
| निश्चितता | विवरण |
|---|---|
| निश्चित | कमजोरी 100% शोषणीय है |
| उच्च | यदि कमजोरी मुख्य एक्जीक्यूटेबल से संबंधित है और rpath लोड क्रम में दूसरे स्थान पर है, तो कमजोरी के शोषणीय होने की अच्छी संभावना है |
| संभावित | यह dylibs और बैकडोर करने योग्य स्क्रिप्ट्स को सौंपा गया है, देखने लायक है लेकिन शोषणीय नहीं हो सकता |
| निम्न | देर से लोड क्रम के कारण शोषणीय होने की कम संभावना, लेकिन ज्ञान शक्ति है |
इस उपकरण की रीढ़ Patrick Wardle (@synack) द्वारा DylibHijack से scan.py पर आधारित है।
boko.py [-h] (-r | -i | -p /path/to/app) (-A | -P | -b) [-oS outputfile | -oC outputfile | -oA outputfile] [-s] [-v]
यह अनुशंसा की जाती है कि केवल सक्रिय मोड (-A) का उपयोग -p फ़्लैग के साथ करें और एक विशिष्ट प्रोग्राम चुनें। साथ ही, -v का उपयोग -oS या -oA के साथ करना एक अच्छा विचार है, जब तक कि आप केवल निश्चित निश्चितता वाली कमजोरियां नहीं खोज रहे हों।
चेतावनी नोट:
इस उपकरण को -i और (-A या -b) फ़्लैग के साथ एक साथ चलाने से अत्यधिक हतोत्साहित किया जाता है। यह संयोजन आपके सिस्टम पर प्रत्येक एक्जीक्यूटेबल को एक बार में 3 सेकंड के लिए खोल देगा। यदि आपके सिस्टम में क्रैश या धीमा होने के कारण इसके चलने से होता है तो मैं कोई जिम्मेदारी नहीं लेता हूं। इसके अतिरिक्त, यदि आपके सिस्टम पर निष्क्रिय मैलवेयर है, तो यह उसे निष्पादित करेगा। मैं यह भी अनुशंसा करता हूं कि यदि आपके पास Xcode स्थापित है तो पूरे /Applications निर्देशिका को स्कैन न करें क्योंकि इसमें बहुत लंबा समय लगता है।
python -m pip install psutil| तर्क | विवरण |
|---|
| -h, --help | यह सहायता संदेश दिखाएं और बाहर निकलें |
| -r, --running | वर्तमान में चल रही प्रक्रियाओं की जांच करें |
| -i, --installed | सभी स्थापित एप्लिकेशन की जांच करें |
| -p /file.app | एक विशिष्ट एप्लिकेशन की जांच करें जैसे /Application/Safari.app |
| -A, --active | हाइजैक करने योग्य dylibs की सक्रिय रूप से पहचान करने के लिए खोजे गए एक्जीक्यूटेबल बाइनरी को निष्पादित करता है |
| -P, --passive | केवल फ़ाइल हेडर देखकर जांच करता है (डिफ़ॉल्ट) |
| -b, --both | कमजोरी परीक्षण के दोनों तरीके करता है |
| -oS outputfile | मानक आउटपुट को .log फ़ाइल में आउटपुट करता है |
| -oC outputfile | परिणामों को .csv फ़ाइल में आउटपुट करता है |
| -oA outputfile | परिणामों को .csv फ़ाइल और मानक लॉग में आउटपुट करता है |
| -s, --sipdisabled | यदि सिस्टम पर SIP अक्षम है तो सामान्यतः केवल-पढ़ने योग्य पथों को खोजने के लिए उपयोग करें |
| -v, --verbose | स्क्रिप्ट चलने के दौरान सभी परिणामों को वर्बोज़ मोड में आउटपुट करें, इसके बिना केवल निश्चित निश्चितता वाली कमजोरियां कंसोल पर प्रदर्शित होती हैं |