app.api.v2.managers namespace

Submodules

app.api.v2.managers.ability_api_manager module

class app.api.v2.managers.ability_api_manager.AbilityApiManager(data_svc, file_svc)

Bases: BaseApiManager

async create_on_disk_object(data: dict, access: dict, ram_key: str, id_property: str, obj_class: type)
async remove_object_from_disk_by_id(identifier: str, ram_key: str)
async replace_on_disk_object(obj: Any, data: dict, ram_key: str, id_property: str)
async update_on_disk_object(obj: Any, data: dict, ram_key: str, id_property: str, obj_class: type)

app.api.v2.managers.adversary_api_manager module

class app.api.v2.managers.adversary_api_manager.AdversaryApiManager(data_svc, file_svc)

Bases: BaseApiManager

async verify_adversary(adversary: Adversary)

app.api.v2.managers.agent_api_manager module

class app.api.v2.managers.agent_api_manager.AgentApiManager(data_svc, file_svc)

Bases: BaseApiManager

async get_deploy_commands(ability_id: str = None)

app.api.v2.managers.base_api_manager module

class app.api.v2.managers.base_api_manager.BaseApiManager(data_svc, file_svc, logger=None)

Bases: BaseWorld

create_object_from_schema(schema: SchemaMeta, data: dict, access: Access)
async create_on_disk_object(data: dict, access: dict, ram_key: str, id_property: str, obj_class: type)
static dump_object_with_filters(obj: Any, include: List[str] = None, exclude: List[str] = None) dict
find_and_dump_objects(ram_key: str, search: dict = None, sort: str = None, include: List[str] = None, exclude: List[str] = None)
find_and_update_object(ram_key: str, data: dict, search: dict = None)
async find_and_update_on_disk_object(data: dict, search: dict, ram_key: str, id_property: str, obj_class: type)
find_object(ram_key: str, search: dict = None)
find_objects(ram_key: str, search: dict = None)

Find objects matching the given criteria

property log
async remove_object_from_disk_by_id(identifier: str, ram_key: str)
async remove_object_from_memory_by_id(identifier: str, ram_key: str, id_property: str)
replace_object(obj: Any, data: dict)
async replace_on_disk_object(obj: Any, data: dict, ram_key: str, id_property: str)
update_object(obj: Any, data: dict)
async update_on_disk_object(obj: Any, data: dict, ram_key: str, id_property: str, obj_class: type)

app.api.v2.managers.config_api_manager module

class app.api.v2.managers.config_api_manager.ConfigApiManager(data_svc, file_svc, config_interface=None)

Bases: BaseApiManager

get_filtered_config(name)

Return the configuration for the input name with sensitive fields removed.

async update_global_agent_config(sleep_min: int = None, sleep_max: int = None, watchdog: int = None, untrusted_timer: int = None, implant_name: str = None, bootstrap_abilities: List[str] = None, deadman_abilities=None)
update_main_config(prop, value)
exception app.api.v2.managers.config_api_manager.ConfigNotFound(config_name, message=None)

Bases: Exception

exception app.api.v2.managers.config_api_manager.ConfigUpdateNotAllowed(property, message=None)

Bases: Exception

app.api.v2.managers.config_api_manager.filter_keys(mapping, keys_to_remove)
app.api.v2.managers.config_api_manager.filter_sensitive_props(config_map)

Return a copy of config_map with top-level sensitive keys removed.

app.api.v2.managers.config_api_manager.is_sensitive_prop(prop)

Return True if the input prop is a sensitive configuration property.

app.api.v2.managers.contact_api_manager module

class app.api.v2.managers.contact_api_manager.ContactApiManager(data_svc, file_svc, contact_svc)

Bases: BaseApiManager

get_available_contact_reports()
get_contact_report(contact: str = None)

app.api.v2.managers.fact_api_manager module

class app.api.v2.managers.fact_api_manager.FactApiManager(data_svc, file_svc, knowledge_svc)

Bases: BaseApiManager

async static copy_object(obj)
async static extract_data(request: Request)
async verify_fact_integrity(data)
async verify_operation_state(new_fact)
async verify_relationship_integrity(data)

app.api.v2.managers.operation_api_manager module

class app.api.v2.managers.operation_api_manager.OperationApiManager(services)

Bases: BaseApiManager

build_ability(data: dict, executor: Executor)
build_executor(data: dict, agent: Agent)
async create_object_from_schema(schema: SchemaMeta, data: dict, access: Access, existing_operation: Operation = None)
async find_and_update_object(ram_key: str, data: dict, search: dict = None)
async get_agent(operation: Operation, data: dict)
get_agents(operation: dict)
async get_hosts(operation: dict)
async get_operation_event_logs(operation_id: str, access: dict, output: bool)
async get_operation_object(operation_id: str, access: dict)
async get_operation_report(operation_id: str, access: dict, output: bool)
async get_reachable_hosts(agent: dict = None, operation: dict = None)

NOTE: When agent is supplied, only hosts discovered by agent are retrieved.

async setup_operation(data: dict, access: Access)

Applies default settings to an operation if data is missing.

async update_object(obj: Any, data: dict)
async validate_operation_state(data: dict, existing: Operation = None)

app.api.v2.managers.schedule_api_manager module

class app.api.v2.managers.schedule_api_manager.ScheduleApiManager(services)

Bases: OperationApiManager

create_object_from_schema(schema: SchemaMeta, data: dict, access: Access)
find_and_update_object(ram_key: str, data: dict, search: dict = None)
update_object(obj: Any, data: dict)
async validate_and_setup_task(data: dict, access: Access)