
मैलवेयर कॉन्फ़िगरेशन और पेलोड निष्कर्षण
सैंडबॉक्स का उपयोग दुर्भावनापूर्ण फ़ाइलों को एक पृथक वातावरण में निष्पादित करने के लिए किया जाता है, साथ ही उनके गतिशील व्यवहार को इंस्ट्रूमेंट करते हुए और फोरेंसिक कलाकृतियाँ एकत्र करते हैं।
CAPE Cuckoo v1 से व्युत्पन्न हुआ था जिसमें विंडोज प्लेटफ़ॉर्म पर निम्नलिखित मुख्य क्षमताएँ हैं:
CAPE Cuckoo के पारंपरिक सैंडबॉक्स आउटपुट को कई महत्वपूर्ण जोड़ों के साथ पूरक करता है:
एक मुफ्त प्रदर्शन उदाहरण ऑनलाइन है जिसका उपयोग कोई भी कर सकता है:
https://capesandbox.com - खाता सक्रियण के लिए https://twitter.com/capesandbox पर पहुँचें
Cuckoo Sandbox 2010 में The Honeynet Project के अंतर्गत Google Summer of Code परियोजना के रूप में शुरू हुआ। इसे मूल रूप से Claudio Guarnieri द्वारा डिज़ाइन और विकसित किया गया था, पहला बीटा संस्करण 2011 में प्रकाशित हुआ था। जनवरी 2014 में, Cuckoo v1.0 जारी किया गया।
2015 एक निर्णायक वर्ष था, जिसमें Cuckoo के इतिहास में एक महत्वपूर्ण विभाजन हुआ। मुख्य Cuckoo परियोजना में मूल मॉनिटर और API हुकिंग विधि का विकास रोक दिया गया। इसे Jurriaan Bremer द्वारा बनाए गए Linux टूलचेन के माध्यम से संकलित restructuredText-आधारित हस्ताक्षर प्रारूप का उपयोग करते हुए एक वैकल्पिक मॉनिटर से बदल दिया गया।
उसी समय के आसपास, Brad 'Spender' Spengler द्वारा Cuckoo-modified नामक एक कांटा बनाया गया जिसने मूल मॉनिटर के विकास को महत्वपूर्ण सुधारों के साथ जारी रखा जिसमें 64-बिट समर्थन और महत्वपूर्ण रूप से Microsoft के Visual Studio कंपाइलर का परिचय शामिल था।
उसी वर्ष के दौरान Context Information Security में Kevin O'Reilly द्वारा CAPE नामक एक गतिशील कमांड-लाइन कॉन्फ़िगरेशन और पेलोड निष्कर्षण उपकरण का विकास शुरू किया गया। यह नाम 'Config And Payload Extraction' के संक्षिप्त रूप के रूप में गढ़ा गया था और मूल शोध Microsoft के Detours लाइब्रेरी द्वारा प्रदान किए गए API हुक का उपयोग करके अनपैक किए गए मैलवेयर पेलोड और कॉन्फ़िगरेशन को कैप्चर करने पर केंद्रित था। हालाँकि, यह स्पष्ट हो गया कि API हुक अकेले मनमाने मैलवेयर से पेलोड या कॉन्फ़िग को अनपैक करने की अनुमति देने के लिए अपर्याप्त शक्ति और सटीकता प्रदान करते हैं।
इस कारण से एक उपन्यास डीबगर अवधारणा में शोध शुरू हुआ ताकि मैलवेयर को सटीक रूप से नियंत्रित और इंस्ट्रूमेंट किया जा सके जबकि Microsoft डिबगिंग इंटरफेस के उपयोग से बचा जा सके, ताकि यथासंभव गुप्त रहा जा सके। इस डीबगर को प्रूफ-ऑफ-कॉन्सेप्ट Detours-आधारित कमांड-लाइन टूल में एकीकृत किया गया, जिसने API हुक के साथ संयोजन करके बहुत शक्तिशाली क्षमताएँ प्रदान कीं।
जब प्रारंभिक कार्य ने दिखाया कि Microsoft Detours को Cuckoo-modified के API हुकिंग इंजन से बदलना संभव होगा, तो CAPE Sandbox का विचार जन्म हुआ। डीबगर, स्वचालित अनपैकिंग, YARA-आधारित वर्गीकरण और एकीकृत कॉन्फ़िग निष्कर्षण के जुड़ने के साथ, सितंबर 2016 में 44con में, CAPE Sandbox पहली बार सार्वजनिक रूप से जारी किया गया: CAPE संस्करण 1.
2018 की गर्मियों में, परियोजना को Andriy 'doomedraven' Brukhovetskyy, जो एक लंबे समय से Cuckoo योगदानकर्ता हैं, से बड़े योगदान की शुरुआत देखने का सौभाग्य मिला। 2019 में उन्होंने CAPE को Python 3 में पोर्ट करने का विशाल कार्य शुरू किया और उस वर्ष अक्टूबर में CAPEv2 जारी किया गया।
CAPE को मैलवेयर और ऑपरेटिंग सिस्टम क्षमताओं दोनों में प्रगति के साथ बनाए रखने के लिए लगातार विकसित और बेहतर किया गया है। 2021 में, गतिशील YARA स्कैन के माध्यम से विस्फोट के दौरान CAPE के डीबगर को प्रोग्राम करने की क्षमता जोड़ी गई, जिससे एंटी-सैंडबॉक्स तकनीकों के लिए गतिशील बाईपास बनाने की अनुमति मिली। Windows 10 डिफ़ॉल्ट ऑपरेटिंग सिस्टम बन गया, और अन्य महत्वपूर्ण जोड़ों में इंटरैक्टिव डेस्कटॉप, AMSI (एंटी-मैलवेयर स्कैन इंटरफ़ेस) पेलोड कैप्चर, Microsoft Nirvana पर आधारित 'syscall हुकिंग' और डीबगर-आधारित प्रत्यक्ष/अप्रत्यक्ष syscall प्रतिउपाय शामिल हैं।

