Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
NimPlant — 一个用 Nim(和 Rust)编写的轻量级第一阶段 C2 植入体。 | Kitploit
工具/GitHubGitHub/chvancooten/nimplant
渗透测试框架Payload生成后渗透利用命令与控制红队
GitHubchvancooten/nimplant

NimPlant

一个用 Nim(和 Rust)编写的轻量级第一阶段 C2 植入体。

查看仓库
951116101年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

NimPlant - 轻量级第一阶段C2植入体,使用Nim|Rust和Python编写

GitHub Workflow Status PRs Welcome

作者 Cas van Cooten (@chvancooten),特别感谢以下出色的人:

Kadir Yamamoto (@yamakadi),Furkan Göksel (@frkngksl),Fabian Mosch (@S3cur3Th1sSh1t),Rafael Félix (@b1scoito),Guillaume Caillé (@OffenseTeacher),以及许多其他人!

如果NimPlant对您有用,并且/或者您总体上喜欢我的工作,非常欢迎您的支持:

Sponsor on GitHub

功能概览

  • 轻量级且可配置的植入体,使用Nim和Rust编程语言编写
  • 漂亮的Web图形界面,让您在操作中显得很酷
  • 默认对所有流量进行加密和压缩,混淆植入体制品中的静态字符串
  • 支持多种植入体类型,包括原生二进制文件(exe/dll)、shellcode或自删除可执行文件
  • 丰富的命令选择,专注于初期操作,包括本地枚举、文件或注册表管理以及网络交互
  • 通过inline-execute、shinject(使用动态调用)、自定义运行空间中的powershell或线程内execute-assembly轻松部署更高级的功能或有效载荷
  • 支持在任何平台上操作,植入体目前仅针对x64 Windows
  • 全面记录所有交互和文件操作
  • 更多功能,请见下方 :)

使用说明

安装

运行Nimplant需要现代版本的Python3。

服务端

  • 从server文件夹安装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 Windows目标:rustup target add x86_64-pc-windows-gnu。
  • 为提高操作安全性的建议:根据Cargo.toml修改您的~/.cargo/config.toml文件,并使用nightly构建链(rustup default nightly)。

**注意:**即使在Windows上编译,也建议使用x86_64-pc-windows-gnu目标。它生成的二进制文件稍大,但从生成的DLL生成shellcode时似乎更稳定。您可以修改rust-toolchain.toml将目标更改为x86_64-pc-windows-msvc,但生成的shellcode可能并非在所有情况下都能正常工作。

快速入门

配置

在使用NimPlant之前,请创建配置文件config.toml。建议复制config.toml.example并在此基础上工作。

设置概览如下。

类别设置项描述
serveripC2 Web服务器(包括API)将监听的IP。建议使用127.0.0.1,仅在您已设置适当的防火墙或路由规则以保护C2时使用0.0.0.0。
serverportC2 Web服务器(包括API)将监听的端口。
listenertype监听器类型,HTTP或HTTPS。HTTPS选项在下方配置。
listenersslCertPathHTTPS证书文件的本地路径(例如通过LetsEncrypt CertBot请求或自签名)。当监听器类型为'HTTP'时忽略。
listenersslKeyPath对应HTTPS证书私钥文件的本地路径。如果设置了密码,运行NimPlant服务器时将提示输入密码。当监听器类型为'HTTP'时忽略。
listenerhostname监听器主机名。如果不为空(""),NimPlant将使用此主机名进行连接。请确保从该主机到NimPlant监听器端口的流量路由正确。
listenerip监听器IP。即使设置了'hostname'也需要,因为服务器使用此IP进行注册。
listenerport监听器端口。即使设置了'hostname'也需要,因为服务器使用此端口进行注册。
listenerregisterPath新NimPlant用于注册的URI路径。
listenertaskPathNimPlant获取任务的URI路径。
listenerresultPathNimPlant提交结果的URI路径。
nimplantriskyMode编译支持危险命令的NimPlant。操作者自行决定。禁用将移除对execute-assembly、powershell、shell和shinject的支持。
nimplantsleepMask是否对Nimplant使用Ekko睡眠掩码替代常规睡眠调用。目前仅适用于常规可执行文件!
nimplantsleepTime新Nimplant的默认睡眠时间(秒)。
nimplantsleepJitter新Nimplant的默认抖动百分比。
nimplantkillDateNimplant的失效日期(格式:yyyy-MM-dd)。如果超过此日期,Nimplant将退出。
nimplantuserAgentNimplant使用的用户代理。服务器也使用它来验证Nimplant流量,因此建议选择一个不太显眼但也不过于常见的用户代理。

编译

配置满意后,您可以生成NimPlant二进制文件以部署到目标。目前,NimPlant支持.exe、.dll和.bin二进制文件,分别对应(自删除)可执行文件、库和位置无关的shellcode(通过sRDI)。要生成,运行python nimplant.py compile,然后指定首选的二进制文件类型(exe、exe-selfdelete、dll、raw或all),以及可选地植入体类型(nim、rust、nim-debug或rust-debug——默认编译Nim)。文件将分别写入client/bin/或client-rs/bin/。

您可以传递rotatekey参数以在编译期间生成并使用新的XOR密钥。

注意:

  • 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

                *    *(#    #
                **  **(##  ##
       ########       (       ********
      ####(###########************,****
         # ########       ******** *
         .###                   ***
         .########         ********
         ####    ###     ***    ****
       ######### ###     *** *********
     #######  ####  ## **  ****  *******
     #####    ##      *      **    *****
     ######  ####   ##***   **** .******
     ###############     ***************
          ##########     **********
             #########**********
               #######********
    

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

      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/'.

### 使用 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(如果在Linux上运行,需要sudo权限)。一旦Nimplant签入,您可以使用控制台,或者访问Web界面http://localhost:31337(默认端口)。

下载工具