Agent: Add list of server when propagating

This commit is contained in:
Ilija Lazoroski 2022-09-05 13:07:38 +02:00 committed by Mike Salvatore
parent f104f31dcd
commit b2f0b54d37
2 changed files with 21 additions and 5 deletions

View File

@ -47,7 +47,11 @@ class Propagator:
self._hosts_to_exploit: Queue = Queue() self._hosts_to_exploit: Queue = Queue()
def propagate( def propagate(
self, propagation_config: PropagationConfiguration, current_depth: int, stop: Event self,
propagation_config: PropagationConfiguration,
current_depth: int,
servers: Sequence[str],
stop: Event,
): ):
logger.info("Attempting to propagate") logger.info("Attempting to propagate")
@ -66,7 +70,13 @@ class Propagator:
exploit_thread = create_daemon_thread( exploit_thread = create_daemon_thread(
target=self._exploit_hosts, target=self._exploit_hosts,
name="PropagatorExploitThread", name="PropagatorExploitThread",
args=(propagation_config.exploitation, current_depth, network_scan_completed, stop), args=(
propagation_config.exploitation,
current_depth,
servers,
network_scan_completed,
stop,
),
) )
scan_thread.start() scan_thread.start()
@ -167,6 +177,7 @@ class Propagator:
self, self,
exploitation_config: ExploitationConfiguration, exploitation_config: ExploitationConfiguration,
current_depth: int, current_depth: int,
servers: Sequence[str],
network_scan_completed: Event, network_scan_completed: Event,
stop: Event, stop: Event,
): ):
@ -176,6 +187,7 @@ class Propagator:
exploitation_config, exploitation_config,
self._hosts_to_exploit, self._hosts_to_exploit,
current_depth, current_depth,
servers,
self._process_exploit_attempts, self._process_exploit_attempts,
network_scan_completed, network_scan_completed,
stop, stop,

View File

@ -110,6 +110,8 @@ os_windows = "windows"
os_linux = "linux" os_linux = "linux"
SERVERS = ["127.0.0.1:5000", "10.10.10.10:5007"]
@pytest.fixture @pytest.fixture
def mock_ip_scanner(): def mock_ip_scanner():
@ -134,6 +136,7 @@ class StubExploiter:
exploiters_to_run, exploiters_to_run,
hosts_to_exploit, hosts_to_exploit,
current_depth, current_depth,
servers,
results_callback, results_callback,
scan_completed, scan_completed,
stop, stop,
@ -171,7 +174,7 @@ def test_scan_result_processing(
subnets=["10.0.0.1", "10.0.0.2", "10.0.0.3"], subnets=["10.0.0.1", "10.0.0.2", "10.0.0.3"],
) )
propagation_config = get_propagation_config(default_agent_configuration, targets) propagation_config = get_propagation_config(default_agent_configuration, targets)
p.propagate(propagation_config, 1, Event()) p.propagate(propagation_config, 1, SERVERS, Event())
assert len(telemetry_messenger_spy.telemetries) == 3 assert len(telemetry_messenger_spy.telemetries) == 3
@ -204,6 +207,7 @@ class MockExploiter:
exploiters_to_run, exploiters_to_run,
hosts_to_exploit, hosts_to_exploit,
current_depth, current_depth,
servers,
results_callback, results_callback,
scan_completed, scan_completed,
stop, stop,
@ -269,7 +273,7 @@ def test_exploiter_result_processing(
subnets=["10.0.0.1", "10.0.0.2", "10.0.0.3"], subnets=["10.0.0.1", "10.0.0.2", "10.0.0.3"],
) )
propagation_config = get_propagation_config(default_agent_configuration, targets) propagation_config = get_propagation_config(default_agent_configuration, targets)
p.propagate(propagation_config, 1, Event()) p.propagate(propagation_config, 1, SERVERS, Event())
exploit_telems = [t for t in telemetry_messenger_spy.telemetries if isinstance(t, ExploitTelem)] exploit_telems = [t for t in telemetry_messenger_spy.telemetries if isinstance(t, ExploitTelem)]
assert len(exploit_telems) == 4 assert len(exploit_telems) == 4
@ -310,7 +314,7 @@ def test_scan_target_generation(
subnets=["10.0.0.0/29", "172.10.20.30"], subnets=["10.0.0.0/29", "172.10.20.30"],
) )
propagation_config = get_propagation_config(default_agent_configuration, targets) propagation_config = get_propagation_config(default_agent_configuration, targets)
p.propagate(propagation_config, 1, Event()) p.propagate(propagation_config, 1, SERVERS, Event())
expected_ip_scan_list = [ expected_ip_scan_list = [
"10.0.0.0", "10.0.0.0",