CAPE में मैलवेयर को तीन तंत्रों के माध्यम से वर्गीकृत किया जा सकता है:

पार्सिंग CAPE के अपने फ्रेमवर्क का उपयोग करके की जा सकती है, वैकल्पिक रूप से निम्नलिखित फ्रेमवर्क समर्थित हैं: RATDecoders, DC3-MWCP, MalDuck, या MaCo
def extract_config(data): एंट्री पॉइंट के साथ शुद्ध Python है जिसे cape_utils.py द्वारा कॉल किया जाएगा और 0 जटिलताएँ हैं।

CAPE अनपैक किए गए पेलोड कैप्चर की अनुमति देने के लिए कई मैलवेयर तकनीकों या व्यवहारों का लाभ उठाता है:
ये व्यवहार आगे के विश्लेषण के लिए इंजेक्ट, निकाले या डीकम्प्रेस किए जा रहे पेलोड के कैप्चर का परिणाम देंगे। इसके अलावा CAPE स्वचालित रूप से प्रत्येक प्रक्रिया के लिए एक प्रक्रिया डंप बनाता है, या DLL के मामले में, मेमोरी में DLL का मॉड्यूल इमेज बनाता है। यह सरल पैकर्स के साथ पैक किए गए नमूनों के लिए उपयोगी है, जहाँ अक्सर मॉड्यूल इमेज डंप पूरी तरह से अनपैक होता है।
CAPE के डिफ़ॉल्ट 'निष्क्रिय' अनपैकिंग तंत्रों के अलावा, 'सक्रिय' अनपैकिंग को सक्षम करना संभव है जो निष्पादन से पहले जितनी जल्दी हो सके अनपैक किए गए पेलोड को कैप्चर करने के लिए नव आवंटित या संरक्षित मेमोरी क्षेत्रों में लेखन का पता लगाने के लिए ब्रेकपॉइंट का उपयोग करता है। यह वेब सबमिशन टिकबॉक्स के माध्यम से या विकल्प unpacker=2 निर्दिष्ट करके सक्षम किया जाता है और डिफ़ॉल्ट रूप से बंद रहता है क्योंकि यह विस्फोट की गुणवत्ता को प्रभावित कर सकता है।
CAPE को YARA हस्ताक्षर के माध्यम से विशिष्ट पैकर्स को अनपैक करने के लिए प्रोग्राम किया जा सकता है। उदाहरण के लिए, UPX-प्रकार के पैकर्स बहुत सामान्य हैं और, हालाँकि CAPE में ये निष्क्रिय रूप से कैप्चर किए गए अनपैक पेलोड में परिणाम देते हैं, डिफ़ॉल्ट कैप्चर अनपैक पेलोड के निष्पादन शुरू होने के बाद किया जाता है। इसलिए कस्टम YARA हस्ताक्षर के माध्यम से गतिशील रूप से UPX-व्युत्पन्न पैकर्स का पता लगाकर और अंतिम पैकर निर्देश पर एक ब्रेकपॉइंट सेट करके, पेलोड को इसके मूल प्रवेश बिंदु (OEP) पर निष्पादन शुरू होने से पहले कैप्चर करना संभव है।


dump-on-api विकल्प एक मॉड्यूल को डंप करने की अनुमति देता है जब वह एक विशिष्ट API फ़ंक्शन को कॉल करता है जिसे वेब इंटरफ़ेस में निर्दिष्ट किया जा सकता है (जैसे dump-on-api=DnsQuery_A)।
डीबगर ने CAPE को अपनी मूल क्षमताओं से परे विकसित होने की अनुमति दी है, जिसमें अब गतिशील एंटी-एवेज़न बाईपास शामिल हैं। चूंकि आधुनिक मैलवेयर आमतौर पर सैंडबॉक्स के भीतर विश्लेषण से बचने का प्रयास करता है, उदाहरण के लिए वर्चुअलाइज़ेशन के लिए टाइमिंग ट्रैप या API हुक डिटेक्शन का उपयोग करके, CAPE Yara हस्ताक्षरों के भीतर डीबगर क्रियाओं को संयोजित करके गतिशील प्रतिउपाय विकसित करने की अनुमति देता है ताकि विस्फोट के समय एवेसिव मैलवेयर का पता लगाया जा सके, और नियंत्रण-प्रवाह में हेरफेर करके नमूने को पूरी तरह से विस्फोट करने या एवेसिव क्रियाओं को छोड़ने के लिए बाध्य किया जा सके।

