Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/med0x2e/gadgettojscript
पेलोड जनरेशनस्थायित्व तंत्रशोषणपार्श्व आंदोलनपोस्ट-शोषणरेड टीमिंगपेलोड डेवलपमेंटप्रतिकूल हमला
GitHubmed0x2e/gadgettojscript

GadgetToJScript

एक टूल जो .NET सीरियलाइज़्ड गैजेट्स जनरेट करता है, जो JS/VBS/VBA-आधारित स्क्रिप्ट्स से BinaryFormatter का उपयोग करके डीसीरियलाइज़ किए जाने पर .NET assembly लोड/निष्पादन को ट्रिगर कर सकते हैं।

रिपॉजिटरी देखें
1.1k17875 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

विवरण

यह .NET सीरियलाइज़्ड गैजेट्स जनरेट करने का एक टूल है, जो JS/VBS/VBA स्क्रिप्ट्स से BinaryFormatter का उपयोग करके डीसीरियलाइज़ किए जाने पर .NET असेंबली लोड/निष्पादन को ट्रिगर कर सकते हैं।
वर्तमान गैजेट jscript/vbscript/vba से BinaryFormatter का उपयोग करके डीसीरियलाइज़ किए जाने पर Activator.CreateInstance() को कॉल ट्रिगर करता है, इसका मतलब है कि इसका उपयोग डिफ़ॉल्ट/पब्लिक कंस्ट्रक्टर के माध्यम से आपकी पसंद के .NET असेंबली के निष्पादन को ट्रिगर करने के लिए किया जा सकता है।

यह टूल मुख्य रूप से RT इंजेजमेंट्स (Initial Access, Lateral Movement, Persistence) के लिए WSH स्क्रिप्ट्स के वेपनाइज़ेशन को स्वचालित करने के लिए बनाया गया था; PoC के लिए उपयोग किया गया शेलकोड लोडर हटा दिया गया है और उसकी जगह TestAssembly प्रोजेक्ट में लागू किया गया एक उदाहरण असेंबली रखा गया है।

