
harmjoy के Windows-आधारित Seatbelt एनुमरेशन टूल से प्रेरित एक macOS एनुमरेशन टूल। लेखक: Cedric Owens
SwiftBelt एक macOS एनुमरेटर है जो @harmjoy के विंडोज-आधारित Seatbelt एनुमरेशन टूल से प्रेरित है। SwiftBelt किसी कमांड लाइन उपयोगिता का उपयोग नहीं करता है और इसके बजाय सिस्टम एनुमरेशन करने के लिए Swift कोड (Cocoa Framework, Foundation लाइब्रेरी, OSAKit लाइब्रेरी आदि का लाभ उठाकर) का उपयोग करता है। इसे आक्रामक पक्ष पर उपयोग किया जा सकता है ताकि macOS होस्ट तक पहुँच प्राप्त करने के बाद एनुमरेशन किया जा सके। मैंने जानबूझकर ऐसे किसी भी फंक्शन को शामिल नहीं किया है जो पॉप-अप का कारण बनते हैं (उदाहरण: कीचेन एनुमरेशन)।
विभिन्न Objective See टूल्स की खोज के लिए कोड योगदान देने के लिए Ramos04 और zshell इतिहास के साथ-साथ azure क्रेडेंशियल्स के लिए कोड योगदान देने के लिए mattreduce का धन्यवाद।

सुनिश्चित करें कि आपके macOS होस्ट पर swift स्थापित है
टर्मिनल से SwiftBelt निर्देशिका में cd करें और बाइनरी उत्पन्न करने के लिए "swift build" चलाएँ। बाइनरी SwiftBelt फ़ोल्डर के अंदर .build/debug फ़ोल्डर में ड्रॉप होगी और इसका नाम SwiftBelt होगा
वांछित होस्ट पर कॉपी करें और क्वारंटाइन विशेषता को साफ़ करें ($ xattr -c SwiftBelt) और निष्पादन योग्य के रूप में सेट करें ($ chmod +x SwiftBelt)
निष्पादित करें
SwiftBelt विकल्प:
-CheckFDA --> पूर्ण डिस्क पहुँच की जाँच करें (बिना टर्मिनल को कोई TCC अनुमति न दिए जाने पर भी उपयोगकर्ता को TCC प्रॉम्प्ट उत्पन्न किए बिना)। यह Spotlight db API क्वेरी का उपयोग करके TCC.db खोज करके करता है। यह लौटाएगा कि FDA पहले से आपके ऐप संदर्भ को दी गई है या नहीं।
-SecurityTools --> सामान्य macOS सुरक्षा उपकरणों (कम से कम जिनसे मैं परिचित हूँ) की उपस्थिति की जाँच करें
-SystemInfo --> वर्तमान निष्पादन संदर्भ, TCC पहुँच क्षमता, बुनियादी सिस्टम जानकारी, अंतिम बूट समय, निष्क्रिय समय, स्क्रीन वर्तमान में लॉक है या नहीं, और पर्यावरण चर जानकारी की जाँच करें
-LockCheck --> जाँच करें कि स्क्रीन वर्तमान में लॉक है या नहीं (मैंने इसे SystemInfo के अंतर्गत शामिल करने के अलावा एक अलग जाँच के रूप में भी जोड़ा है)
-SearchCreds --> ssh/aws/azure/gcloud क्रेडेंशियल्स खोजें
-Clipboard --> क्लिपबोर्ड सामग्री डंप करें
-RunningApps --> सभी चल रहे ऐप्स की सूची बनाएं
-ListUsers --> स्थानीय उपयोगकर्ता खातों की सूची बनाएं
-LaunchAgents --> लॉन्च एजेंट, लॉन्च डेमॉन और कॉन्फ़िगरेशन प्रोफ़ाइल फ़ाइलों की सूची बनाएं
-BrowserHistory --> Safari, Firefox, Chrome और क्वारंटाइन इतिहास निकालने का प्रयास करें (नोट: FYI के रूप में, यदि Chrome या Firefox सक्रिय रूप से चल रहा है, तो उपकरण लॉक किए गए डेटाबेस को पढ़ने में सक्षम नहीं होगा)। हालाँकि, लॉक db को कहीं और कॉपी करके पढ़ा जा सकता है।
-SlackExtract --> जाँच करें कि Slack मौजूद है या नहीं और यदि हाँ, तो कुकी, डाउनलोड और वर्कस्पेस जानकारी पढ़ें (Cody Thomas द्वारा किए गए शोध का लाभ उठाता है)
-ShellHistory --> शेल (Bash या Zsh) इतिहास सामग्री पढ़ें
-Bookmarks --> Chrome सहेजे गए बुकमार्क पढ़ें
-ChromeUsernames --> ~/Library/Application Support/Google/Chrome/Default/Login Data से पढ़ें, जो प्रत्येक के लिए url के साथ उपयोगकर्ता नाम संग्रहीत करता है
-UniversalAccessAuth --> /Library/Preferences/com.apple.universalaccessAuthWarning.plist से पढ़ता है ताकि उन अनुप्रयोगों की सूची दिखाई जा सके जिनके लिए उपयोगकर्ता को प्राधिकरण संकेत प्राप्त हुए हैं, साथ ही 1 (स्वीकार के लिए) या 2 (अस्वीकार के लिए) के साथ
-StickieNotes --> सिस्टम पर किसी भी खुले स्टिकी नोट फ़ाइल की सामग्री पढ़ता है
-TextEditCheck --> सहेजे न गए TextEdit दस्तावेज़ों की जाँच करता है और फ़ाइल सामग्री पढ़ने का प्रयास करता है
-JupyterCheck --> ipython इतिहास db (जिसका Jupyter नोटबुक उपयोग करता है) की उपस्थिति की जाँच करता है और यदि मिलता है तो सामग्री पढ़ता है (जिसमें निष्पादित पायथन कमांड शामिल हैं)
सभी विकल्प चलाने के लिए:
./SwiftBelt
कुछ विकल्प निर्दिष्ट करने के लिए:
./SwiftBelt [option1] [option2] [option3]...
उदाहरण:
./SwiftBelt -SystemInfo -Clipboard -SecurityTools ...
हालाँकि यह उपकरण किसी कमांड लाइन उपयोगिता का उपयोग नहीं करता है (जिनका पता लगाना आसान है), यह उपकरण सिस्टम पर कई फ़ाइलों से पढ़ता है जिनका पता एंडपॉइंट सुरक्षा फ्रेमवर्क का लाभ उठाने वाले किसी भी उपकरण द्वारा लगाया जा सकता है (ये फ़ाइल रीड विशेष रूप से ESF के अंदर ES_EVENT_TYPE_NOTIFY_OPEN घटनाओं द्वारा कैप्चर की जाती हैं)।