डीबगर तक त्वरित पहुँच सबमिशन विकल्पों bp0 से bp3 के साथ संभव है जो ब्रेकपॉइंट सेट करने के लिए RVA या VA मान स्वीकार करते हैं, जिसके बाद count और depth विकल्पों द्वारा नियंत्रित एक छोटा निर्देश ट्रेस आउटपुट होगा (जैसे bp0=0x1234,depth=1,count=100)।

मॉड्यूल एंट्री पॉइंट पर ब्रेकपॉइंट सेट करने के लिए, पते के बजाय ep का उपयोग किया जाता है (जैसे bp0=ep)। वैकल्पिक रूप से break-on-return एक हुक किए गए API के रिटर्न पते पर ब्रेकपॉइंट की अनुमति देता है (जैसे break-on-return=NtGetContextThread)। एक वैकल्पिक base-on-api पैरामीटर RVA ब्रेकपॉइंट के लिए इमेज बेस को API कॉल द्वारा सेट करने की अनुमति देता है (जैसे base-on-api=NtReadFile,bp0=0x2345)।

विकल्प action0 - action3 ब्रेकपॉइंट हिट होने पर कार्रवाई करने की अनुमति देते हैं, जैसे कि मेमोरी क्षेत्रों को डंप करना (जैसे action0=dumpebx) या निष्पादन नियंत्रण प्रवाह को बदलना (जैसे action1=skip)। CAPE`s दस्तावेज़ीकरण में ऐसी कार्रवाइयों के और उदाहरण हैं।
CAPE के मॉनिटर के कोड वाला रिपॉजिटरी अलग है।
CAPE समुदाय द्वारा विकसित कई सैकड़ों हस्ताक्षरों वाला एक समुदाय रिपॉजिटरी है। सभी नई सामुदायिक सुविधाओं को उस रिपो में पुश किया जाना चाहिए। बाद में उन्हें कोर में स्थानांतरित किया जा सकता है यदि डेवलपर्स उन्हें बनाए रखने में सक्षम और इच्छुक हैं।
कृपया आगे के मैलवेयर परिवारों के लिए नए हस्ताक्षर, पार्सर या बाईपास बनाने में मदद करके इस परियोजना में योगदान दें। वर्तमान में कई काम चल रहे हैं, इसलिए इस स्थान पर नज़र रखें।
@D00m3dR4v3n को CAPE को अकेले Python 3 में पोर्ट करने के लिए एक बड़ा धन्यवाद।
Python3
केवल रूटर को रूट के रूप में निष्पादित किया जाना चाहिए, बाकी को cape उपयोगकर्ता के रूप में। रूट के रूप में चलाने से अनुमतियाँ गड़बड़ हो जाएंगी।
conf फ़ोल्डर के अंदर सभी कॉन्फ़िग फ़ाइलें पढ़ें!kvm-qemu.sh और cape2.sh को tmux सत्र से निष्पादित किया जाना चाहिए ताकि ssh कनेक्शन टूटने पर OS समस्याओं को रोका जा सके।<username> को एक वास्तविक पैटर्न से बदलें।<WOOT> को बदलने की आवश्यकता है!sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.logsudo ./cape2.sh base 2>&1 | tee cape.logconf फ़ोल्डर के अंदर कॉन्फ़िग फ़ाइलों में संशोधन करके CAPE को कॉन्फ़िगर करें।systemctl restart <service_name> का उपयोग करेंjournalctl -u <service_name> का उपयोग करें-h देखें। डीबग मोड (-d) में सेवा चलाना भी मदद कर सकता है।-h होती है, लेकिन कृपया यह समझने के लिए स्क्रिप्ट की जाँच करें कि वे क्या कर रहे हैं।git pullpython3 utils/community.py -waf सुनिश्चित करने के लिए पहले -h देखें कि आप समझते हैंgit add --all
git commit -m '[STASH]'
git pull --rebase origin master
# fix conflict (rebase) if needed
git reset HEAD~1
# make sure kevoreilly repo has been added as a remote (only needs to be done once)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# make sure all your changes are commited on the branch which you will be merging
git commit -a -m '<your commit message goes here>'
# fetch changes from kevoreilly repo
git fetch kevoreilly
# merge kevoreilly master branch into your current branch
git merge kevoreilly/master
# fix merge conflicts if needed
# push to your repo if desired
git push
यदि आप अपने कार्य में CAPEv2 का उपयोग करते हैं, तो कृपया इसे GitHub मेनू में "इस रिपॉजिटरी को उद्धृत करें" में निर्दिष्ट अनुसार उद्धृत करें।
pefile का उपयोग करते हैं क्योंकि प्रत्येक अपने इच्छित संस्करण को पिन करता है।
pefile निर्भरता हटा दें क्योंकि आपने इसे पहले ही स्थापित कर लिया है। देखो, अब और दर्द नहीं।