From 6bda56f30c0cb1314b6dfb666859be6a1f5b0dc6 Mon Sep 17 00:00:00 2001 From: Shreya Malviya Date: Thu, 21 Jul 2022 12:03:44 +0530 Subject: [PATCH] BB: Replace config templates with configuration objects in test_blackbox.py --- envs/monkey_zoo/blackbox/test_blackbox.py | 40 ++++++++++++++--------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/envs/monkey_zoo/blackbox/test_blackbox.py b/envs/monkey_zoo/blackbox/test_blackbox.py index 6cafe1264..e204388af 100644 --- a/envs/monkey_zoo/blackbox/test_blackbox.py +++ b/envs/monkey_zoo/blackbox/test_blackbox.py @@ -8,19 +8,19 @@ from typing_extensions import Type from envs.monkey_zoo.blackbox.analyzers.communication_analyzer import CommunicationAnalyzer from envs.monkey_zoo.blackbox.analyzers.zerologon_analyzer import ZerologonAnalyzer from envs.monkey_zoo.blackbox.config_templates.config_template import ConfigTemplate -from envs.monkey_zoo.blackbox.config_templates.depth_1_a import Depth1A -from envs.monkey_zoo.blackbox.config_templates.depth_2_a import Depth2A -from envs.monkey_zoo.blackbox.config_templates.depth_3_a import Depth3A -from envs.monkey_zoo.blackbox.config_templates.powershell_credentials_reuse import ( - PowerShellCredentialsReuse, -) -from envs.monkey_zoo.blackbox.config_templates.smb_pth import SmbPth -from envs.monkey_zoo.blackbox.config_templates.wmi_mimikatz import WmiMimikatz -from envs.monkey_zoo.blackbox.config_templates.zerologon import Zerologon from envs.monkey_zoo.blackbox.gcp_test_machine_list import GCP_TEST_MACHINE_LIST from envs.monkey_zoo.blackbox.island_client.island_config_parser import IslandConfigParser from envs.monkey_zoo.blackbox.island_client.monkey_island_client import MonkeyIslandClient from envs.monkey_zoo.blackbox.log_handlers.test_logs_handler import TestLogsHandler +from envs.monkey_zoo.blackbox.test_configurations import ( + depth_1_a_test_configuration, + depth_2_a_test_configuration, + depth_3_a_test_configuration, + powershell_credentials_reuse_test_configuration, + smb_pth_test_configuration, + wmi_mimikatz_test_configuration, + zerologon_test_configuration, +) from envs.monkey_zoo.blackbox.tests.exploitation import ExploitationTest from envs.monkey_zoo.blackbox.utils.gcp_machine_handlers import ( initialize_gcp_client, @@ -113,20 +113,26 @@ class TestMonkeyBlackbox: # If test_depth_1_a() is run first, some test will fail because machines are not yet fully # booted. Running test_depth_2_a() first gives slow VMs extra time to boot. def test_depth_2_a(self, island_client): - TestMonkeyBlackbox.run_exploitation_test(island_client, Depth2A, "Depth2A test suite") + TestMonkeyBlackbox.run_exploitation_test( + island_client, depth_2_a_test_configuration, "Depth2A test suite" + ) def test_depth_1_a(self, island_client): - TestMonkeyBlackbox.run_exploitation_test(island_client, Depth1A, "Depth1A test suite") + TestMonkeyBlackbox.run_exploitation_test( + island_client, depth_1_a_test_configuration, "Depth1A test suite" + ) def test_depth_3_a(self, island_client): - TestMonkeyBlackbox.run_exploitation_test(island_client, Depth3A, "Depth3A test suite") + TestMonkeyBlackbox.run_exploitation_test( + island_client, depth_3_a_test_configuration, "Depth3A test suite" + ) # Not grouped because can only be ran on windows @pytest.mark.skip_powershell_reuse def test_powershell_exploiter_credentials_reuse(self, island_client): TestMonkeyBlackbox.run_exploitation_test( island_client, - PowerShellCredentialsReuse, + powershell_credentials_reuse_test_configuration, "PowerShell_Remoting_exploiter_credentials_reuse", ) @@ -138,7 +144,7 @@ class TestMonkeyBlackbox: "aad3b435b51404eeaad3b435b51404ee", "2864b62ea4496934a5d6e86f50b834a5", ] - raw_config = IslandConfigParser.get_raw_config(Zerologon, island_client) + raw_config = IslandConfigParser.get_raw_config(zerologon_test_configuration, island_client) zero_logon_analyzer = ZerologonAnalyzer(island_client, expected_creds) communication_analyzer = CommunicationAnalyzer( island_client, IslandConfigParser.get_ips_of_targets(raw_config) @@ -159,9 +165,11 @@ class TestMonkeyBlackbox: # Consider grouping when more depth 1 exploiters collide with group depth_1_a def test_wmi_and_mimikatz_exploiters(self, island_client): TestMonkeyBlackbox.run_exploitation_test( - island_client, WmiMimikatz, "WMI_exploiter,_mimikatz" + island_client, wmi_mimikatz_test_configuration, "WMI_exploiter,_mimikatz" ) # Not grouped because it's depth 1 but conflicts with SMB exploiter in group depth_1_a def test_smb_pth(self, island_client): - TestMonkeyBlackbox.run_exploitation_test(island_client, SmbPth, "SMB_PTH") + TestMonkeyBlackbox.run_exploitation_test( + island_client, smb_pth_test_configuration, "SMB_PTH" + )