Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Striker — 多操作者C2框架,配备原生C和Python代理、HTTP(S)信道、异步任务以及用于红队行动的响应式Web UI。 | Kitploit
工具/GitHubGitHub/4g3nt47/striker
Payload生成命令与控制红队远程访问工具
GitHub4g3nt47/striker

Striker

多操作者C2框架,配备原生C和Python代理、HTTP(S)信道、异步任务以及用于红队行动的响应式Web UI。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Striker C2

Striker 是一个简单的命令与控制(C2)程序。

Pasted image 20221022194999

免责声明

image

本项目正在积极开发中。大多数功能尚处于实验阶段,后续还将增加更多功能。预计会有破坏性变更。

功能特性

A) 代理

  • 面向 Linux 和 Windows 主机的原生代理。
  • 自包含的最小化 Python 代理,以备不时之需。
  • HTTP(s) 通信信道。
  • 异步任务执行。
  • 支持多个重定向器,并在活动重定向器宕机时回退到其他重定向器。

B) 后端 / 团队服务器

  • 支持多个操作员。
  • 大多数功能通过 REST API 公开,便于自动化操作。
  • 使用 Web Socket 实现更快的通信。

C) 用户界面

  • 借助 Svelte 和 SocketIO 实现流畅且响应式的 UI。
  • 易于配置,编译为静态 HTML、JavaScript 和 CSS 文件,可由最基本的 Web 服务器托管。
  • 团队聊天功能,可通过文本与其他操作员交流。

安装 Striker

克隆仓库:

root@kitploit:~
$ git clone https://github.com/4g3nt47/Striker.git
$ cd Striker

代码库分为四个独立部分:

1. C2 服务器 / 后端

此部分处理操作员和代理的所有服务器端逻辑。它是一个 NodeJS 应用程序,使用了:

  • express — 用于 REST API。
  • socket.io — 用于 Web Socket 通信。
  • mongoose — 用于连接 MongoDB。
  • multer — 用于处理文件上传。
  • bcrypt — 用于对用户密码进行哈希处理。

源代码位于 backend/ 目录中。设置服务器:

  1. 设置一个 MongoDB 数据库;

Striker 使用 MongoDB 作为后端数据库来存储所有重要数据。你可以在本地机器上安装 MongoDB,参考这篇指南(适用于基于 Debian 的发行版),或者使用 MongoDB Atlas(数据库即服务平台)创建一个免费数据库。

  1. 进入源代码目录;
root@kitploit:~
$ cd backend
  1. 安装依赖;
root@kitploit:~
$ npm install
  1. 创建一个存放静态文件的目录;
root@kitploit:~
$ mkdir static

你可以使用此文件夹在服务器上托管静态文件。这也是 .env 文件中 UPLOAD_LOCATION 应设置的路径(稍后会详细说明),但这不是必须的。此目录下的文件将在 /static/ 路径下公开访问。

  1. 创建 .env 文件;

注意:< 和 > 之间的值为占位符。请将它们替换为适当的值(包括 <> 本身)。 对于需要随机字符串的字段,可以使用以下命令轻松生成:

root@kitploit:~
$ head -c 100 /dev/urandom | sha256sum
root@kitploit:~
DB_URL=<你的 MongoDB 连接 URL>
HOST=<监听主机(默认:127.0.0.1)>
PORT=<监听端口(默认:3000)>
SECRET=<用于签名会话 Cookie 和加密会话数据的随机字符串>
ORIGIN_URL=<托管前端的服务器的完整 URL,用于设置 CORS>
REGISTRATION_KEY=<注册时用于身份验证的随机字符串>
MAX_UPLOAD_SIZE=<最大文件上传大小(字节)>
UPLOAD_LOCATION=<存储上传文件的目录(默认:static)>
SSL_KEY=<你的 SSL 密钥文件(可选)>
SSL_CERT=<你的 SSL 证书文件(可选)>

注意 SSL_KEY 和 SSL_CERT 是可选的。如果未定义任何一个,将创建纯 HTTP 服务器。这有助于避免在相同主机上运行具有 SSL 的反向代理时产生不必要的开销。

  1. 启动服务器;
