Adaptix Framework
AdaptixC2 GitHubExtension-Kit
  • Welcome
  • Adaptix C2
    • Getting Starting
      • Installation
      • Starting
    • User Interface
    • Listeners and Agents
    • Agent Browsers
      • File Browser
      • Process Browser
    • Data management
      • Tasks storage
      • Downloads Storage
      • Screenshots Storage
    • BOF and Extensions
    • Pivoting
    • Linking Agents
  • Extenders
    • Listeners
      • Beacon HTTP
      • Beacon SMB
      • Beacon TCP
      • Gopher TCP
    • Agents
      • Beacon
        • Beacon BOFs
      • Gopher
  • Development
    • Plugins
    • Listener plugin
    • Agent plugin
  • AX Support Soft
    • AxChecker
    • CmdChecker
  • Changelog
    • v0.1 -> v0.2
    • v0.2 -> v0.3
    • v0.3 -> v0.4
Powered by GitBook
On this page
  • What is it?
  • Format
  • Types of elements
  • 1. hlayout
  • 2. vlayout
  • 3. glayout
  • 4. hline / vline
  • 5. hspacer/vspacer
  • 6. label
  • 7. input
  • 8. combo
  • 9. spinbox
  • 10. date_input
  • 11. time_input
  • 12. textedit
  • 13. checkbox
  • 14. file_selector
  • 15. tab
  1. AX Support Soft

AxChecker

Last updated 18 days ago

What is it?

The of AxChecker is available on GitHub. AxChecker is a helper application for checking json files used in WidgetBuilder to create forms in listener and agent plugins in Adaptix. AxChecker parses a JSON file, creates a dialog box based on it, and outputs data that will be sent to the Adaptix server.

The image of the near window is built according to the configuration file _ui_agent.json. In the main window, AXChecker displays the data entered in the dialog box.

_ui_agent.json
{
  "layout": "glayout",
  "elements": [
    {
      "type": "label",
      "text": "OS:",
      "position": [0, 0, 1, 1]
    },
    {
      "type": "combo",
      "items": ["windows"],
      "id": "os",
      "position": [0, 1, 1, 2]
    },
    {
      "type": "label",
      "text": "Arch:",
      "position": [1, 0, 1, 1]
    },
    {
      "type": "combo",
      "items": ["x64", "x86"],
      "id": "arch",
      "position": [1, 1, 1, 2]
    },
    {
      "type": "label",
      "text": "Format:",
      "position": [2, 0, 1, 1]
    },
    {
      "type": "combo",
      "items": ["Exe", "Service Exe", "DLL", "Shellcode" ],
      "id": "format",
      "position": [2, 1, 1, 2]
    },
    {
      "type": "hline",
      "position": [3, 0, 1, 3]
    },
    {
      "type": "label",
      "text": "Sleep (Jitter %):",
      "position": [4, 0, 1, 1]
    },
    {
      "type": "input",
      "id": "sleep",
      "placeholder": "1h 2m 5s",
      "text": "4s",
      "position": [4, 1, 1, 1]
    },
    {
      "type": "spinbox",
      "id": "jitter",
      "min": 0,
      "max": 100,
      "position": [4, 2, 1, 1]
    },
    {
      "type": "label",
      "text": "Service Name:",
      "position": [5, 0, 1, 1]
    },
    {
      "type": "input",
      "id": "svcname",
      "text": "AgentService",
      "position": [5, 1, 1, 2]
    }
  ]
}

Format

The JSON file must contain this structure, which includes the required layout and elements fields.

{
  "layout": "vlayout",
  "elements": [
    {
      "type": <TYPE>,
      ...
    },
    {
      "type": <TYPE>,
      ...
    },
    ...
  ]
}

All input elements have an id property. This field contains the name of the parameter in which the entered data will be sent to the server in JSON format.

Example
{
  "layout": "glayout",
  "elements": [
    {
      "type": "label",
      ": "Text"
    },
    {
      "type": "input",
      "id": "message",
    }
  ]
}

For example, for this JSON file, the following request will be generated and sent to the server:

{
    "message: "<INPUT HERE>"
}

Types of elements

1. hlayout

A markup element that arranges widgets horizontally. Transforms into QHBoxLayout. Has the following properties:

  • elements - JSON array of elements.

Example
{
    "type": "hlayout",
    "elements": [
        {
            ...
        },
        {
             ...   
        },
        ...
    ]
}

2. vlayout

A markup element that arranges widgets vertically. Transforms into QVBoxLayout. Has the following properties:

  • elements - JSON array of elements.

