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

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

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

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

工具目录

分类

查看所有分类
Loading categories
C2concealer — 生成随机的、经lint验证的Cobalt Strike C2可塑配置文件,自动化HTTP/S、DNS、SMB和SSH信标配置,并支持可自定义的IOC随机化。 | Kitploit
工具/GitHubGitHub/redsiege/c2concealer
渗透测试框架Payload生成命令与控制红队
GitHubredsiege/c2concealer

C2concealer

生成随机的、经lint验证的Cobalt Strike C2可塑配置文件,自动化HTTP/S、DNS、SMB和SSH信标配置,并支持可自定义的IOC随机化。

查看仓库
1.1k1724个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

C2concealer

C2concealer 是一个命令行工具,用于生成随机化的 C2 可塑配置文件,供 Cobalt Strike 使用。

安装

root@kitploit:~
git clone https://github.com/RedSiege/C2concealer.git
cd C2concealer
python3 -m venv .venv
source .venv/bin/activate
pip3 install -e .

Docker 安装

请参阅 Docker 说明

使用示例

root@kitploit:~
用法:
	$ C2concealer --hostname google.com --variant 3

标志:
	
	(可选)
	--hostname 
		用于 HTTP 客户端和服务端设置的主机名。默认值:无。
	--variant 
		一个整数,定义要生成的 HTTP 客户端/服务端变体数量。
		建议设为 1 到 5。最大值为 10。

控制台输出示例

root@kitploit:~
root@kali:~# C2concealer --variant 1 --hostname google.com
[i] 正在搜索系统中的 c2lint 工具(Cobalt Strike 的一部分)。可能需要 10-20 秒。
[i] 在 /opt/cobaltstrike/c2lint 目录下找到了 c2lint。

选择一个 SSL 选项:
1. 自签名 SSL 证书(仅需输入一些详细信息)
2. Let's Encrypt SSL 证书(需要将相关域名的临时 A 记录指向本机)
3. 现有的密钥库
4. 不使用 SSL

[?] 请选择选项 [1/2/3/4]:

提示:请始终使用 SSL 证书。最好是 Let's Encrypt 或类似机构颁发的证书。 提示:HTTP 变体允许你为不同的 Beacon 选择不同的 HTTP 流量 IOC。建议值至少为 1。

工作原理

我们仔细研究了 Cobalt Strike 文档,并为每个配置属性定义了合理的取值范围。有时这些数据只是某个范围内的随机整数,有时我们需要从 Python 字典中随机选取一个值。无论如何,我们首先定义了能够构成有效配置文件的数据,然后开始构建工具。

接着,我们将可塑配置文件的每个部分(或块)拆分成单独的 .py 文件,其中包含随机抽取每个属性适当值的逻辑,然后为该配置块输出格式化的字符串。我们将所有配置块拼接在一起,运行一些简单的一致性检查,然后通过 Cobalt Strike 的 linter(c2lint)对配置文件进行验证。生成的结果是一个应该可以在你的行动中使用的配置文件。我们始终建议在实际运行活动之前测试配置文件(包括进程注入和派生)。

如果你正在研究代码,建议从这两个文件开始:/C2concealer/__main__.py 和 /C2concealer/profile.py。阅读注释后,可以查看 /C2concealer/components 文件夹中的各个配置块生成器。

自定义工具

这一点至关重要。这是一个开源工具。安全厂商可以轻易地为它生成的配置文件编写签名。虽然运行工具能为构建 Cobalt Strike 可塑配置文件提供良好的起点,但建议深入以下领域,自定义用于填充生成配置文件的数据:

/C2concealer/data/

  • dns.py(自定义 DNS 子域名)
  • file_type_prepend.py(自定义 http-get-server 响应的外观……即 C2 控制指令)
  • params.py(两个字典,包含常见参数名和一个通用词表)
  • post_ex.py(spawn_to 进程列表……一定要修改这个)
  • reg_headers.py(典型的 HTTP 头,如 User-Agent 和 Server)
  • smb.py(通过 SMB 通信时使用的 SMB 管道名称)
  • ssh.py(使用 SSH Beacon 时的 SSH 管道和横幅名称)
  • stage.py(用于更改与 Stager 相关的 IOC 的数据)
  • transform.py(有效载荷数据转换……无需修改)
  • urls.py(用于构建整个工具中 URI 的文件类型和 URL 路径组件……一定要修改这个)