विस्तार:

  • AmsiEnable रजिस्ट्री कुंजी को अपडेट किए बिना या loadlibrary (AMSI.dll) को हाइजैक किए बिना AMSI को बायपास करता है।
  • "Assembly.Load" और ActivitySurrogateSelector टाइप चेक्स को ब्लॉक करने के लिए .NET 4.8+ में नए पेश किए गए नियंत्रणों को बायपास करता है।
  • गैजेट .NET Framework 3.5 से 4.8+ वातावरणों को लक्षित करने वाले पेलोड्स के उचित डीसीरियलाइज़ेशन का समर्थन करता है।
  • एक Surrogate क्लास बनाने के लिए ActivitySurrogateSelector पर निर्भर करता है जो एक रैपर के रूप में कार्य करती है, ताकि "Activator.CreateInstance(Assembly.Load(your_assembly_bytes).GetType())" को कॉल ट्रिगर करने के तरीके से निर्मित गैजेट को डीसीरियलाइज़ किया जा सके।
  • ActivitySurrogateSelector टाइप चेक को अक्षम करने के लिए TextFormattingRunProperties-आधारित गैजेट का पहले डीसीरियलाइज़ेशन चरण के रूप में लाभ उठाता है, जिससे (.NET Framework 4.8+) में हाल ही में पेश किए गए फिक्स बायपास हो जाते हैं।
  • मुख्य रूप से .NET-आधारित COM ऑब्जेक्ट को एक्सपोज़ करने पर निर्भर नहीं करता, इसलिए d.DynamicInvoke(al.ToArray()).CreateInstance(entry_class) कॉल करने की कोई आवश्यकता नहीं है।
  • डेलीगेट्स का उपयोग केवल डीसीरियलाइज़ेशन के दौरान पेलोड निष्पादन ट्रिगर करने के लिए किया जाता है (Func<Assembly, IEnumerable>), जो गैजेट तत्वों की उचित चेनिंग के लिए एक आवश्यकता है।
  • सीरियलाइज़्ड गैजेट्स या स्ट्रीम्स की लंबाई रनटाइम पर गणना की जाती है और उत्पन्न WSH स्क्रिप्ट्स में स्वचालित रूप से भरी जाती है (VBA के लिए आवश्यक नहीं)।
  • .NET-आधारित COM घटकों के रजिस्ट्रेशन-फ्री एक्टिवेशन पर निर्भर VBS/VBA और JS/HTA स्क्रिप्ट्स जनरेट करता है।
  • उपयोग और नोट्स:

    आप या तो Release फ़ोल्डर में स्थित बाइनरीज़ का उपयोग कर सकते हैं या G2JS को सोर्स से बनाने के लिए VS2017 का उपयोग करके अपने प्रोजेक्ट को .NET संस्करण 3.5 या 4.x पर रिटार्गेट कर सकते हैं।

    • G2JS के .NET 3.5 संस्करण का उपयोग करें:

      • ऐसे वातावरणों में चलाने के लिए लक्षित WSH स्क्रिप्ट्स जनरेट करें जहां .NET Framework 4.x उपलब्ध नहीं है या 4.8 से कम है। (3.5 न्यूनतम आवश्यक .NET Framework संस्करण है), इसके लिए आपको अपने C# पेलोड या .NET असेंबली को .NET framework <= 3.5 के साथ बनाना होगा।
    • G2JS के .NET 4.x संस्करण का उपयोग करें:

      • उन वातावरणों में चलाने के लिए WSH स्क्रिप्ट्स जनरेट करें जहां .NET Framework 4.x उपलब्ध है। (4.8+ सहित)
      • .NET 4.8+ वाले वातावरणों के लिए टाइप चेकिंग बायपास करने हेतु “--bypass” विकल्प का उपयोग करके WSH स्क्रिप्ट्स जनरेट करें।
    • C# सोर्स कोड पेलोड को आपकी क्लास के डिफ़ॉल्ट पब्लिक कंस्ट्रक्टर के भीतर रखा जाना चाहिए। (jscript से Mimikatz चलाने का उदाहरण; https://gist.github.com/med0x2e/cc10d42b1f581507013e801da2651c74)

    • परीक्षण नवीनतम windows 10 Enterprise 1909 रिलीज़ और विभिन्न .NET framework संस्करणों वाले Windows 7 पर किए गए।

    • WSH स्क्रिप्ट्स जनरेट करने के लिए GadgetToJScript.exe का उपयोग करते समय सुनिश्चित करें कि Windows Defender बंद हो, स्क्रिप्ट्स जनरेट हो जाने के बाद इसे वापस चालू किया जा सकता है।

    -w, --scriptType=jsjs, vbs, vba या hta पर सेट करें
    -a, --assembly=TestAssembly.dll.NET असेंबली, उदाहरण: -a C:\Users\userX\Desktop\shellcode_loader.dll/exe, वैकल्पिक रूप से आप -c cmdline स्विच का उपयोग करके इसकी जगह c# सोर्स फ़ाइल निर्दिष्ट कर सकते हैं।
    -c, --csfile=TestAssembly.csC# सोर्स कोड फ़ाइल, उदाहरण: -c C:\Users\userX\Desktop\shellcode_loader.cs, सुनिश्चित करें कि आप अपना कोड अपनी क्लास के डिफ़ॉल्ट कंस्ट्रक्टर के भीतर रखें और -d cmdline स्विच का उपयोग करके कोई भी आवश्यक निर्भरता निर्दिष्ट करें।
    -d, --references=Example.dllसंदर्भ असेंबलीज़, उदाहरण: -d System.Window- s.Forms.dll, System.dll
    -b, --bypass.NET संस्करण 4.8+ में पेश किए गए टाइप चेक नियंत्रणों को बायपास करें, डिफ़ॉल्ट रूप से false पर सेट, उस स्थिति में true (--bypass/-b) पर सेट करें जब WSH स्क्रिप्ट्स .NET संस्करण > 4.8+ वातावरणों पर चलाने के लिए जनरेट की जा रही हों। इस विकल्प का उपयोग केवल .NET 4.x G2JS एक्ज़ीक्यूटेबल के साथ किया जाना चाहिए
    -e, --encodeType=b64VBA गैजेट्स एन्कोडिंग: b64 या hex (डिफ़ॉल्ट b64 पर सेट)
    -o, --output=outputजनरेट किया गया पेलोड आउटपुट फ़ाइल, उदाहरण: -o C:\Users\userX\Desktop\output (बिना एक्सटेंशन के)
    -r, --regfree.NET-आधारित COM घटकों का रजिस्ट्रेशन-फ्री एक्टिवेशन, केवल JS/HTA स्क्रिप्ट्स पर लागू।
    -h, --helpसहायता दिखाएँ

    OPSEC टिप:

    WSH रजिस्ट्रेशन-फ्री JScript/HTA स्क्रिप्ट्स जनरेट करने के लिए G2JS के .NET 3.5 संस्करण का उपयोग करें, जो पहले TextFormattingRunProperties स्टेज गैजेट का उपयोग करके इस तरह के मिटिगेशन को अक्षम किए बिना भी .NET framework 4.8+ टाइप चेकिंग को बायपास कर सकती हैं। इसे .NET 4.8+ वातावरणों को लक्षित करने वाले Reg-free JScript/HTA पेलोड्स को निष्पादित करने के लिए एक बेहतर/क्लीनर बायपास मानें, क्योंकि इसके लिए आवश्यकता नहीं होती:

    • पहले स्टेज गैजेट की
    • Shell ऑब्जेक्ट बनाने की
    • रजिस्ट्री से वर्तमान .NET framework संस्करण पढ़ने की
    • COMPLUS_Version एनवायरनमेंट वेरिएबल सेट करने की

    -> कम IOCs + 3.5 < .NET < 4.x वातावरणों को लक्षित करना।

    क्रेडिट्स और संदर्भ

    यह टूल निम्नलिखित द्वारा किए गए शानदार शोध/कार्य पर आधारित है:

    • @tyranid https://googleprojectzero.blogspot.com/2017/04/ => (अनसीरियलाइज़ करने योग्य क्लासेस का सीरियलाइज़ेशन/डीसीरियलाइज़ेशन संभव बनाया)
    • @pwntester yoserial.net प्रोजेक्ट https://github.com/pwntester/ysoserial.net
    • @olekmirosh https://community.microfocus.com/t5/Security-Research-Blog/New-NET-deserialization-gadget-for-compact-payload-When-size/ba-p/1763282
    • @monoxgas https://silentbreaksecurity.com/re-animating-activitysurrogateselector/
    • @zcgonvh http://www.zcgonvh.com/post/weaponizing_CVE-2020-0688_and_about_dotnet_deserialize_vulnerability.html

    अस्वीकरण

    GadgetToJScript का उपयोग केवल अधिकृत रेड टीमिंग और/या गैर-लाभकारी शैक्षिक उद्देश्यों के लिए किया जाना चाहिए। इस सॉफ़्टवेयर के किसी भी दुरुपयोग की ज़िम्मेदारी लेखक की नहीं होगी। इसे अपने स्वयं के नेटवर्क और/या नेटवर्क मालिक की अनुमति के साथ उपयोग करें।

    टूल डाउनलोड करें