From ca1bc06c5564c5fb33a974746bb570e718c8eb8f Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Mon, 19 Sep 2022 07:45:30 -0400 Subject: [PATCH] Agent: Add IIslandAPIClient --- .../infection_monkey/island_api_client/__init__.py | 1 + .../island_api_client/i_island_api_client.py | 12 ++++++++++++ vulture_allowlist.py | 4 +++- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 monkey/infection_monkey/island_api_client/__init__.py create mode 100644 monkey/infection_monkey/island_api_client/i_island_api_client.py diff --git a/monkey/infection_monkey/island_api_client/__init__.py b/monkey/infection_monkey/island_api_client/__init__.py new file mode 100644 index 000000000..5f8a1c5d5 --- /dev/null +++ b/monkey/infection_monkey/island_api_client/__init__.py @@ -0,0 +1 @@ +from .i_island_api_client import IIslandAPIClient diff --git a/monkey/infection_monkey/island_api_client/i_island_api_client.py b/monkey/infection_monkey/island_api_client/i_island_api_client.py new file mode 100644 index 000000000..ef45a9fe9 --- /dev/null +++ b/monkey/infection_monkey/island_api_client/i_island_api_client.py @@ -0,0 +1,12 @@ +from abc import ABC, abstractmethod + + +class IIslandAPIClient(ABC): + @abstractmethod + def __init__(self, island_server: str): + """ + Construct and API client and connect it to the island + + :param island_server: String representing the island ip address and port + :raises IslandAPIError: If connection was unsuccessful + """ diff --git a/vulture_allowlist.py b/vulture_allowlist.py index 6f8d5876a..b3bbac8e6 100644 --- a/vulture_allowlist.py +++ b/vulture_allowlist.py @@ -9,6 +9,7 @@ from common.agent_configuration.agent_sub_configurations import ( ) from common.credentials import Credentials, LMHash, NTHash from infection_monkey.exploit.log4shell_utils.ldap_server import LDAPServerFactory +from infection_monkey.island_api_client import IIslandAPIClient from infection_monkey.transport import IslandAPIClient, IslandAPIRequestFailedError from monkey_island.cc.event_queue import IslandEventTopic, PyPubSubIslandEventQueue from monkey_island.cc.models import Report @@ -331,5 +332,6 @@ IslandEventTopic.CLEAR_SIMULATION_DATA IslandEventTopic.RESET_AGENT_CONFIGURATION # TODO: Remove after #2292 is closed -IslandAPIClient +IIslandAPIClient +IslandApiClient IslandAPIRequestFailedError