此外,你可以自定义整个配置生成过程中的各种属性。例如,在文件 /C2concealer/components/stageblock.py 中,你可以更改 PE 镜像大小值的取值范围(靠近第 73-74 行)。请仔细查看 components 目录中的所有不同文件。

如果你已经读到这里,那么我们知道你会充分利用这个工具。我们推荐将该工具视为:我们已经构建了自动生成这些配置文件的骨架代码。现在,你需要思考每个属性在行动中合理的取值,并更新数据源。

进一步自定义你的配置文件

虽然我们已经涵盖了 Malleable C2 配置语言中许多可能的选项,但仍有许多选项我们没有设置。强烈建议查阅 Malleable Command and Control 文档 并修改你的配置文件。

以下选项未被设置,或由 C2concealer 静态设置,你应该考虑更改它们。

http-config 块

缺失选项说明
set block_useragents阻止非 Beacon 的 UA 模式
set allow_useragents允许特定 UA 模式(CS 4.3+)

stage 块

process-inject 块

post-ex 块

缺失选项说明
set pipename用于 post-ex 任务的命名管道

dns-beacon 块

缺失选项说明
set ns_responsedrop/idle/zero NS 处理。未设置时默认为 drop。
set dns_stager_prepend在暂存有效载荷前附加数据

数据转换(所有转换上下文)

缺失转换说明
lznt1压缩——未出现在任何编码链中
rc4 "key"加密——未出现在任何编码链中
xor "key"XOR——未出现在任何编码链中

鸣谢

特别感谢 Raphael Mudge 不断改进可塑配置文件的功能集和相关文档。同时,非常感谢 @killswitch-GUI 开发的用于在 CS 团队服务器上自动生成 Let's Encrypt 证书的脚本。最后,两篇博客文章让工作变得轻松许多:@bluescreenofjeff 的文章(https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/)和 Joe Vest 的文章(https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b)。

版本变更日志

版本 1.0

  • 公开 FortyNorth Security 内部工具版本。
  • 添加了对 CS 4.0 的支持(特别是多个 HTTP 变体)
  • 更新了 README.md

版本 1.1

  • 更新以包含 CS 4.12 支持的配置文件选项
  • 更新了浏览器 UA 字符串
  • 更新了 Cookie 字符串为现代常见 Cookie
  • 添加了 SSH 横幅和 SSH 管道名称选项
  • 更新了 Docker 安装指南
  • 修复了 Let's Encrypt 支持
下载工具
缺失选项说明
set allocator硬编码为 VirtualAlloc;缺少 HeapAlloc、MapViewOfFile 随机化
set magic_mz_x86 / magic_mz_x64MZ 头欺骗
set magic_pePE 标记欺骗
set rich_header编译器元数据欺骗
set module_x86 / module_x64模块踩踏
set copy_pe_header—
set data_store_size—
set eaf_bypassEAT 检查绕过
set syscall_method无/直接/间接(CS 4.8+)
set rdll_loaderPrependLoader/StompLoader
set rdll_use_syscalls—
set rdll_use_driploading—
set rdll_dripload_delay—
transform-obfuscate 块base64、lznt1、rc4、xor 选项完全缺失
transform-x86/x64 中的 append仅使用了 prepend 和 strrep
缺失选项说明
set allocator硬编码为 VirtualAllocEx;缺少 NtMapViewOfSection 随机化
set use_driploading—
set dripload_delay—
transform-x86/x64 中的 append仅使用了 prepend
Execute: NtQueueApcThread未出现在 execute 块中
Execute: NtQueueApcThread-s未出现在 execute 块中
Execute: ObfSetThreadContext未出现在 execute 块中
Execute: SetThreadContext未出现在 execute 块中
Execute 函数欺骗不支持 module!function+0x## 语法
uri-append
终止语句——未实现