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