
C# असेंब्लियों, PE फ़ाइलों या शेलकोड को एन्क्रिप्टेड Nim बाइनरीज़ में पैक करता है, जिसमें AMSI/ETW बायपास, सैंडबॉक्स डिटेक्शन, और रेड टीम ऑपरेशन के लिए कई इंजेक्शन तकनीकों सहित उन्नत एवेज़न सुविधाएँ शामिल हैं।
यह टूल x33fcon पर एक टॉक के बाद सार्वजनिक किया गया था। यह 2021-2024 तक मेरा निजी मुख्य कोडिंग प्रोजेक्ट था और अब इसे अप्रचलित माना जाता है और आगे इसका रखरखाव नहीं किया जाता है। मेरी ओर से यहाँ बग फिक्स या फीचर अपडेट की उम्मीद न करें। इसके बजाय, RustPack को अब परीक्षित रेड टीमों और पेंटेस्टर्स के लिए एक व्यावसायिक और नियंत्रित संस्करण के रूप में बनाए रखा जा रहा है, जो अधिक सुविधाओं से भरपूर और ऑपरेशनल सुरक्षा भी कहीं अधिक है।
यह पैकर किसी भी C# असेंबली, PE-फ़ाइल या शेलकोड को Nim बाइनरी में पैक करने के लिए इस्तेमाल किया जा सकता है। यह लक्ष्य पेलोड को एन्क्रिप्ट करेगा, दिए गए तर्कों के अनुसार संबंधित Nim स्रोत कोड का निर्माण करेगा और इसे एक Nim बाइनरी में कंपाइल करेगा।
एक वीडियो - यदि आप वह पसंद करते हैं - यहाँ पाया जा सकता है: https://youtu.be/0PwIn3Nxmgo
Nim/Nimble को सही ढंग से काम करने के लिए Git इंस्टॉल होना आवश्यक है।
Nim 2.2.10 और Nim विंडोज डाउनलोड पेज से लिंक किए गए MinGW-w64 GCC 11.1.0 बंडल के साथ परीक्षण किया गया। नए Nim रिलीज़ विंडोज पर एक उच्च PE इमेज बेस पर डिफ़ॉल्ट होते हैं, जो -static लिंक को relocation truncated to fit: R_X86_64_32S against .bss के साथ तोड़ देता है; पैकर अब स्टैटिक बिल्ड को काम करने के लिए -Wl,--image-base=0x10000 को बाध्य करता है, इसलिए कोई भी MinGW-w64 11.x बिल्ड ठीक होना चाहिए। यहाँ केवल x64 समर्थित है — x86/--x86/--wow64 बनाए नहीं रखा गया है।
nim-2.2.10_x64.zipmingw64.7z (Nim विंडोज इंस्टॉल पेज से लिंक किया गया)Expand-Archive से नहीं — यह चुपचाप lib\system.nim को छोड़ देता है क्योंकि lib\system\ निर्देशिका के साथ केस-टकराव होता है)। Nim zip में bin\7zG.exe शामिल है जिसका उपयोग आप MinGW निकालने के लिए कर सकते हैं।<nim>\bin और <mingw64>\bin को अपने %PATH% में जोड़ें। परिवर्तन प्रभावी होने के लिए लॉगऑफ/लॉगऑन (या अपने शेल को पुनरारंभ) करें।
कार्य करने के लिए ज्ञात संस्करण (Nim 2.2.10 के अनुसार): nimcrypto 0.6.0, docopt 0.7.1, ptr_math 0.3.0, winim 3.9.4, nim-strenc (HEAD — रिपॉजिटरी में कोई टैग की गई रिलीज़ नहीं है)।
यदि आप Windows पर LLVM obfuscator का उपयोग करना चाहते हैं, तो denim से एम्बेडेड संशोधित denim संस्करण का उपयोग करें। इसे denim\denim.exe setup के माध्यम से इंस्टॉल करें।
उदाहरण के लिए Kali / Debian पर। पैकर को ऐतिहासिक रूप से nim 1.6.8 + mingw-64 8.0.0-1 की आवश्यकता थी; अब स्टैटिक-लिंक --image-base=0x10000 वर्कअराउंड शामिल होने के कारण, नई टूलचेन भी काम करनी चाहिए। Windows बिल्ड वह है जिसका सक्रिय रूप से परीक्षण किया जाता है — Linux पर सर्वोत्तम प्रयास किया जाता है।```bash
apt-get install nim mingw-w64
nimble install [email protected] docopt ptr_math winim https://github.com/S3cur3Th1sSh1t/nim-strenc/
यदि `--hellsgate` नए mingw-w64 पर असेंबल होने में विफल रहता है, तो `mingw-64=8.0.0-1` पर डाउनग्रेड करें।
`pip3 install donut-shellcode` के माध्यम से donut स्थापित करें। `denim` को Unix से उपयोग नहीं किया जा सकता, इसलिए यहां LLVM के माध्यम से अस्पष्टीकरण संभव नहीं है। Callobfuscator के लिए भी यही बात है।
पैकर को `nim c -d:noRES NimSyscallLoader.nim` के माध्यम से कंपाइल करें। तैयार है। यदि आप -d:noRES का उपयोग नहीं करते हैं तो आपको निम्नलिखित त्रुटि मिल सकती है:```
/username/.nimble/pkgs/winim-3.7.1/winim/lib/winim64.res:(.rsrc+0x48): dangerous relocation: collect2: fatal error: ld terminated with signal 11 [Speicherzugriffsfehler]
compilation terminated.
इसे एक बार बनाने की आवश्यकता है (पहली बार में कुछ समय लगता है, बाद के बिल्ड कैश्ड हो जाएंगे)।
sudo docker build . -t nimsyscallloader
फिर पैकर को इस प्रकार चलाएं:
sudo docker run -v $(pwd):/shared nimsyscallloader <ARGUMENTS> --output=/shared/packed.exe
जहाँ $(pwd) होस्ट सिस्टम पर वह निर्देशिका है जो कंटेनर के साथ साझा की गई है, अर्थात वह निर्देशिका जहाँ एन्क्रिप्ट करने के लिए फ़ाइलें होनी चाहिए और जहाँ आउटपुट सहेजा जाएगा।
यदि आप LimeLighter के माध्यम से कोड साइनिंग प्रमाणपत्रों का उपयोग करना चाहते हैं तो आपको निम्नलिखित चीज़ें इंस्टॉल और अपने %PATH% में होनी चाहिए: openssl - (Windows के लिए) उदाहरण के लिए यहाँ से osslsigncode - उदाहरण के लिए यहाँ से
मैं यहाँ उपयोग किए जाने वाले तृतीय-पक्ष टूल्स में समस्याओं के लिए समर्थन नहीं दूंगा। इसलिए यदि आप उनमें समस्याओं का सामना कर रहे हैं तो कृपया संबंधित रिपॉजिटरी में एक इश्यू खोलें। उपयोग किए जा रहे तृतीय-पक्ष टूल्स:
आप या तो मेरे प्रीकंपाइल्ड बाइनरी का उपयोग कर सकते हैं या निश्चित रूप से ऊपर दिए गए लिंक से उन्हें स्वयं कंपाइल कर सकते हैं।
एक वीडियो - यदि आप वह पसंद करते हैं - यहाँ पाया जा सकता है: https://youtu.be/UHaIgdzqHDA
मैंने कुछ सुविधाओं के लिए छोटे वीडियो भी जोड़े हैं क्योंकि इसका अनुरोध किया गया था:
Caro-Kann:
ThreadlessInject सुविधा:
मॉड्यूल स्टॉम्पिंग सुविधा:
shellcodeURL सुविधा:
stegoFile सुविधा:
shellcodeFile सुविधा:
स्थानीय प्रक्रियाओं के लिए Ruy Lopez
Shellcode आउटपुट प्रारूप
असेंबली आउटपुट सुविधा
और मैंने एक सार्वजनिक वीडियो बनाया है जो दिखाता है कि ThreadlessInject तकनीक को डिफ़ॉल्ट प्रक्रिया के अलावा अन्य प्रक्रियाओं में कैसे अनुकूलित करें:
https://youtu.be/BYuAUYQcI-E``` NimSyscall_Loader v 2.2