
Cobalt Strike के बाहर Beacon Object Files (BOFs) चलाएँ, 64-bit COFF ऑब्जेक्ट फ़ाइलों को पार्स करके, Beacon-संगत आर्गुमेंट जनरेशन और रेड-टीम परीक्षण के लिए सहायक स्क्रिप्ट्स के साथ।
यह एक जल्दबाज़ी में तैयार COFF लोडर है (उर्फ बीकन ऑब्जेक्ट फ़ाइलें)। वर्तमान में यह बिना संशोधित BOF चला सकता है, इसलिए इसका उपयोग बिना CS एजेंट चलाए परीक्षण के लिए किया जा सकता है। एकमात्र अपवाद यह है कि इंजेक्शन से संबंधित बीकन संगतता फ़ंक्शन केवल खाली हैं।
मुख्य लक्ष्य एक कार्यशील उदाहरण प्रदान करना है और शायद किसी के लिए उपयोगी होना है।
इसके कुछ भाग हैं, जो नीचे सूचीबद्ध हैं।
इसका उपयोग COFFLoader कोड के लिए तर्क उत्पन्न करने के लिए किया जाता है। यदि BOF तर्क लेता है, तो बस इसके साथ अपेक्षित प्रकार के तर्क जोड़ें और उपयोग के लिए हेक्स स्ट्रिंग उत्पन्न करें।
उदाहरण उपयोग यहाँ दिया गया है:
COFFLoader % python3 beacon_generate.py
Beacon Argument Generator
Beacon>help
Documented commands (type help <topic>):
========================================
addString addWString addint addshort exit generate help reset
Beacon>addWString test
Beacon>addint 4
Beacon>generate
b'120000000a0000007400650073007400000004000000'
Beacon>reset
Beacon>addint 5
Beacon>generate
b'0400000005000000'
Beacon>exit
प्रत्येक BOF के लिए किन तर्कों की आवश्यकता है, यह आप स्रोत कोड देखकर जान सकते हैं। Net User BOF को एक उदाहरण के रूप में लेते हुए, आप CS-Situational-Awareness-BOF Github में मौजूद src/SA/netuser/entry.c फ़ाइल देखें और फिर void go() फ़ंक्शन में पाए गए तर्कों को देखें।
VOID go(IN PCHAR Buffer, IN ULONG Length)
{
datap parser;
wchar_t *username = NULL;
wchar_t *domain = NULL;
BeaconDataParse(&parser, Buffer, Length);
username = (wchar_t *)BeaconDataExtract(&parser, NULL);
domain = (wchar_t *)BeaconDataExtract(&parser, NULL);
domain = *domain == 0 ? NULL : domain;
netuserinfo(username, domain);
printoutput(TRUE);
};
हम देख सकते हैं कि हमारे Net User BOF को "username" और "domain" की आवश्यकता है (जिन्हें हम whoami BOF चलाकर प्राप्त कर सकते हैं)। beacon_generate.py सहायक स्क्रिप्ट का उपयोग करके, हम तर्क इस प्रकार उत्पन्न करेंगे:
COFFLoader % python3 beacon_generate.py
Beacon Argument Generator
Beacon>addWString Administrator
Beacon>addWString client2
Beacon>generate
b'340000001c000000410064006d0069006e006900730074007200610074006f00720000001000000063006c00690065006e00740032000000'
Beacon>exit
अंत में, हेक्सीफ़ाई किए गए संख्यात्मक मानों (केवल संख्याएँ) को अपने निष्पादन कमांड में कॉपी करें।
COFFLoader64.exe go ..\CS-Situational-Awareness-BOF\SA\netuser\netuser.x64.o 340000001c000000410064006d0069006e006900730074007200610074006f00720000001000000063006c00690065006e00740032000000
आप इस लिंक पर अधिक विस्तृत उदाहरण पा सकते हैं:
https://trustedsec.com/blog/situational-awareness-bofs-for-script-kiddies
नीचे BOF चलाने का एक उदाहरण दिया गया है।
COFFLoader64.exe go test64.out
COFFLoader64.exe go ..\CS-Situational-Awareness-BOF\SA\whoami\whoami.x64.o