Extenders
Guide for developing extenders for AdaptixC2: Listener, Agent, and Service Extender.

┌─────────────────────────────────────────────────────────────────────────────────┐
│ ADAPTIX SERVER │
├─────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────────────────────────────────────────────┐ │
│ │ EXTENDER MANAGER │ │
│ ├───────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ LoadPlugins() ───┬──> LoadPluginListener() ──> PluginListener Interface │ │
│ │ ├──> LoadPluginAgent() ──> PluginAgent Interface │ │
│ │ └──> LoadPluginService() ──> PluginService Interface │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ config │ │ plugin │ │ .axs │ │ │
│ │ │ .yaml │ │ .so │ │ UI file │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │ │
│ │ V │ │
│ │ InitPlugin(ts, moduleDir, ...) │ │
│ │ │ │ │
│ │ ┌────────────────────────────┼───────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────┐ ┌────────────────┐ ┌───────────────────┐ │ │ │
│ │ │ │Listener Extender│ │ Agent Extender │ │ Service Extender │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ PluginListener │ │ PluginAgent │ │ PluginService │ │ │ │
│ │ │ └─────────────────┘ └────────────────┘ └───────────────────┘ │ │ │
│ │ └────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────────────────┐ │
│ │ EVENT MANAGER │ │
│ ├───────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Pre Hooks │──────>│ Action │──────>│ Post Hooks │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ TsEventHookRegister(event, phase, priority, handler) │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘Plugin Types
Type
Description
Interface
Config Type
Listener
Accepts connections from agents
PluginListener
listener
Agent
Agent logic: generation, parsing, commands
PluginAgent
agent
Service
Service plugins: notifications, integrations
PluginService
service
Last updated