
ब्लू टीमों के लिए यूनिट परीक्षण ताकि कुछ सामान्य macOS पोस्ट एक्सप्लॉइटेशन विधियों के लिए डिटेक्शन बनाने में सहायता मिल सके।
ब्लू टीमों के लिए यूनिट टेस्ट जो macOS पर सामान्य पोस्ट-एक्सप्लॉइटेशन विधियों के लिए डिटेक्शन बनाने में सहायता करते हैं। मैंने कमांड लाइन हिस्ट्री और API कॉल दोनों का उपयोग करके कुछ पोस्ट-एक्सप्लॉइटेशन उदाहरण शामिल किए हैं। यहाँ शामिल पोस्ट-एक्सप्लॉइटेशन उदाहरण संपूर्ण नहीं हैं। इसके बजाय ये कुछ सामान्य उदाहरण हैं जो मुझे लगा कि यूनिट टेस्ट करने के लिए उपयोगी होंगे। मैं समय के साथ इस प्रोजेक्ट में अतिरिक्त यूनिट टेस्ट जोड़ना जारी रखने की योजना बना रहा हूँ।
ये सभी परीक्षण स्थानीय रूप से चलते हैं और परिणाम stdout पर लौटाते हैं (अर्थात Swift-Attack किसी सर्वर से कनेक्ट नहीं होता है)।
git clone https://github.com/cedowens/Swift-Attack && cd Swift-Attack
सुनिश्चित करें कि आपने swift और डेवलपर टूल्स इंस्टॉल किए हैं (मैक ऐप स्टोर से इंस्टॉल कर सकते हैं)
dylib इंजेक्शन परीक्षण के लिए calc.c बनाएँ:
gcc -dynamiclib -o calc.dylib calc.c
swiftc -o Swift-Attack swift-attack.swift
./Swift-Attack -h

नोट: अन्य TTP निर्भरताएँ नीचे दी गई हैं:
आप Swift-Attack को एक विकल्प या एकाधिक विकल्पों के साथ चला सकते हैं
./Swift-Attack [option1] [option2]...
मैंने macOS पर ऑफिस मैक्रो निष्पादन के आस-पास पैरेंट-चाइल्ड संबंधों के परीक्षण के लिए एक सरल macro.txt फ़ाइल (अस्पष्ट नहीं) भी शामिल की है। मैंने इसे अस्पष्ट नहीं किया क्योंकि ध्यान पैरेंट-चाइल्ड संबंध दृश्यता/डिटेक्शन पर है। यदि आप अस्पष्ट मैक्रो के साथ परीक्षण करना चाहते हैं, तो मेरे पास github.com/cedowens/MacC2 पर एक रिपॉजिटरी है जिसमें एक अस्पष्ट मैक्रो है।
मैंने केवल दो पर्सिस्टेंस टेस्ट (लॉन्च एजेंट और लॉगिन आइटम) शामिल किए हैं। पर्सिस्टेंस उदाहरणों की अधिक व्यापक सूची के लिए Leo Pitt के Persistent JXA रिपॉजिटरी https://github.com/D00MFist/PersistentJXA देखें।
osascript बाइनरी का उपयोग करके प्रॉम्प्ट
API कॉल के माध्यम से प्रॉम्प्ट
osascript बाइनरी का उपयोग करके क्लिपबोर्ड डंप
API कॉल के माध्यम से क्लिपबोर्ड डंप
screencapture बाइनरी का उपयोग करके स्क्रीनशॉट
API कॉल के माध्यम से स्क्रीनशॉट
zsh हिस्ट्री डंप करना
सुरक्षा टूल एनुमरेशन
osascript बाइनरी का उपयोग करके सिस्टम जानकारी प्राप्त करना
API कॉल के माध्यम से सिस्टम जानकारी प्राप्त करना
डिस्क पर ssh, aws, gcp और azure कुंजियाँ डंप करना
ब्राउज़र हिस्ट्री डंप करना (Chrome, Safari, Firefox)
क्वारंटाइन हिस्ट्री डंप करना
ऑफिस मैक्रो: मैंने एक सरल ऑफिस मैक्रो शामिल किया है जो लोकल होस्ट से कनेक्ट होता है। ध्यान दें: जब "Enable Macros" बटन पर क्लिक करके निष्पादित किया जाता है, तो मैक्रो http://127.0.0.1/testing पर GET अनुरोध करने के लिए python का उपयोग करके curl को लागू करेगा। यह आपको मैक्रो निष्पादन के आस-पास पैरेंट-चाइल्ड संबंधों के लिए डिटेक्शन का परीक्षण करने की अनुमति देगा। ध्यान दें: इस सरल परीक्षण में कोई अस्पष्टता शामिल नहीं है, क्योंकि परीक्षण वास्तव में पैरेंट-चाइल्ड संबंधों पर अधिक केंद्रित है। आप अस्पष्ट मैक्रो के साथ परीक्षण करने के लिए https://github.com/cedowens/MacC2 पर मेरी दूसरी रिपॉजिटरी का उपयोग कर सकते हैं। उपयोग करने के लिए, बस "macro.txt" की सामग्री को एक ऑफिस डॉक में पेस्ट करें, मैक्रो-सक्षम दस्तावेज़ या 97-2004 दस्तावेज़ प्रारूप (जैसे .doc, .xls, आदि) के रूप में सहेजें, और निष्पादित करने के लिए दस्तावेज़ खोलते समय "Enable Macros" पर क्लिक करें।
इंस्टॉलर पैकेज: मैंने एक बुनियादी इंस्टॉलर पैकेज के आस-पास डिटेक्शन के परीक्षण के लिए TestInstaller.pkg फ़ाइल शामिल की है। इस इंस्टॉलर पैकेज में एक प्रीइंस्टॉल स्क्रिप्ट शामिल है जो bash में चलती है और com.simple.agent.plist को /Library/LaunchDaemons/ में ड्रॉप करती है तथा test.js (सरल पॉपअप प्रॉम्प्ट) को /Library/Application Support/ में ड्रॉप करती है। com.simple.agent.plist फ़ाइल बस /Library/Application Support/test.js के विरुद्ध osascript चलाती है। इसमें एक पोस्टइंस्टॉल स्क्रिप्ट भी शामिल है जो bash में चलती है और launchctl load का उपयोग करके com.simple.agent.plis को लोड करती है। Control बटन दबाए रखते हुए TestInstaller.pkg पर Open पर क्लिक करके इसे चलाएँ। TestInstaller.pkg उपरोक्त फ़ाइलों को रूट के रूप में ड्रॉप करेगा।
CVE-2021-30657 बाइपास पेलोड: cve-2021-30657 का दुरुपयोग करने वाले दो अलग-अलग प्रकार के पेलोड (दोनों detonate होने पर लोकलहोस्ट पर curl अनुरोध करते हैं) का परीक्षण करने के लिए दो नमूना पेलोड। अधिक जानकारी यहाँ: https://cedowens.medium.com/macos-gatekeeper-bypass-2021-edition-5256a2955508
लॉन्च एजेंट पर्सिस्टेंस
लॉगिन आइटम पर्सिस्टेंस
यूजर कीचेन db तक पहुँचना/कॉपी करना
Dylib इंजेक्शन
Chrome कुकीज डंप करना