开源 C2 框架 AdaptixC2 (变色龙) 最新安装攻略
前言
在红队演练与高对抗渗透测试中,C2(Command and Control)框架的选择至关重要。AdaptixC2(社区常称其为“变色龙”)是一款近年来备受瞩目的开源 C2 框架。它以轻量化、高隐蔽性、多协议通信以及出色的免杀能力著称。

目前该项目迭代非常迅速,截至 2026 年 3 月 2 日,最新版本已更新至 v1.2。相比早期版本,v1.2 在架构稳定性上有了长足进步,配置文件也从 .json 转向了更具可读性的 .yaml 格式。
1. 环境准备与服务端安装
AdaptixC2 的服务端建议部署在 Linux 环境(如 Ubuntu 或 Debian)中,以确保最佳的性能和兼容性。
1.1 下载与依赖安装
首先克隆仓库并执行官方提供的依赖安装脚本:
apt update git clone https://github.com/Adaptix-Framework/AdaptixC2.git cd AdaptixC2 # 赋予脚本执行权限并安装服务端依赖chmod +x pre_install_linux_all.sh && ./pre_install_linux_all.sh server 
1.2 编译服务端
使用 make 指令进行编译,编译完成后,所有的二进制文件将输出到 dist 目录中。
在执行编译命令前,建议在终端中设置环境变量。这可以极大地加快 go mod download 的速度,避免因网络超时导致的报错。直接在当前终端执行以下命令:
# 启用 Go Modules 功能exportGO111MODULE=on # 设置七牛云镜像源exportGOPROXY=https://goproxy.cn,direct make server-ext 
1.3 生成 SSL 证书
AdaptixC2 服务端通过 HTTPS 协议进行安全通信,因此运行前必须配置 SSL 证书。官方提供了一个便捷的 ssl_gen.sh 脚本,用于生成有效期为 10 年的自签名证书。
cd dist chmod +x ssl_gen.sh && ./ssl_gen.sh 在交互界面中,按需填写证书信息
----- Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Tokyo Locality Name (eg, city) []:Tokyo Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []:Infrastructure Common Name (e.g. server FQDN or YOUR name) []: Email Address []: 完成后目录下会生成 server.rsa.crt 和 server.rsa.key。
1.4 启动服务端
在启动前,请检查 profile.yaml 配置文件,确认端口、证书路径及鉴权信息无误。
# 启动服务端 ./adaptixserver -profile profile.yaml 2. 客户端安装(跨平台)
AdaptixC2 的客户端基于 Qt 框架开发,支持 Linux 和 Windows 双平台。
2.1 Linux 客户端编译
在 Linux(如 Kali)上,你需要安装 Qt6 相关开发库:
# 安装编译套件及 Qt6 依赖aptinstall-y gcc g++ build-essential make cmake mingw-w64 g++-mingw-w64 \ libssl-dev qt6-base-dev qt6-base-private-dev libxkbcommon-dev \ qt6-websockets-dev qt6-declarative-dev # 执行编译make client # 启动客户端 ./AdaptixClient 2.2 Windows 客户端编译
对于 Windows 用户,官方目前推荐使用 MSYS2 环境进行编译,这种方式比传统安装 Qt IDE 更加轻量、快捷。
1. 安装 MSYS2 基础环境
从 MSYS2 GitHub Releases 下载最新安装包(如 msys2-x86_64-xxx.exe),并安装至默认路径 C:\msys64。
2. 配置开发工具链与 Qt6
为了确保编译性能和兼容性,请使用 UCRT64 环境。终端中执行以下命令启动 shell:
C:\msys64\msys2_shell.cmd -defterm -here -no-start -msys 接着运行以下命令换源并安装必要的构建工具和 Qt6 库:
sed-i"s#mirror.msys2.org/#mirrors.ustc.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist* pacman -Syu--noconfirm pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-qt6 提示:如果项目不需要静态编译,可将qt6-static换成普通的qt6。
3. 执行自动化构建
配置完成后,进入 AdaptixC2 源码目录下的客户端文件夹,启动编译:
- 定位到目录:
AdaptixClient\ - 双击运行脚本:
build.bat
编译完成后,生成的二进制文件存放在源码目录下的 dist 文件夹中。
注意:如果在运行build.bat时提示找不到编译器,请确保C:\msys64\mingw64\bin或C:\msys64\ucrt64\bin已添加到系统的 PATH 环境变量中,或者脚本内已正确指向 MSYS2 路径。

