
Adaptix C2是一个专业的后渗透测试和对抗仿真框架,采用服务器/客户端架构设计。服务端使用Golang开发,客户端采用C++ QT框架实现跨平台支持。该框架提供完整的加密通信、多用户协作、图形化操作界面,支持Windows、Linux和MacOS系统的代理程序。
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/sudo apt install gcc g++ build-essential make cmake libssl-dev \
qt6-base-dev qt6-websockets-dev qt6-declarative-dev -ybrew install make cmake openssl qt@6框架提供完整的图形化操作界面,包括:
// 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);
};// 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系统功能,包括代理管理、命令控制、通信加密、图形界面等核心组件,为渗透测试人员提供专业级的工具支持。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。