root@kitploit:~
$ node index.js
[12:45:30 PM]  Connecting to backend database...
[12:45:31 PM]  Starting HTTP server...
[12:45:31 PM]  Server started on port: 3000

2. 前端

这是操作员使用的 Web UI。它是一个用 Svelte 编写的单页 Web 应用程序,源代码位于 frontend/ 目录中。

设置前端:

  1. 进入源代码目录;
root@kitploit:~
$ cd frontend
  1. 安装依赖;
root@kitploit:~
$ npm install
  1. 创建一个 .env 文件,并将变量 VITE_STRIKER_API 设置为上述 C2 服务器的完整 URL;
root@kitploit:~
VITE_STRIKER_API=https://c2.striker.local
  1. 构建;
root@kitploit:~
$ npm run build

上述步骤会将所有内容编译到 dist/ 目录中的静态 Web 应用程序。你可以将所有文件移动到 Web 服务器的 web 根目录,或者使用像 Python 那样的基本 HTTP 服务器来托管它;

root@kitploit:~
$ cd dist
$ python3 -m http.server 8000
  1. 注册;
  • 在 Web 浏览器中打开站点。你应该会看到一个登录页面。
  • 点击 Register 按钮。
  • 输入用户名、密码以及正在使用的注册密钥(参见 backend/.env 中的 REGISTRATION_KEY)。

这将创建一个标准用户账户。你需要一个管理员账户才能访问某些功能。 你的第一个管理员账户必须手动创建,之后可以在 Web UI 的 Users 选项卡中升级和降级其他账户。

创建第一个管理员账户:

  • 连接到后端使用的 MongoDB 数据库。
  • 更新 users 集合,将目标用户的 admin 字段设置为 true;

有几种不同的方法可以实现这一点。如果你的 CLI 中有 mongo,可以使用以下命令:

root@kitploit:~
$ mongo <你的 MongoDB 连接 URL>
> db.users.updateOne({username: "<你的用户名>"}, {$set: {admin: true}})

如果成功,你会收到以下响应:

root@kitploit:~
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

现在你可以登录了 :)

3. C2 重定向器

A) 管道重定向

redirector/redirector.py 中提供了一个为 Striker 编写的管道重定向器。显然,这仅适用于纯 HTTP 流量,或者当 SSL 验证被禁用时适用于 HTTPS(你可以通过启用 C 代理中的 INSECURE_SSL 宏来做到这一点)。

以下示例监听所有接口上的端口 443,并将流量转发到 c2.example.org 的端口 443;

root@kitploit:~
$ cd redirector
$ ./redirector.py 0.0.0.0:443 c2.example.org:443
[*] Starting redirector on 0.0.0.0:443...
[+] Listening for connections...

B) Nginx 反向代理作为重定向器

  1. 安装 Nginx;
root@kitploit:~
$ sudo apt install nginx
  1. 创建一个虚拟主机配置文件(例如:/etc/nginx/sites-available/striker);

占位符:

  • <domain-name> — 这是你服务器的 FQDN,应与 SSL 证书中的域名一致。
  • <ssl-cert> — 要使用的 SSL 证书文件。
  • <ssl-key> — 要使用的 SSL 密钥文件。
  • <c2-server> — 要转发请求的 C2 服务器的完整 URL。

警告:client_max_body_size 应至少与 backend/.env 文件中定义的 MAX_UPLOAD_SIZE 一样大,否则大文件上传将失败。

