写点什么

Adaptix C2:跨平台渗透测试与对抗仿真框架

作者:qife122
  • 2025-09-23
    中国香港
  • 本文字数:2726 字

    阅读完需:约 9 分钟

项目描述

Adaptix C2 是一个专业的后渗透测试和对抗仿真框架,采用服务器/客户端架构设计。服务端使用 Golang 开发,客户端采用 C++ QT 框架实现跨平台支持。该框架提供完整的加密通信、多用户协作、图形化操作界面,支持 Windows、Linux 和 MacOS 系统的代理程序。

功能特性

  • 跨平台 GUI 客户端 - 基于 QT6 开发,支持 Linux、Windows 和 MacOS 操作系统

  • 服务器/客户端架构 - 支持多用户协作操作,实现团队协同渗透测试

  • 全加密通信 - 所有通信内容均经过加密处理,确保数据传输安全

  • 插件化架构 - 监听器和代理程序均采用插件化设计,支持功能扩展

  • 任务与作业管理 - 完整的任务调度和作业存储系统

  • 凭证管理器 - 集中管理渗透测试过程中获取的各种凭证信息

  • 目标管理器 - 系统化管理和跟踪渗透测试目标

  • 文件与进程浏览器 - 远程文件系统和进程管理功能

  • 代理网络拓扑 - 图形化显示代理连接关系和会话链路

  • Socks 代理支持 - 支持 Socks4、Socks5 和 Socks5 认证代理

  • 端口转发 - 本地和反向端口转发功能

  • BOF 支持 - Beacon 对象文件支持

  • 健康检查 - 代理程序健康状态监控

  • 远程终端 - 完整的远程命令行交互功能

  • AxScript 引擎 - 内置脚本引擎支持自动化任务

安装指南

服务端安装(Linux)

sudo apt updatesudo apt install mingw-w64 make -ywget https://go.dev/dl/go1.24.4.linux-amd64.tar.gz -O /tmp/go1.24.4.linux-amd64.tar.gzsudo rm -rf /usr/local/go /usr/local/bin/gosudo tar -C /usr/local -xzf /tmp/go1.24.4.linux-amd64.tar.gzsudo ln -s /usr/local/go/bin/go /usr/local/bin/go
# Windows 7支持git clone https://github.com/Adaptix-Framework/go-win7 /tmp/go-win7sudo 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
复制代码

使用说明

基本操作流程

  1. 项目创建与连接


// 创建认证配置文件AuthProfile* profile = MainAdaptix::Login();// 启动主界面GlobalClient->Start();
复制代码


  1. 监听器管理


// 创建HTTP/S Beacon监听器bool success = HttpReqListenerStart("http-listener", "http", configData, profile, &message, &ok);
复制代码


  1. 代理生成与管理


// 生成新代理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 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife122

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Adaptix C2:跨平台渗透测试与对抗仿真框架_网络安全_qife122_InfoQ写作社区