Agent: Add relay to servers list for exploited hosts

This commit is contained in:
Kekoa Kaaikala 2022-09-08 20:42:19 +00:00 committed by Mike Salvatore
parent 20649b5e3c
commit 093e2c79dc
1 changed files with 5 additions and 4 deletions

View File

@ -40,7 +40,7 @@ from infection_monkey.master import AutomatedMaster
from infection_monkey.master.control_channel import ControlChannel from infection_monkey.master.control_channel import ControlChannel
from infection_monkey.model import VictimHostFactory from infection_monkey.model import VictimHostFactory
from infection_monkey.network.firewall import app as firewall from infection_monkey.network.firewall import app as firewall
from infection_monkey.network.info import get_free_tcp_port, get_network_interfaces from infection_monkey.network.info import get_free_tcp_port, get_network_interfaces, local_ips
from infection_monkey.network.relay import TCPRelay from infection_monkey.network.relay import TCPRelay
from infection_monkey.network.relay.utils import ( from infection_monkey.network.relay.utils import (
find_server, find_server,
@ -189,17 +189,18 @@ class InfectionMonkey:
self._cmd_island_port, self._cmd_island_port,
client_disconnect_timeout=config.keep_tunnel_open_time, client_disconnect_timeout=config.keep_tunnel_open_time,
) )
relay_servers = [f"{ip}:{relay_port}" for ip in local_ips()]
if not maximum_depth_reached(config.propagation.maximum_depth, self._current_depth): if not maximum_depth_reached(config.propagation.maximum_depth, self._current_depth):
self._relay.start() self._relay.start()
StateTelem(is_done=False, version=get_version()).send() StateTelem(is_done=False, version=get_version()).send()
self._build_master() self._build_master(relay_servers)
register_signal_handlers(self._master) register_signal_handlers(self._master)
def _build_master(self): def _build_master(self, relay_servers: List[str]):
local_network_interfaces = InfectionMonkey._get_local_network_interfaces() local_network_interfaces = InfectionMonkey._get_local_network_interfaces()
# TODO control_channel and control_client have same responsibilities, merge them # TODO control_channel and control_client have same responsibilities, merge them
@ -221,7 +222,7 @@ class InfectionMonkey:
self._master = AutomatedMaster( self._master = AutomatedMaster(
self._current_depth, self._current_depth,
self._opts.servers, self._opts.servers + relay_servers,
puppet, puppet,
telemetry_messenger, telemetry_messenger,
victim_host_factory, victim_host_factory,