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

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

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

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

工具目录

分类

查看所有分类
Loading categories
BlackBerryC2 — 加密命令与控制(C2)研究框架,用于网络安全教育、红队实验室以及安全的客户端-服务器通信实验。 | Kitploit
工具/GitHubGitHub/dereeqw/blackberryc2
加密/解密工具Payload生成IDS/IPS规避网络安全密码学渗透测试命令与控制学习与教育红队远程访问工具
GitHubdereeqw/blackberryc2

BlackBerryC2

3125个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

加密命令与控制(C2)研究框架,用于网络安全教育、红队实验室以及安全的客户端-服务器通信实验。

查看仓库

BlackBerryC2 2.0.0-beta

BlackBerryC2 是一个加密远程管理和 C2 框架,专为教育用途、安全研究和受控实验环境设计。 BlackBerryC2 演示

该项目展示了如何构建一个自定义命令与控制服务器,具备应用层加密、会话管理和安全客户端通信,无需依赖外部 TLS 协议栈。


⚠️ 重要声明

本项目不是恶意软件,也不用于未经授权的访问。

BlackBerryC2:

  • 不会自我传播
  • 不会自动利用漏洞
  • 不包含持久化机制
  • 不会尝试规避反病毒软件

请仅在您拥有或已获得明确授权测试的系统与网络上使用。


Python 依赖:

root@kitploit:~
pip install cryptography prompt_toolkit zstandard

zstandard 为可选依赖,建议在传输大于 1 GB 的文件时使用。


主要特性

  • 基于自定义 TCP 的加密 C2 服务器(v2.0)
  • ECDHE(secp256r1)密钥交换 —— 临时或持久
  • 每个会话使用 AES-256-GCM 认证加密
  • 每数据包 HMAC-SHA256 认证 + 反重放序列号
  • 多并发客户端会话
  • 交互式操作员控制台,支持 Tab 补全(prompt_toolkit)
  • 加密远程命令执行
  • 加密文件传输,支持 zlib / Zstandard 压缩
  • 递归目录上传/下载(get -r,put -r)
  • 后台传输(-b 标志)—— 非阻塞,可取消
  • 传输断点续传支持(.partial + .resume 文件)
  • 客户端载荷生成器(generate-payload)
  • IP 封锁:持久黑名单 + 临时自动封禁
  • 扫描/洪水检测:连接扫描、服务标识获取、握手失败、心跳洪水
  • 可选的 HTTP(S)/TLS 代理支持(BlackBerryHTTPs_TLSProxyGUI)
  • SPA(单包授权)和端口敲门预认证
  • BerryTransfer 模式 —— 专用的纯文件传输服务器(无 shell)
  • 加密会话日志(AES-256-GCM + PBKDF2,60 万次迭代)
  • 加密服务器日志,支持 shell 内查看(log 命令)
  • 启动配置保存至 logs/last_start.json

加密设计

BlackBerryC2 v2.0 按以下步骤建立安全通信:

  1. 客户端通过 TCP 连接;服务器发送服务横幅。
  2. 客户端发送 REQUEST_PUBKEY。
  3. 服务器发送其临时 ECDHE 公钥(secp256r1)。
  4. 客户端发送其 ECDHE 公钥 + HMAC-SHA256 认证标签。
  5. 服务器根据预共享密钥(HMAC_PRE_SHARED_SECRET)验证 HMAC。
  6. 双方通过共享密钥,利用 HKDF-SHA256 派生出一个 256 位的 AES 会话密钥。
  7. 后续所有通信均使用 AES-256-GCM,每数据包带有 HMAC-SHA256 和反重放序列号。

每个会话维护:

  • 自己的 AES-256 密钥和 HMAC 密钥
  • 独立的一次性随机数(每条消息 12 字节随机)
  • 隔离的反重放跟踪器(序列窗口 ±100)
  • 洪水保护速率限制器(可配置的每秒命令数)

所有加密密钥在运行时生成,重启后不会重复使用(除非设置了 --persistente)。


运行服务器

root@kitploit:~
python3 BlackBerryC2_server.py

