forked from p15670423/monkey
Bugfixes and debugging comments removed
This commit is contained in:
parent
0e2a3a54a9
commit
5fa27c14e8
|
@ -7,6 +7,7 @@ from time import sleep
|
||||||
from envs.monkey_zoo.blackbox.island_client.monkey_island_client import MonkeyIslandClient
|
from envs.monkey_zoo.blackbox.island_client.monkey_island_client import MonkeyIslandClient
|
||||||
from envs.monkey_zoo.blackbox.analyzers.communication_analyzer import CommunicationAnalyzer
|
from envs.monkey_zoo.blackbox.analyzers.communication_analyzer import CommunicationAnalyzer
|
||||||
from envs.monkey_zoo.blackbox.island_client.island_config_parser import IslandConfigParser
|
from envs.monkey_zoo.blackbox.island_client.island_config_parser import IslandConfigParser
|
||||||
|
from envs.monkey_zoo.blackbox.tests.performance.map_generation import MapGenerationTest
|
||||||
from envs.monkey_zoo.blackbox.tests.performance.report_generation import ReportGenerationTest
|
from envs.monkey_zoo.blackbox.tests.performance.report_generation import ReportGenerationTest
|
||||||
from envs.monkey_zoo.blackbox.utils import gcp_machine_handlers
|
from envs.monkey_zoo.blackbox.utils import gcp_machine_handlers
|
||||||
from envs.monkey_zoo.blackbox.tests.exploitation import ExploitationTest
|
from envs.monkey_zoo.blackbox.tests.exploitation import ExploitationTest
|
||||||
|
@ -24,7 +25,7 @@ LOGGER = logging.getLogger(__name__)
|
||||||
@pytest.fixture(autouse=True, scope='session')
|
@pytest.fixture(autouse=True, scope='session')
|
||||||
def GCPHandler(request):
|
def GCPHandler(request):
|
||||||
GCPHandler = gcp_machine_handlers.GCPHandler()
|
GCPHandler = gcp_machine_handlers.GCPHandler()
|
||||||
#GCPHandler.start_machines(" ".join(GCP_TEST_MACHINE_LIST))
|
GCPHandler.start_machines(" ".join(GCP_TEST_MACHINE_LIST))
|
||||||
wait_machine_bootup()
|
wait_machine_bootup()
|
||||||
|
|
||||||
def fin():
|
def fin():
|
||||||
|
@ -74,13 +75,13 @@ class TestMonkeyBlackbox(object):
|
||||||
log_handler = TestLogsHandler(performance_test_class.TEST_NAME,
|
log_handler = TestLogsHandler(performance_test_class.TEST_NAME,
|
||||||
island_client,
|
island_client,
|
||||||
TestMonkeyBlackbox.get_log_dir_path())
|
TestMonkeyBlackbox.get_log_dir_path())
|
||||||
analyzer = CommunicationAnalyzer(island_client, config_parser.get_ips_of_targets())
|
analyzers = [CommunicationAnalyzer(island_client, config_parser.get_ips_of_targets())]
|
||||||
performance_test_class.__init__(island_client=island_client,
|
performance_test_class(island_client=island_client,
|
||||||
config_parser=config_parser,
|
config_parser=config_parser,
|
||||||
analyzers=analyzer,
|
analyzers=analyzers,
|
||||||
timeout=timeout_in_seconds,
|
timeout=timeout_in_seconds,
|
||||||
log_handler=log_handler,
|
log_handler=log_handler,
|
||||||
break_on_timeout=break_on_timeout).run()
|
break_on_timeout=break_on_timeout).run()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_log_dir_path():
|
def get_log_dir_path():
|
||||||
|
@ -89,41 +90,41 @@ class TestMonkeyBlackbox(object):
|
||||||
def test_server_online(self, island_client):
|
def test_server_online(self, island_client):
|
||||||
assert island_client.get_api_status() is not None
|
assert island_client.get_api_status() is not None
|
||||||
|
|
||||||
#def test_ssh_exploiter(self, island_client):
|
def test_ssh_exploiter(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "SSH.conf", "SSH_exploiter_and_keys")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "SSH.conf", "SSH_exploiter_and_keys")
|
||||||
#
|
|
||||||
#def test_hadoop_exploiter(self, island_client):
|
def test_hadoop_exploiter(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "HADOOP.conf", "Hadoop_exploiter", 6 * 60)
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "HADOOP.conf", "Hadoop_exploiter", 6 * 60)
|
||||||
#
|
|
||||||
#def test_mssql_exploiter(self, island_client):
|
def test_mssql_exploiter(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "MSSQL.conf", "MSSQL_exploiter")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "MSSQL.conf", "MSSQL_exploiter")
|
||||||
#
|
|
||||||
#def test_smb_and_mimikatz_exploiters(self, island_client):
|
def test_smb_and_mimikatz_exploiters(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "SMB_MIMIKATZ.conf", "SMB_exploiter_mimikatz")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "SMB_MIMIKATZ.conf", "SMB_exploiter_mimikatz")
|
||||||
#
|
|
||||||
#def test_smb_pth(self, island_client):
|
def test_smb_pth(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "SMB_PTH.conf", "SMB_PTH")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "SMB_PTH.conf", "SMB_PTH")
|
||||||
#
|
|
||||||
#def test_elastic_exploiter(self, island_client):
|
def test_elastic_exploiter(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "ELASTIC.conf", "Elastic_exploiter")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "ELASTIC.conf", "Elastic_exploiter")
|
||||||
#
|
|
||||||
#def test_struts_exploiter(self, island_client):
|
def test_struts_exploiter(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "STRUTS2.conf", "Strtuts2_exploiter")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "STRUTS2.conf", "Strtuts2_exploiter")
|
||||||
#
|
|
||||||
#def test_weblogic_exploiter(self, island_client):
|
def test_weblogic_exploiter(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "WEBLOGIC.conf", "Weblogic_exploiter")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "WEBLOGIC.conf", "Weblogic_exploiter")
|
||||||
#
|
|
||||||
#def test_shellshock_exploiter(self, island_client):
|
def test_shellshock_exploiter(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "SHELLSHOCK.conf", "Shellschock_exploiter")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "SHELLSHOCK.conf", "Shellschock_exploiter")
|
||||||
#
|
|
||||||
#def test_tunneling(self, island_client):
|
def test_tunneling(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "TUNNELING.conf", "Tunneling_exploiter", 15 * 60)
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "TUNNELING.conf", "Tunneling_exploiter", 15 * 60)
|
||||||
#
|
|
||||||
#def test_wmi_and_mimikatz_exploiters(self, island_client):
|
def test_wmi_and_mimikatz_exploiters(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "WMI_MIMIKATZ.conf", "WMI_exploiter,_mimikatz")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "WMI_MIMIKATZ.conf", "WMI_exploiter,_mimikatz")
|
||||||
#
|
|
||||||
#def test_wmi_pth(self, island_client):
|
def test_wmi_pth(self, island_client):
|
||||||
# TestMonkeyBlackbox.run_exploitation_test(island_client, "WMI_PTH.conf", "WMI_PTH")
|
TestMonkeyBlackbox.run_exploitation_test(island_client, "WMI_PTH.conf", "WMI_PTH")
|
||||||
|
|
||||||
def test_report_generation_performance(self, island_client):
|
def test_report_generation_performance(self, island_client):
|
||||||
"""
|
"""
|
||||||
|
@ -137,3 +138,10 @@ class TestMonkeyBlackbox(object):
|
||||||
island_client,
|
island_client,
|
||||||
"PERFORMANCE.conf",
|
"PERFORMANCE.conf",
|
||||||
timeout_in_seconds=10*60)
|
timeout_in_seconds=10*60)
|
||||||
|
|
||||||
|
def test_map_generation_performance(self, island_client):
|
||||||
|
TestMonkeyBlackbox.run_performance_test(MapGenerationTest,
|
||||||
|
island_client,
|
||||||
|
"PERFORMANCE.conf",
|
||||||
|
timeout_in_seconds=10*60)
|
||||||
|
|
||||||
|
|
|
@ -39,4 +39,4 @@ class EndpointPerformanceTest(BasicTest):
|
||||||
else:
|
else:
|
||||||
LOGGER.error(f"Trying to get {url} but got unexpected {str(response)}")
|
LOGGER.error(f"Trying to get {url} but got unexpected {str(response)}")
|
||||||
# instead of raising for status, mark failed responses as maxtime
|
# instead of raising for status, mark failed responses as maxtime
|
||||||
return timedelta.max()
|
return timedelta.max
|
||||||
|
|
|
@ -9,7 +9,7 @@ MAX_ALLOWED_SINGLE_PAGE_TIME = timedelta(seconds=2)
|
||||||
MAX_ALLOWED_TOTAL_TIME = timedelta(seconds=5)
|
MAX_ALLOWED_TOTAL_TIME = timedelta(seconds=5)
|
||||||
|
|
||||||
MAP_RESOURCES = [
|
MAP_RESOURCES = [
|
||||||
"api/map",
|
"api/netmap",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,9 @@ class PerformanceTestWorkflow(BasicTest):
|
||||||
self.island_client.kill_all_monkeys()
|
self.island_client.kill_all_monkeys()
|
||||||
self.exploitation_test.wait_until_monkeys_die()
|
self.exploitation_test.wait_until_monkeys_die()
|
||||||
self.exploitation_test.wait_for_monkey_process_to_finish()
|
self.exploitation_test.wait_for_monkey_process_to_finish()
|
||||||
performance_test = EndpointPerformanceTest(self.name, self.performance_config, self.island_client)
|
performance_test = EndpointPerformanceTest(self.name, self.performance_config, self.island_client)
|
||||||
performance_test.run()
|
try:
|
||||||
|
assert performance_test.run()
|
||||||
|
finally:
|
||||||
self.exploitation_test.parse_logs()
|
self.exploitation_test.parse_logs()
|
||||||
self.island_client.reset_env()
|
self.island_client.reset_env()
|
||||||
|
|
Loading…
Reference in New Issue