root@kitploit:~
server {
    listen 443 ssl;
    server_name             <domain-name>;
    ssl_certificate         <ssl-cert>;
    ssl_certificate_key     <ssl-key>;
    client_max_body_size    100M;
    access_log              /var/log/nginx/striker.log;

    location / {
      proxy_pass              <c2-server>;
      proxy_redirect          off;
      proxy_ssl_verify        off;
      proxy_read_timeout      90;
      proxy_http_version      1.0;
      proxy_set_header        Upgrade $http_upgrade;
      proxy_set_header        Connection "upgrade";
      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  1. 启用它;
root@kitploit:~
$ sudo ln -s /etc/nginx/sites-available/striker /etc/nginx/sites-enabled/striker
  1. 重启 Nginx;
root@kitploit:~
$ sudo service nginx restart

现在你的重定向器应该已经在端口 443 上运行,可以使用以下命令进行测试(假设你的 FQDN 是 striker.local);

root@kitploit:~
$ curl https://striker.local

如果正常工作,你应该会收到后端使用的 404 响应,如下所示:

root@kitploit:~
{"error":"Invalid route!"}

4. 代理(植入体)

A) C 代理

这些是 Striker 使用的植入体。主要代理使用 C 编写,位于 agent/C/ 中。它支持 Linux 和 Windows 主机。Linux 代理在外部依赖 libcurl,大多数系统都已安装。

Windows 代理没有外部依赖。它使用 wininet 进行通信,我相信所有 Windows 主机都可用。

  1. 为 Linux 构建

假设你在 64 位主机上,以下将为 64 位主机构建;

root@kitploit:~
$ cd agent/C
$ mkdir bin
$ make

在 64 位主机上为 32 位构建;

root@kitploit:~
$ sudo apt install gcc-multilib
$ make arch=32

上述操作会将所有内容编译到 bin/ 目录中。生成可工作的植入体只需要两个文件:

  • bin/stub — 这是将用作生成可工作植入体模板的代理存根。
  • bin/builder — 这是你将用于修补代理存根以生成可工作植入体的工具。

构建器接受以下参数;

root@kitploit:~
$ ./bin/builder 
[-] Usage: ./bin/builder <url> <auth_key> <delay> <stub> <outfile>

其中:

  • <url> — 要报告的服务器。理想情况下应是一个重定向器,但直接指向服务器的 URL 也可以工作。
  • <auth_key> — 连接到 C2 时使用的身份验证密钥。你可以在 Web UI 的 auth keys 选项卡中创建它。
  • <delay> — 每次回调之间的延迟(秒)。至少应为 2,具体取决于你希望它的频率。
  • <stub> — 要读取的存根文件,此处为 bin/stub。
  • <outfile> — 新植入体的输出文件名。

示例:

root@kitploit:~
$ ./bin/builder https://localhost:3000 979a9d5ace15653f8ffa9704611612fc 5 bin/stub bin/striker
[*] Obfuscating strings...
[+] 69 strings obfuscated :)
[*] Finding offsets of our markers...
[+] Offsets:
            URL: 0x0000a2e0
       OBFS Key: 0x0000a280
       Auth Key: 0x0000a2a0
          Delay: 0x0000a260
[*] Patching...
[+] Operation completed!
  1. 为 Windows 构建

你需要 MinGW。以下将安装 32 位和 64 位的 Windows 开发环境;

root@kitploit:~
$ sudo apt install mingw-w64

构建 64 位版本;

root@kitploit:~
$ cd agent/C
$ mdkir bin
$ make target=win

编译 32 位版本;

root@kitploit:~
$ make target=win arch=32

这将把所有内容编译到 bin/ 目录中,你将得到构建器和存根文件,分别为 bin\stub.exe 和 bin\builder.exe。

B) Python 代理

Striker 还附带了一个自包含的 Python 代理(已在 Python 2.7.16 和 3.7.3 上测试)。该文件位于 agent/python/。此代理仅实现了最基本的功能。适用于无法运行 C 代理但安装了 Python 的主机。

此目录中有两个文件:

  • stub.py — 这是要传递给构建器的负载存根。
  • builder.py — 这是你将用于生成植入体的工具。

使用示例:

root@kitploit:~
$ ./builder.py
[-] Usage: builder.py <url> <auth_key> <delay> <stub> <outfile>
# 以下命令将生成一个可工作的负载文件 `output.py`
$ ./builder.py http://localhost:3000 979a9d5ace15653f8ffa9704611612fc 2 stub.py output.py
[*] Loading agent stub...
[*] Writing configs...
[+] Agent built successfully: output.py
# 运行它
$ python3 output.py

快速开始

按照上述说明操作后,Striker 应该已经可以使用了。请仔细阅读使用指南。祝您愉快,快乐黑客!

支持

如果您喜欢这个项目,请考虑帮助我把咖啡变成代码!

下载工具