默认配置:

  • 主机:0.0.0.0
  • 端口:9949

命令行参数

示例:

root@kitploit:~
# 基本启动(提示输入日志密码短语)
python3 BlackBerryC2_server.py

# 持久 ECDHE 密钥 + 详细日志
python3 BlackBerryC2_server.py -p -vv

# 自定义端口,不进行 HMAC 检查
python3 BlackBerryC2_server.py -P 8080 --no-secure

# 自定义端口上的端口敲门
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 9001,9002,9003

# BerryTransfer 模式 + 自动确认
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm

# 查看/解密日志而不启动服务器
python3 BlackBerryC2_server.py --logs

操作员控制台命令

服务器管理

代理


会话命令(在 select <ID> 内部)

通用

文件传输


BerryTransfer 模式

BerryTransfer 是一种专用的纯文件传输服务器模式,灵感来自 scp。激活后,服务器拒绝所有 shell 访问,仅接受 BT:* 协议命令。

启动:

root@kitploit:~
python3 BlackBerryC2_server.py --berrytransfer
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm  # GET 请求无需操作员提示

BerryTransfer shell 命令:

传输日志写入 logs/bt_transfer.jsonl(可选择 AES-256-GCM 加密)。


SPA / 端口敲门

当激活 --spa 时,客户端必须在 TCP 连接被接受前通过 UDP 进行认证。

SPA 模式(默认):客户端向 SPA_UDP_PORT 发送一个 32 字节的 HMAC-SHA256 令牌。

root@kitploit:~
token = HMAC-SHA256(HMAC_SECRET, "{ip}:{time_window_30s}")

敲门模式:客户端按顺序向一个 UDP 端口序列敲门,必须在超时窗口内完成。

root@kitploit:~
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 7001,7002,7003 --knock-timeout 10

授权 IP 在 --spa-ttl 秒内有效(默认 60)。


安全特性


日志记录

使用内置查看器查看日志:

root@kitploit:~
BlackBerry> log

或者独立查看(不启动服务器):

root@kitploit:~
python3 BlackBerryC2_server.py --logs

预期用途

本项目仅适用于:

  • 教育演示
  • 安全研究
  • 受控实验室环境
  • 授权渗透测试

严禁在未经许可的系统上未经授权使用。


许可证

完整的许可证详情请见 LICENSE 文件。


免责声明

本软件按“原样”提供,不附带任何形式的担保。
作者对因使用本软件而产生的任何滥用或损害概不负责。

