Download OpenAPI specification:
Get all available unit attacks
:return: the list of unit attacks
[- {
- "name": "string",
- "worker_id": "string",
- "title": "",
- "title_fr": "",
- "description": "string",
- "description_fr": "string",
- "links": [ ],
- "version": "string",
- "side_effects": [ ],
- "repeatable": true,
- "topics": [ ],
- "attack_mode": "DIRECT",
- "cve": [ ],
- "mitre_data": {
- "technique": {
- "id": "string",
- "name": "string"
}, - "subtechnique": {
- "id": "string",
- "name": "string"
}, - "tactics": [
- {
- "id": "string",
- "name": "string"
}
], - "implementation": {
- "id": "string"
}
}, - "options": [ ],
- "scenario_profiles": [ ],
- "timestamps": {
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "duration": 0
}, - "creation_date": "2019-08-24T14:15:22Z",
- "last_update": "2019-08-24T14:15:22Z"
}
]
Get a specific unit attack
:param attack_name: the name of the unit_attack :return: the unit attack
attack_name required | string (Attack Name) |
{- "name": "string",
- "worker_id": "string",
- "title": "",
- "title_fr": "",
- "description": "string",
- "description_fr": "string",
- "links": [ ],
- "version": "string",
- "side_effects": [ ],
- "repeatable": true,
- "topics": [ ],
- "attack_mode": "DIRECT",
- "cve": [ ],
- "mitre_data": {
- "technique": {
- "id": "string",
- "name": "string"
}, - "subtechnique": {
- "id": "string",
- "name": "string"
}, - "tactics": [
- {
- "id": "string",
- "name": "string"
}
], - "implementation": {
- "id": "string"
}
}, - "options": [ ],
- "scenario_profiles": [ ],
- "timestamps": {
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "duration": 0
}, - "creation_date": "2019-08-24T14:15:22Z",
- "last_update": "2019-08-24T14:15:22Z"
}
Create a lab associated with a given unit attack, in a CREATED state, so that it can later be run.
:return: a lab uuid
group_name required | string (Group Name) |
group_id required | string (Group Id) |
required | object (LabConfig) |
{- "lab_config": {
- "config_name": "default",
- "content_type": "KILLCHAIN",
- "content_name": "string",
- "scenario_profile": "string",
- "random_waiting_minutes": [
- 0,
- 0
], - "scenario_execution_mode": "automatic",
- "step_waiting_list": [ ],
- "max_duration": 3300,
- "net_capture": false,
- "forensic_artifacts": false,
- "create_dataset": false,
- "log_collectors": [ ],
- "public_access": {
- "available": false,
- "access_token": "string",
- "refresh_token": "string",
- "base_url": "string"
}, - "internet_connectivity": false,
- "user_activity_background": false,
- "compromission_overload": {
- "auto_compromission": true,
- "target_name": "string",
- "beacon": "exe_reverse_api",
- "vector": "simple",
- "infras": "legacy",
- "communication_protocol": "http",
- "privilege_level": 0
}
}
}
"string"
Create a lab associated with a given unit attack, and run it.
:return: a lab uuid
group_name required | string (Group Name) |
group_id required | string (Group Id) |
required | object (LabConfig) |
{- "lab_config": {
- "config_name": "default",
- "content_type": "KILLCHAIN",
- "content_name": "string",
- "scenario_profile": "string",
- "random_waiting_minutes": [
- 0,
- 0
], - "scenario_execution_mode": "automatic",
- "step_waiting_list": [ ],
- "max_duration": 3300,
- "net_capture": false,
- "forensic_artifacts": false,
- "create_dataset": false,
- "log_collectors": [ ],
- "public_access": {
- "available": false,
- "access_token": "string",
- "refresh_token": "string",
- "base_url": "string"
}, - "internet_connectivity": false,
- "user_activity_background": false,
- "compromission_overload": {
- "auto_compromission": true,
- "target_name": "string",
- "beacon": "exe_reverse_api",
- "vector": "simple",
- "infras": "legacy",
- "communication_protocol": "http",
- "privilege_level": 0
}
}
}
"string"
Get all available scenarios
:return: the list of scenarios
[- {
- "name": "default scenario name",
- "keywords": [ ],
- "description": "",
- "description_fr": "",
- "long_description": [ ],
- "long_description_fr": [ ],
- "unit_attacks": [ ],
- "attacks": [ ],
- "mitre_tags": [ ],
- "steps": {
- "skip_deploy": false,
- "skip_all_preparations": false,
- "skip_provisioning_os_set_time": false,
- "skip_provisioning_os_set_hostname": false,
- "skip_provisioning_attack": false,
- "skip_provisioning_os_monitoring": false,
- "skip_user_activity": false,
- "skip_compromise": false,
- "skip_attack": false,
- "skip_create_dataset": false
}, - "timestamps": {
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "duration": 0
}, - "scenario_profiles": [ ],
- "creation_date": "2019-08-24T14:15:22Z",
- "last_update": "2019-08-24T14:15:22Z"
}
]
Get a specific scenario
:param scenario_name: the name of the scenario :return: the scenario
scenario_name required | string (Scenario Name) |
{- "name": "default scenario name",
- "keywords": [ ],
- "description": "",
- "description_fr": "",
- "long_description": [ ],
- "long_description_fr": [ ],
- "unit_attacks": [ ],
- "attacks": [ ],
- "mitre_tags": [ ],
- "steps": {
- "skip_deploy": false,
- "skip_all_preparations": false,
- "skip_provisioning_os_set_time": false,
- "skip_provisioning_os_set_hostname": false,
- "skip_provisioning_attack": false,
- "skip_provisioning_os_monitoring": false,
- "skip_user_activity": false,
- "skip_compromise": false,
- "skip_attack": false,
- "skip_create_dataset": false
}, - "timestamps": {
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "duration": 0
}, - "scenario_profiles": [ ],
- "creation_date": "2019-08-24T14:15:22Z",
- "last_update": "2019-08-24T14:15:22Z"
}
Create a lab associated with a given scenario, in a CREATED state, so that it can later be run.
:return: a lab uuid
group_name required | string (Group Name) |
group_id required | string (Group Id) |
required | object (LabConfig) |
{- "lab_config": {
- "config_name": "default",
- "content_type": "KILLCHAIN",
- "content_name": "string",
- "scenario_profile": "string",
- "random_waiting_minutes": [
- 0,
- 0
], - "scenario_execution_mode": "automatic",
- "step_waiting_list": [ ],
- "max_duration": 3300,
- "net_capture": false,
- "forensic_artifacts": false,
- "create_dataset": false,
- "log_collectors": [ ],
- "public_access": {
- "available": false,
- "access_token": "string",
- "refresh_token": "string",
- "base_url": "string"
}, - "internet_connectivity": false,
- "user_activity_background": false,
- "compromission_overload": {
- "auto_compromission": true,
- "target_name": "string",
- "beacon": "exe_reverse_api",
- "vector": "simple",
- "infras": "legacy",
- "communication_protocol": "http",
- "privilege_level": 0
}
}
}
"string"
Create a lab associated with a given scenario, and run it.
:return: a lab uuid
group_name required | string (Group Name) |
group_id required | string (Group Id) |
required | object (LabConfig) |
{- "lab_config": {
- "config_name": "default",
- "content_type": "KILLCHAIN",
- "content_name": "string",
- "scenario_profile": "string",
- "random_waiting_minutes": [
- 0,
- 0
], - "scenario_execution_mode": "automatic",
- "step_waiting_list": [ ],
- "max_duration": 3300,
- "net_capture": false,
- "forensic_artifacts": false,
- "create_dataset": false,
- "log_collectors": [ ],
- "public_access": {
- "available": false,
- "access_token": "string",
- "refresh_token": "string",
- "base_url": "string"
}, - "internet_connectivity": false,
- "user_activity_background": false,
- "compromission_overload": {
- "auto_compromission": true,
- "target_name": "string",
- "beacon": "exe_reverse_api",
- "vector": "simple",
- "infras": "legacy",
- "communication_protocol": "http",
- "privilege_level": 0
}
}
}
"string"
Get all available topologies
:return: the list of topologies
[- {
- "name": "string",
- "nodes": [
- {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false,
- "basebox_id": "string",
- "basebox_vagrant": "string",
- "memory_size": 1024,
- "nb_proc": 1,
- "roles": [
- "client"
]
}
], - "links": [
- {
- "switch": {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false
}, - "node": {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false
}, - "params": {
- "ip": "string",
- "mac": "string",
- "dhcp": true,
- "dhcp_nameserver": "string",
- "dhcp_lease": 0,
- "dhcp_router": "string"
}
}
]
}
]
Get a specific topology.
:param topology_name: the name of the topology :return: a topology
topology_name required | string (Topology Name) |
{- "name": "string",
- "nodes": [
- {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false,
- "basebox_id": "string",
- "basebox_vagrant": "string",
- "memory_size": 1024,
- "nb_proc": 1,
- "roles": [
- "client"
]
}
], - "links": [
- {
- "switch": {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false
}, - "node": {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false
}, - "params": {
- "ip": "string",
- "mac": "string",
- "dhcp": true,
- "dhcp_nameserver": "string",
- "dhcp_lease": 0,
- "dhcp_router": "string"
}
}
]
}
Create a lab associated with a given topology, in a CREATED state, so that it can later be run.
:return: a lab uuid
group_name required | string (Group Name) |
group_id required | string (Group Id) |
required | object (LabConfig) |
{- "lab_config": {
- "config_name": "default",
- "content_type": "KILLCHAIN",
- "content_name": "string",
- "scenario_profile": "string",
- "random_waiting_minutes": [
- 0,
- 0
], - "scenario_execution_mode": "automatic",
- "step_waiting_list": [ ],
- "max_duration": 3300,
- "net_capture": false,
- "forensic_artifacts": false,
- "create_dataset": false,
- "log_collectors": [ ],
- "public_access": {
- "available": false,
- "access_token": "string",
- "refresh_token": "string",
- "base_url": "string"
}, - "internet_connectivity": false,
- "user_activity_background": false,
- "compromission_overload": {
- "auto_compromission": true,
- "target_name": "string",
- "beacon": "exe_reverse_api",
- "vector": "simple",
- "infras": "legacy",
- "communication_protocol": "http",
- "privilege_level": 0
}
}
}
"string"
Create a lab associated with a given topology, and run it.
:return: a lab uuid
group_name required | string (Group Name) |
group_id required | string (Group Id) |
required | object (LabConfig) |
{- "lab_config": {
- "config_name": "default",
- "content_type": "KILLCHAIN",
- "content_name": "string",
- "scenario_profile": "string",
- "random_waiting_minutes": [
- 0,
- 0
], - "scenario_execution_mode": "automatic",
- "step_waiting_list": [ ],
- "max_duration": 3300,
- "net_capture": false,
- "forensic_artifacts": false,
- "create_dataset": false,
- "log_collectors": [ ],
- "public_access": {
- "available": false,
- "access_token": "string",
- "refresh_token": "string",
- "base_url": "string"
}, - "internet_connectivity": false,
- "user_activity_background": false,
- "compromission_overload": {
- "auto_compromission": true,
- "target_name": "string",
- "beacon": "exe_reverse_api",
- "vector": "simple",
- "infras": "legacy",
- "communication_protocol": "http",
- "privilege_level": 0
}
}
}
"string"
Get all available baseboxes
:return: the list of baseboxes
[- {
- "id": "string",
- "description": "string",
- "operating_system": "string",
- "system_type": "string",
- "language": "string",
- "installation_date": "2019-08-24T14:15:22Z",
- "role": "client",
- "username": "string",
- "password": "string",
- "admin_username": "string",
- "admin_password": "string",
- "nb_proc": 1,
- "memory_size": 256,
- "cpes": {
- "cpeItems": [
- {
- "cpe_version": "string",
- "part": "string",
- "vendor": "string",
- "product": "string",
- "version": "string",
- "update": "string",
- "edition": "string",
- "language": "string",
- "sw_edition": "string",
- "target_sw": "string",
- "target_hw": "string",
- "other": "string"
}
]
}, - "sha256sum": "string",
- "changelog": [
- {
- "property1": "string",
- "property2": "string"
}
], - "storage_bus": "string"
}
]
Get a specific basebox.
:param basebox_id: the ID of the basebox :return: the basebox
basebox_id required | string (Basebox Id) |
{- "id": "string",
- "description": "string",
- "operating_system": "string",
- "system_type": "string",
- "language": "string",
- "installation_date": "2019-08-24T14:15:22Z",
- "role": "client",
- "username": "string",
- "password": "string",
- "admin_username": "string",
- "admin_password": "string",
- "nb_proc": 1,
- "memory_size": 256,
- "cpes": {
- "cpeItems": [
- {
- "cpe_version": "string",
- "part": "string",
- "vendor": "string",
- "product": "string",
- "version": "string",
- "update": "string",
- "edition": "string",
- "language": "string",
- "sw_edition": "string",
- "target_sw": "string",
- "target_hw": "string",
- "other": "string"
}
]
}, - "sha256sum": "string",
- "changelog": [
- {
- "property1": "string",
- "property2": "string"
}
], - "storage_bus": "string"
}
Create a lab associated with a given basebox, in a CREATED state, so that it can later be run.
:return: a lab uuid
group_name required | string (Group Name) |
group_id required | string (Group Id) |
required | object (LabConfig) |
{- "lab_config": {
- "config_name": "default",
- "content_type": "KILLCHAIN",
- "content_name": "string",
- "scenario_profile": "string",
- "random_waiting_minutes": [
- 0,
- 0
], - "scenario_execution_mode": "automatic",
- "step_waiting_list": [ ],
- "max_duration": 3300,
- "net_capture": false,
- "forensic_artifacts": false,
- "create_dataset": false,
- "log_collectors": [ ],
- "public_access": {
- "available": false,
- "access_token": "string",
- "refresh_token": "string",
- "base_url": "string"
}, - "internet_connectivity": false,
- "user_activity_background": false,
- "compromission_overload": {
- "auto_compromission": true,
- "target_name": "string",
- "beacon": "exe_reverse_api",
- "vector": "simple",
- "infras": "legacy",
- "communication_protocol": "http",
- "privilege_level": 0
}
}
}
"string"
Create a lab associated with a given basebox, and run it.
:return: a lab uuid
group_name required | string (Group Name) |
group_id required | string (Group Id) |
required | object (LabConfig) |
{- "lab_config": {
- "config_name": "default",
- "content_type": "KILLCHAIN",
- "content_name": "string",
- "scenario_profile": "string",
- "random_waiting_minutes": [
- 0,
- 0
], - "scenario_execution_mode": "automatic",
- "step_waiting_list": [ ],
- "max_duration": 3300,
- "net_capture": false,
- "forensic_artifacts": false,
- "create_dataset": false,
- "log_collectors": [ ],
- "public_access": {
- "available": false,
- "access_token": "string",
- "refresh_token": "string",
- "base_url": "string"
}, - "internet_connectivity": false,
- "user_activity_background": false,
- "compromission_overload": {
- "auto_compromission": true,
- "target_name": "string",
- "beacon": "exe_reverse_api",
- "vector": "simple",
- "infras": "legacy",
- "communication_protocol": "http",
- "privilege_level": 0
}
}
}
"string"
Get lab list.
:return: the lab list
all_labs | boolean (All Labs) Default: false |
Owner (string) or Owner (null) (Owner) | |
Type (string) or Type (null) (Type) | |
Status (string) or Status (null) (Status) | |
page | integer (Page) > 0 Default: 1 |
limit | integer (Limit) ( 0 .. 100 ] Default: 10 |
Order By (string) or Order By (null) (Order By) |
{- "pagination": {
- "current_offset": 0,
- "records": 0,
- "total_records": 0
}, - "data": [ ]
}
Get lab status from its ID.
:param runner_id: the lab ID
:return: the lab status
runner_id required | string (Runner Id) |
{- "runner_id": "string",
- "status": "CREATED",
- "lab_creation_timestamp": 0,
- "lab_start_timestamp": 0,
- "lab_content_end_timestamp": 0,
- "lab_end_timestamp": 0,
- "content_type": "KILLCHAIN",
- "name": "string",
- "created_by": "string",
- "group_name": "string",
- "group_id": "string",
- "worker_id": "string"
}
Resume the current paused status if lab is in pause, based on the lab ID.
:param runner_id: the runner ID
:return: the runner paused status
runner_id required | string (Runner Id) |
{- "step": "string",
- "is_before_step": true
}
Get current scenario topology from its lab ID.
:param lab_id: the lab ID
:return: the topology
runner_id required | string (Runner Id) |
{- "name": "string",
- "nodes": [
- {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false,
- "basebox_id": "string",
- "basebox_vagrant": "string",
- "memory_size": 1024,
- "nb_proc": 1,
- "roles": [
- "client"
]
}
], - "links": [
- {
- "switch": {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false
}, - "node": {
- "type": "virtual_machine",
- "name": "string",
- "active": true,
- "hidden": false
}, - "params": {
- "ip": "string",
- "mac": "string",
- "dhcp": true,
- "dhcp_nameserver": "string",
- "dhcp_lease": 0,
- "dhcp_router": "string"
}
}
]
}
Get all available log collectors.
:return: the list of log collectors
[- {
- "collector_name": "string",
- "displayed_name": "string",
- "collector_type": "agent",
- "description": "string",
- "documentation_link": "string",
- "status": "development",
- "available_locations": [
- "node_name"
], - "available_output_collectors": [
- "string"
], - "mandatory_inputs": [
- "string"
], - "cpe_os_constraints": {
- "cpeItems": [
- {
- "cpe_version": "string",
- "part": "string",
- "vendor": "string",
- "product": "string",
- "version": "string",
- "update": "string",
- "edition": "string",
- "language": "string",
- "sw_edition": "string",
- "target_sw": "string",
- "target_hw": "string",
- "other": "string"
}
]
}, - "user_config": [
- {
- "name": "string",
- "description": "string",
- "type": "string",
- "constraints": {
- "min_value": 0,
- "max_value": 0
}, - "default": "string",
- "required": true
}
], - "user_config_expert_mode": [
- {
- "name": "string",
- "description": "string",
- "type": "string",
- "constraints": {
- "min_value": 0,
- "max_value": 0
}, - "default": "string",
- "required": true
}
]
}
]