
C++ शेलकोड इंजेक्शन तकनीक जो Windows Defender को बायपास करने के लिए XOR एन्क्रिप्शन और UUID स्ट्रिंग रूपांतरण का उपयोग करती है, जिसमें फंक्शन कॉल ऑबफस्केशन और VirtualAlloc और EnumChildWindows के माध्यम से मेमोरी एग्जीक्यूशन शामिल है।
एक और शेलकोड इंजेक्शन तकनीक जो C++ का उपयोग करती है जो XOR एन्क्रिप्शन जादू और UUID स्ट्रिंग्स पागलपन के माध्यम से Windows Defender को बायपास करने का प्रयास करती है :)।
सबसे पहले, बाइनरी फॉर्मेट में एक पेलोड जनरेट करें (Havoc, CobaltStrike या msfvenom का उपयोग करके) उदाहरण के लिए, msfvenom में, आप इसे इस प्रकार कर सकते हैं (मैं जिस पेलोड का उपयोग कर रहा हूँ वह चित्रण उद्देश्यों के लिए है, आप अपनी इच्छानुसार कोई भी पेलोड उपयोग कर सकते हैं):
msfvenom -p windows/messagebox -f raw -o shellcode.bin
फिर शेलकोड (बाइनरी/रॉ फॉर्मेट में) को Python3 स्क्रिप्ट bin_to_uuid.py का उपयोग करके UUID स्ट्रिंग फॉर्मेट में बदलें:
./bin_to_uuid.py -p shellcode.bin -o uuid.txt
UUID स्ट्रिंग्स को uuid.txt में Python3 स्क्रिप्ट xor_encryptor.py का उपयोग करके xor द्वारा एन्क्रिप्ट करें।
./xor_encryptor.py uuid.txt > xor_crypted_out.txt
फ़ाइल xor_crypted_out.txt में C-style ऐरे को कॉपी करें और इसे C++ फ़ाइल में unsigned char ऐरे के रूप में पेस्ट करें, यानी unsigned char payload[]{your_output_from_xor_crypted_out.txt}
यह शेलकोड इंजेक्शन तकनीक निम्नलिखित क्रमिक चरणों को शामिल करती है:
VirtualAlloc के माध्यम से पेलोड निष्पादन और निवास के लिए वर्चुअल मेमोरी आवंटित करता हैxor कुंजी मान का उपयोग करके पेलोड को xor डिक्रिप्ट करता हैUuidFromStringA का उपयोग UUID स्ट्रिंग्स को उनके बाइनरी प्रतिनिधित्व में बदलने और पहले से आवंटित मेमोरी में संग्रहीत करने के लिए किया जाता है। इसका उपयोग WriteProcessMemory या memcpy जैसे संदिग्ध APIs के उपयोग से बचने के लिए किया जाता है।EnumChildWindows का उपयोग करेंmemcpy या WriteProcessMemory जैसे मानक फ़ंक्शन का उपयोग नहीं करता जो AV/EDR को अलर्ट करने के लिए जाने जाते हैं, यह प्रोग्राम Windows API फ़ंक्शन UuidFromStringA का उपयोग करता है जिसका उपयोग डेटा को डीकोड करने के साथ-साथ मेमोरी में लिखने के लिए किया जा सकता है ( क्या यह बढ़िया नहीं है दोस्तों? और कृपया "NO!" न कहें :) )।xor कुंजी (line 85) को अपनी इच्छानुसार बदलना होगा। यह ./xor_encryptor.py python3 स्क्रिप्ट में KEY वेरिएबल को बदलकर भी किया जाना चाहिए। कुंजियाँ मेल खानी चाहिए!executable filename मान (row 90) को अपने फ़ाइलनाम में बदलना होगा।mingw का उपयोग किया गया था लेकिन आप अपनी पसंद का कोई भी कंपाइलर उपयोग कर सकते हैं। :)make


बाइनरी को antiscan.me का उपयोग करके 01/08/2022 को स्कैन किया गया था।

https://research.nccgroup.com/2021/01/23/rift-analysing-a-lazarus-shellcode-execution-method/