下载工具
标志描述
-p / --persistente使用 ecdhe-cert/ 中的持久 ECDHE 密钥(提示输入密码短语)
-v调试日志
-vv详细(宽松)日志
-H <host>监听主机(默认:0.0.0.0)
-P <port>监听端口(默认:9949)
--no-secure接受任何 ECDHE 客户端,不进行 HMAC 验证
--hmac <secret>自定义 HMAC 预共享密钥(十六进制或字符串)
--log-passphrase <pass>使用 AES-256-GCM 加密服务器日志(PBKDF2 60 万次迭代)
--logs交互式日志查看器 —— 不启动服务器
--spa启用 SPA/端口敲门预认证
--spa-mode <spa|knock>spa = 单个 UDP 令牌,knock = 端口序列
--spa-port <port>SPA 监听器的 UDP 端口(默认:7331)
--knock-seq <ports>敲门模式的端口序列(默认:7001,7002,7003)
--knock-timeout <sec>完成敲门序列的超时秒数(默认:10)
--spa-ttl <sec>授权 IP 的有效秒数(默认:60)
--berrytransferBerryTransfer 模式:仅文件传输,无 shell
--transfer-root <dir>BerryTransfer 的根目录(默认:./berry_transfers)
--auto-confirmBerryTransfer 中自动批准所有 GET 请求(无需操作员提示)
命令描述
list列出活跃会话,显示统计信息和主机名
select <ID>与客户端会话交互
all <cmd>向所有已连接客户端发送命令
report完整服务器状态报告(运行时间、会话、传输)
set host <HOST>更改监听主机(重新绑定服务器)
set port <PORT>更改监听端口(重新绑定服务器)
sVbanner "<text>"更改服务横幅
generate-payload生成客户端载荷
fingerprint显示 ECDHE 服务器密钥指纹(SHA-256)
ecdhe-keys打印当前 ECDHE 密钥对(PEM)
kill <id|ip>按 ID 或 IP 终止会话
block <IP>永久阻止 IP
unblock <IP>解除 IP 阻止(持久 + 临时)
blocklist显示被阻止的 IP(持久和临时)
log交互式日志查看器(支持加密日志)
report状态摘要:运行时间、会话、传输
banner重新显示启动横幅
clean删除服务器日志文件
v切换 DEBUG 日志记录
vv切换 VERBOSE 日志记录
cd <dir>更改服务器本地工作目录
E <cmd>通过 os.system 在本地执行命令
<any command>在服务器上本地执行
exit停止服务器并退出
命令描述
proxy启动 TLS/HTTP 代理守护进程(自动模式)
proxy --mode <mode>模式:auto、tls、http、https、both、all
proxy --stats显示代理统计信息
proxy gui启动代理 GUI(单独进程)
stop-proxy停止代理守护进程
stop-proxy-gui停止代理 GUI
proxy-help代理帮助
命令描述
help显示会话帮助
exit返回主 shell
!<cmd>在服务器本地执行命令
<cmd>在远程客户端上执行命令
cmd1 && cmd2链式执行:仅当 cmd1 成功时运行 cmd2
cmd1 || cmd2链式执行:仅当 cmd1 失败时运行 cmd2
cmd1 ; cmd2链式执行:始终运行 cmd2
命令描述
get <file>从客户端下载文件
get <dir> -r递归下载目录
get <file> -b后台下载(非阻塞)
get <dir> -r -b后台递归下载
put <file>上传文件到客户端
put <file> -exc上传并在内存中执行(脚本)
put <dir> -r递归上传目录
put <file> -b后台上传
transfers列出所有活跃和已完成传输
stop <ID>取消后台传输(例如 stop T1)
resume <local_file>恢复中断的下载
screenshot捕获客户端屏幕
命令描述
confirm <ID>批准待处理的 GET 请求
deny <ID>拒绝待处理的 GET 请求
pending列出等待批准的 GET 请求
auto [on|off]切换/设置自动确认
clients显示活跃的 BerryTransfer 会话
ls [dir]列出传输根目录中的文件
tree [dir]传输根目录的文件树
find <name>在传输根目录中搜索文件
rm <file>从传输根目录删除文件(需确认)
log [N]显示最近 N 条传输日志条目(默认 30)
cd <dir>更改本地工作目录
pwd显示当前本地目录
!<cmd>执行本地系统命令
exit停止 BerryTransfer 服务器
特性详情
密钥交换ECDHE secp256r1,临时或持久
会话加密AES-256-GCM,每条消息 12 字节随机一次性随机数
客户端认证握手期间基于共享密钥的 HMAC-SHA256
消息完整性每数据包 HMAC-SHA256(覆盖序列号 + 一次性随机数 + 密文)
反重放每个会话的序列号窗口跟踪器
降级保护强制最低 AES 密钥大小(256 位)
心跳速率限制心跳间隔至少 3 秒;违规会被跟踪
命令洪水保护速率限制器;超阈值自动断开
扫描检测连接扫描、服务标识获取、握手失败计数器
IP 管理持久黑名单 + 临时封禁(自动 + 手动)
日志加密AES-256-GCM + PBKDF2-HMAC-SHA256(60 万次迭代)
响应抖动10–50ms 随机抖动,抵御时序攻击
预认证在 TCP 接受前执行 SPA 令牌或端口敲门
日志文件内容
logs/BlackBerryC2_Server.log明文轮转服务器日志(INFO 及以上)
logs/BlackBerryC2_enc.log加密服务器日志(如果设置了 --log-passphrase)
logs/sessions.jsonl会话事件:连接、断开、字节数
logs/bt_transfer.jsonlBerryTransfer 文件传输日志
logs/last_start.json启动配置快照(主机、端口、令牌、PID)