AdaptixC2(变色龙)
免责声明:本文仅为个人在自建、隔离靶场中的安全学习笔记,所有操作均针对本人拥有的虚拟机、云主机,不涉及任何真实生产系统或第三方目标。严禁将本文内容用于未授权访问、非法控制、数据窃取、系统破坏等违法活动。使用者应自行遵守当地法律法规,因滥用产生的一切后果由使用者自行承担,作者不承担任何责任。本文仅供授权安全测试与学习研究使用。
一、架构说明
GUI Client (Windows物理机) │ │ 加密通信 (REST API) ▼ Teamserver (Linux服务器) ▲ │ 主动回连 │ Agent (靶机 Windows/Linux)- Teamserver:必须跑在 Linux 服务器上,核心组件
- GUI Client:支持 Windows/Linux/macOS,操作台
- Agent:植入靶机,主动回连 Teamserver
二、编译前准备
推荐使用阿里云2核2G Ubuntu 20/22
三、服务端编译
1. 克隆项目
git clone https://github.com/Adaptix-Framework/AdaptixC2.git cd AdaptixC22. 一键安装依赖
chmod +x pre_install_linux_all.sh sudo ./pre_install_linux_all.sh server3. 编译服务端 + 扩展
make server-ext输出过程:
[*] Building adaptixserver... [+] done [*] Building default extenders * Building listener_beacon_http plugin * Building listener_beacon_tcp plugin * Building listener_beacon_smb plugin * Building agent_gopher plugin * Building agent_beacon plugin ... [+] done注意:扩展一个一个编译,全程 10-20 分钟属正常,别中途 Ctrl+C。
四、生成 SSL 证书并启动
1. 进入 dist 目录
cd dist2. 生成证书
chmod +x ssl_gen.sh && ./ssl_gen.sh提示填写证书信息时,全部直接回车跳过,不需要输入任何内容。
生成文件:
server.rsa.crtserver.rsa.key
3. 查看配置
cat profile.yaml关键字段:
Teamserver: interface: "0.0.0.0" port: 4321 # 客户端连接端口 password: "pass" # 客户端连接密码 only_password: true # 只用统一密码4. 启动服务端
./adaptixserver -profile profile.yaml注意:是-profile,不是-prifile;文件名是profile.yaml,不是.json。
启动后看到:
[+] AdaptixServer v1.x [+] Listening on 0.0.0.0:4321这个终端不要关,服务端要一直跑。
五、阿里云安全组放行
控制台 → 安全组 → 入方向 → 手动添加:
字段 | 填写 |
授权策略 | 允许 |
优先级 | 100 |
协议类型 | 自定义 TCP |
端口范围 |
|
授权对象 |
|
描述 | AdaptixC2 Teamserver |
六、客户端连接参数
字段 | 值 |
Host | 服务器公网 IP |
Port | 4321 |
Password | profile.yaml 中的 password(默认 |
七、常见坑速查
问题 | 原因 | 解决 |
| 包名过时 | 用官方 |
Go 模块下载慢 | 网络问题 | 设 |
| 没有执行权限 |
|
| 不在 dist 目录 |
|
客户端 exe 打不开 | 缺 DLL | 用 |
靶机回连不上 | 网络/端口 | 安全组放行;Listener IP 填公网 |
2G 内存编译 OOM | 内存不足 | 加 2G Swap |
八、目录结构速查
AdaptixC2/ ├── dist/ # 编译产物 + 运行目录 │ ├── adaptixserver # 服务端可执行文件 │ ├── server.rsa.crt # SSL 证书 │ ├── server.rsa.key # SSL 私钥 │ ├── profile.yaml # 配置文件 │ ├── 404page.html # 错误页 │ ├── ssl_gen.sh # 证书生成脚本 │ └── extenders/ # 扩展插件 ├── AdaptixClient/ # 客户端源码 ├── AdaptixServer/ # 服务端源码 ├── pre_install_linux_all.sh # 一键安装脚本 └── Makefile九、完整命令速查
# 1. 加 Swap sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile sudo mkswap /swapfile && sudo swapon /swapfile # 2. 克隆 git clone https://github.com/Adaptix-Framework/AdaptixC2.git cd AdaptixC2 # 3. 安装依赖 chmod +x pre_install_linux_all.sh sudo ./pre_install_linux_all.sh server # 4. 编译 export GOPROXY=https://mirrors.aliyun.com/goproxy/,direct make server-ext # 5. 证书 + 启动 cd dist chmod +x ssl_gen.sh && ./ssl_gen.sh ./adaptixserver -profile profile.yaml十、客户端编译(Windows)
客户端必须在 Windows 物理机上编译,生成图形化操作端AdaptixClient.exe。
一、安装 Qt
- 下载 Qt Online Installer for Windows (x64)
官网:Get and Install Qt with Qt Online Installer | Qt 6.12 - 打开 CMD,进入安装器所在目录,用国内镜像启动,避免下载卡顿:
qt-online-installer-windows-x64-4.8.1.exe --mirror https://mirrors.nju.edu.cn/qtproject- 登录 Qt 账号,接受开源许可,安装路径不要有中文/空格,勾选自定义开发。
- 选择组件(关键步骤)—— 按以下勾选,其他一律不勾:
- 点击“下一步”开始安装(约 20-40 分钟)。
二、编译 AdaptixClient
- 打开Qt Creator。
- 菜单栏
文件→打开文件或项目,直接把服务端的这份文件夹拷贝过来就行了。
- 在拷贝过来的客服端,选择
AdaptixC2\AdaptixClient\CMakeLists.txt。 - 在配置页面选择Release,点击
Configure Project。
- 点击左下角锤子图标开始构建。
- 等待编译完成。
- 编译产物路径:
AdaptixC2\AdaptixClient\build\...\AdaptixClient.exe。
三、补齐 DLL(必需)
编译出来的 exe 单独复制到一个新文件夹(如D:\AdaptixClient\),然后执行:
D:\Qt\6.8.3\mingw_64\bin\windeployqt.exe AdaptixClient.exe路径中的6.8.3需替换为你实际安装的 Qt 版本号。
执行后会自动把所需的 Qt DLL 拷贝到同目录,双击 exe 即可运行。
四、连接服务端
- 确保服务端已启动(
./adaptixserver -profile profile.yaml)且安全组放行4321端口。 - 打开
AdaptixClient.exe,填写:
- Host:服务器公网 IP(如
47.76.108.60) - Port:
4321 - Password:
profile.yaml中的password(默认pass)
- Host:服务器公网 IP(如
- 点击耳机图标连接,成功后即可创建 Listener、生成 Payload 并测试上线。
五、常见问题
问题 | 原因 | 解决 |
编译报错找不到 Qt 模块 | 未勾选 WebSockets / Declarative / SVG | 用 |
exe 双击无反应 | 缺少 DLL | 执行 |
连接超时 | 安全组未放行 4321 | 阿里云控制台添加入方向规则 |
编译卡住 | 内存不足 | 关闭其他程序,或给 Windows 加虚拟内存 |
再次声明:“本文仅供本人自建隔离靶场与授权安全测试学习使用,严禁用于任何未授权或非法用途。”