3. 扩展增强:Extension-Kit 插件安装
为了发挥 AdaptixC2 的最大威力,建议安装官方提供的 Extension-Kit 扩展包,它极大地增强了后渗透阶段的功能。
3.1 编译扩展插件
笔者在 Kali 环境下进行编译。
aptinstall g++-mingw-w64-x86-64-posix gcc-mingw-w64-x86-64-posix mingw-w64-tools cd Extension-Kit make

3.2 加载扩展
- 将编译好的
Extension-Kit-main文件夹完整复制到客户端机器。 - 打开 Adaptix 客户端,点击菜单栏:Extensions -> Script manager。
- 在空白处右键 -> Load new,选择
extension-kit.axs文件。
加载成功后如下图。

渗透时,命令将极大丰富。

4. 配置文件 profile.yaml 解析
接续上文,我们将重点解析 profile.yaml 中的核心配置项。理解这些参数不仅有助于顺利启动服务端,更是实现流量隐蔽化和安全防御的关键。
AdaptixC2 的配置文件分为两大块:Teamserver(控制端交互) 和 HttpServer(通信层伪装)。
4.1 Teamserver 基础设置
这部分定义了客户端(红队人员)如何连接到服务端。
| 字段 | 说明 | 安全建议 |
|---|---|---|
interface | 监听网卡,0.0.0.0 表示监听所有接口。 | 建议在生产环境绑定内网 IP 或特定 IP。 |
port | 团队服务器端口,默认 4321。 | 修改为非常用端口以规避扫描。 |
endpoint | 客户端连接的 URL 路径,如 /endpoint。 | 增加路径复杂度,防止未授权尝试。 |
password | 通用连接密码。 | 结合 only_password: true 使用,简化单人操作。 |
operators | 多用户模式,可为不同成员分配独立账号。 | 团队协作时建议开启,便于审计。 |
cert/key | 指向前文生成的 SSL 证书和私钥。 | 务必确保路径正确,否则无法启动。 |
4.2 Extenders & Scripts (插件扩展)
- extenders: 定义了服务端支持的协议监听器(Listener),如 HTTP、SMB、TCP、DNS 等。每一行对应一个功能模块的配置文件。
- axscripts: 脚本自动化扩展。如需默认加载
Extension-Kit,可取消注释并指向.axs文件。
4.3 令牌时效管理
- access_token_live_hours: 访问令牌有效期(默认 12 小时)。
- refresh_token_live_hours: 刷新令牌有效期(默认 7 天)。过期后需重新登录客户端。
4.4 HttpServer 伪装与安全
这部分直接决定了当外部(如安全扫描器)访问你的 C2 地址时,服务端表现出的“面具”。
① 错误页面伪装 (error)
当访问非法路径时,服务端会返回自定义的 404 页面和 Header。
- status: 返回码(如 404)。
- headers: 自定义响应头。注意: 默认配置中含有
Server: "AdaptixC2",在实战中强烈建议修改为nginx或Apache以隐藏特征。 - page: 指定一个真实的 HTML 文件(如
404page.html),模仿正常网站行为。
② 流量特性 (http)
- max_header_bytes: 限制 Header 大小,防止缓冲区溢出攻击。
- enable_http2: 开启 HTTP/2 支持,增加通信效率且更符合现代 Web 流量特征。
- timeouts: 各类超时设置。建议保持默认,或根据不稳定的网络环境调大
request_timeout_sec。
③ 加密强度控制 (tls)
- min_version / max_version: 强制使用 TLS 1.2 或 1.3,弃用不安全的老旧协议。
- cipher_suites: 定义加密套件。通过限定套件,可以使 C2 流量的 JA3 指纹更接近常见的合法服务(如 Cloudflare 或常见 CDN)。