Example
{
    "type": "vlayout",
    "elements": [
        {
            ...
        },
        {
             ...   
        },
        ...
    ]
}

3. glayout

A markup element that arranges widgets in a grid. Transforms into QGridLayout. Has the following properties:

  • elements - JSON array of elements.

Each element in the elements array must have a position property. This property is an array of 4 integers: [fromRow, fromColumn, rowSpan, columnSpan]. The element starts at FromRow, FromColumn and spans Rowspan and Columnspan.

Example
{
  "type": "glayout",
  "elements": [
    {
      "type": "label",
      "text": "TEXT:",
      "position": [0, 0, 1, 1]
    },
    {
      "type": "input",
      "id": "name_input",
      "position": [0, 1, 1, 1]
    },
    {
      "type": "combo",
      "items": ["Send1", "Send2", "Send3"],
      "id": "send_combo",
      "position": [1, 0, 1, 2]
    }
  ]
}

4. hline / vline

A markup element that draws a horizontal (vertical) line.

Example
{
    "type": "hline"
}

5. hspacer/vspacer

The Spacer element provides blank space in a layout.

Example
{
    "type": "vspacer",
    "position": [ 0, 0, 1, 1 ]
},

6. label

The element provides text display. Transforms into QLabel. Has the following properties:

  • text

Example
{
    "type": "label",
    "text": "Text text text"
}

7. input

The element is a one-line text editor.Transforms into QLineEdit. Has the following properties:

  • id

  • text

  • placeholder

Example
{
    "type": "input",
    "id": "name",
    "placeholder": "Input username"
}

8. combo

The element combines a button with a dropdown list. Transforms into QComboBox. Our following properties:

  • id

  • items - JSON array of strings.

  • text - сurrent text value.

Example
{
    "type": "combo",
    "id": "send_combo"
    "items": ["Send1", "Send2", "Send3"],
    "text": "Send2"
}

9. spinbox

The element represents an integer spin box. Transforms into QSpinBox. Our following properties:

  • id

  • min - minimum value of the spin box.

  • max - maximum value of the spin box.

  • value - сurrent value.

Example
{
    "type": "spinbox",
    "id": "percent",
    "min": 0,
    "max": 100,
    "value": "40
}

10. date_input

The date_input element provides a pop-up calendar for editing dates. Our following properties:

  • id

  • format - date format (for example dd.MM.yyyy)

Example
    {
      "type": "date_input",
      "id": "date",
      "format": "dd.MM.yyyy",
      "position": [3, 1, 1, 1]
    },

11. time_input

The time_input element provides a spin for editing time. It has the following properties:

  • id

  • format - time format (for example HH:mm:SS)

Example
   {
      "type": "time_input",
      "id": "time",
      "format": "HH:mm",
      "position": [3, 2, 1, 1]
    },

12. textedit

The element is used to edit and display plain text. Transforms into QPlainTextEdit. Our following properties:

  • id

  • text

  • placeholder

Example
{
    "type": "textedit",
    "id": "servers",
    "placeholder": "server1.com\nserver2.com",
}

13. checkbox

The element provides a checkbox with a text label. Transforms into QCheckBox. Our following properties:

  • id

  • text

  • checked - a boolean value that indicates whether the checkbox is checked or not.

Example
{
    "type": "checkbox",
    "text": "Use SSL (HTTPS)",
    "id": "ssl",
    "position": [8, 0, 1, 2]
}

14. file_selector

The element provides an input field with a button to open the file launch window. After selecting a file, the path to it will be written to the input field. It has the following properties:

  • id

  • placeholder

Example
{
    "type": "file_selector",
    "id": "file",
    "placeholder": "select file",
}

When compiling data, the file contents are encoded in base64.

15. tab

The element provides a stack of tabbed widgets. Transforms into QTabWidget. Our following properties:

  • tabs - JSON array of tab objects.

Each tab must have a title and loyout property, as well as an array of elements.

Example

{
  "type": "tab",
  "tabs": [
    {
      "title": "Tab 1",
      "layout": "glayout",
      "elements": [
        {
          "type": "label",
          "text": "Label tab 1",
          "position": [0, 0, 1, 1]
        }
      ]
    },
    {
      "title": "Tab 2",
      "layout": "glayout",
      "elements": [
        {
          "type": "label",
          "text": "Label tab 2",
          "position": [0, 0, 1, 1]
        }
      ]
    },
    {
      "title": "Tab 3",
      "layout": "glayout",
      "elements": [
        {
          "type": "label",
          "text": "Label tab 3",
          "position": [0, 0, 1, 1]
        }
      ]
    }
  ],
  "position": [0, 0, 1, 1]
}


source code