项目描述
Adaptix C2是一个专业的后渗透测试和对抗仿真框架,采用服务器/客户端架构设计。服务端使用Golang开发,客户端采用C++ QT框架实现跨平台支持。该框架提供完整的加密通信、多用户协作、图形化操作界面,支持Windows、Linux和MacOS系统的代理程序。
功能特性
- 跨平台GUI客户端 - 基于QT6开发,支持Linux、Windows和MacOS操作系统
- 服务器/客户端架构 - 支持多用户协作操作,实现团队协同渗透测试
- 全加密通信 - 所有通信内容均经过加密处理,确保数据传输安全
- 插件化架构 - 监听器和代理程序均采用插件化设计,支持功能扩展
- 任务与作业管理 - 完整的任务调度和作业存储系统
- 凭证管理器 - 集中管理渗透测试过程中获取的各种凭证信息
- 目标管理器 - 系统化管理和跟踪渗透测试目标
- 文件与进程浏览器 - 远程文件系统和进程管理功能
- 代理网络拓扑 - 图形化显示代理连接关系和会话链路
- Socks代理支持 - 支持Socks4、Socks5和Socks5认证代理
- 端口转发 - 本地和反向端口转发功能
- BOF支持 - Beacon对象文件支持
- 健康检查 - 代理程序健康状态监控
- 远程终端 - 完整的远程命令行交互功能
- AxScript引擎 - 内置脚本引擎支持自动化任务
安装指南
服务端安装(Linux)
sudo apt update
sudo apt install mingw-w64 make -y
wget https://go.dev/dl/go1.24.4.linux-amd64.tar.gz -O /tmp/go1.24.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go /usr/local/bin/go
sudo tar -C /usr/local -xzf /tmp/go1.24.4.linux-amd64.tar.gz
sudo ln -s /usr/local/go/bin/go /usr/local/bin/go# Windows 7支持
git clone https://github.com/Adaptix-Framework/go-win7 /tmp/go-win7
sudo mv /tmp/go-win7 /usr/lib/
客户端安装(Linux)
sudo apt install gcc g++ build-essential make cmake libssl-dev \
qt6-base-dev qt6-websockets-dev qt6-declarative-dev -y
客户端安装(macOS)
brew install make cmake openssl qt@6
使用说明
基本操作流程
- 项目创建与连接
// 创建认证配置文件
AuthProfile* profile = MainAdaptix::Login();
// 启动主界面
GlobalClient->Start();
- 监听器管理
// 创建HTTP/S Beacon监听器
bool success = HttpReqListenerStart("http-listener", "http", configData, profile, &message, &ok);
- 代理生成与管理
// 生成新代理
bool success = HttpReqAgentGenerate(listenerName, listenerType, agentName, configData, profile, &message, &ok);// 发送命令到代理
bool success = HttpReqAgentCommand(jsonData, profile, &message, &ok);
图形界面操作
框架提供完整的图形化操作界面,包括:
- 会话管理表格视图
- 网络拓扑图形显示
- 任务执行监控
- 文件浏览器
- 进程管理器
- 远程终端模拟器
核心代码
主程序入口
// main.cpp - 应用程序主入口
#include <main.h>
#include <MainAdaptix.h>MainAdaptix* GlobalClient = nullptr;int main(int argc, char *argv[])
{QApplication a(argc, argv);a.setQuitOnLastWindowClosed(true);GlobalClient = new MainAdaptix();GlobalClient->Start();return a.exec();
}
代理管理核心类
// Agent.h - 代理对象管理
class Agent
{
public:AdaptixWidget* adaptixWidget = nullptr;AgentData data = {};// 代理状态管理void Update(QJsonObject jsonObjAgentData);void MarkItem(const QString &mark);void SetColor(const QString &color) const;// 任务管理QString TasksCancel(const QStringList &tasks) const;QString TasksDelete(const QStringList &tasks) const;// 网络拓扑关系void SetParent(const PivotData &pivotData);void AddChild(const PivotData &pivotData);
};
命令执行引擎
// Commander.h - 命令解析与执行
class Commander : public QObject
{QString agentType;QString listenerType;public:// 命令处理CommanderResult ProcessInput(QString agentId, QString cmdline);// 命令注册void AddRegCommands(const CommandsGroup &group);void AddAxCommands(const CommandsGroup &group);private:// 预处理钩子QString ProcessPreHook(QJSEngine *engine, const Command &command, const QString &agentId, const QString &cmdline, const QJsonObject &jsonObj, QStringList args);
};
WebSocket通信模块
// WebSocketWorker.h - 实时通信处理
class WebSocketWorker : public QThread
{AuthProfile* profile;QWebSocket* webSocket = nullptr;public:void run() override;signals:void connected();void received_data(QByteArray data);void websocket_closed();private slots:void is_connected();void is_binaryMessageReceived(const QByteArray &data);
};
脚本引擎集成
// AxScriptEngine.h - 脚本引擎支持
class AxScriptEngine : public QObject
{std::unique_ptr<QJSEngine> jsEngine;ScriptContext context;public:// 脚本执行管理bool execute(const QString &code);void registerEvent(const QString &type, const QJSValue &handler, QTimer* timer, const QSet<QString> &list_agents, const QSet<QString> &list_os, const QSet<QString> &list_listeners, const QString &id);// 菜单系统集成void registerMenu(const QString &type, AbstractAxMenuItem* menu, const QSet<QString> &list_agents, const QSet<QString> &list_os, const QSet<QString> &list_listeners);
};
终端模拟器实现
// QTermWidget.h - 完整终端模拟功能
class QTermWidget : public QWidget
{TerminalDisplay* m_terminalDisplay;Emulation* m_emulation;public:// 终端控制void sendText(const QString &text);void setTerminalFont(const QFont &font);void setColorScheme(const QString &name);// 会话管理void setHistorySize(int lines);void scrollToEnd();
};
该框架通过模块化设计实现了完整的C2系统功能,包括代理管理、命令控制、通信加密、图形界面等核心组件,为渗透测试人员提供专业级的工具支持。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码