import dataclasses from common.agent_configuration import AgentConfiguration, PluginConfiguration from common.credentials import Credentials, NTHash, Password, Username from .noop import noop_test_configuration from .utils import ( add_exploiters, add_subnets, add_tcp_ports, replace_agent_configuration, replace_propagation_credentials, set_keep_tunnel_open_time, set_maximum_depth, ) # Tests: # Powershell (10.2.3.45, 10.2.3.46, 10.2.3.47, 10.2.3.48) # Tunneling through grandparent agent (SSH brute force) (10.2.2.9, 10.2.1.10, 10.2.0.11) # WMI pass the hash (10.2.2.15) def _add_exploiters(agent_configuration: AgentConfiguration) -> AgentConfiguration: brute_force = [ PluginConfiguration(name="PowerShellExploiter", options={}), PluginConfiguration(name="SSHExploiter", options={}), PluginConfiguration(name="WmiExploiter", options={"smb_download_timeout": 30}), ] return add_exploiters(agent_configuration, brute_force=brute_force, vulnerability=[]) def _add_subnets(agent_configuration: AgentConfiguration) -> AgentConfiguration: subnets = [ "10.2.2.9", "10.2.3.45", "10.2.3.46", "10.2.3.47", "10.2.3.48", "10.2.1.10", "10.2.0.11", "10.2.2.15", ] return add_subnets(agent_configuration, subnets) def _add_tcp_ports(agent_configuration: AgentConfiguration) -> AgentConfiguration: ports = [22, 135, 5985, 5986] return add_tcp_ports(agent_configuration, ports) test_agent_configuration = set_maximum_depth(noop_test_configuration.agent_configuration, 3) test_agent_configuration = set_keep_tunnel_open_time(test_agent_configuration, 20) test_agent_configuration = _add_exploiters(test_agent_configuration) test_agent_configuration = _add_subnets(test_agent_configuration) test_agent_configuration = _add_tcp_ports(test_agent_configuration) CREDENTIALS = ( Credentials(identity=Username("m0nk3y"), secret=None), Credentials(identity=Username("m0nk3y-user"), secret=None), Credentials(identity=None, secret=Password("Passw0rd!")), Credentials(identity=None, secret=Password("3Q=(Ge(+&w]*")), Credentials(identity=None, secret=Password("`))jU7L(w}")), Credentials(identity=None, secret=NTHash("d0f0132b308a0c4e5d1029cc06f48692")), Credentials(identity=None, secret=NTHash("5da0889ea2081aa79f6852294cba4a5e")), Credentials(identity=None, secret=NTHash("50c9987a6bf1ac59398df9f911122c9b")), ) depth_3_a_test_configuration = dataclasses.replace(noop_test_configuration) replace_agent_configuration( test_configuration=depth_3_a_test_configuration, agent_configuration=test_agent_configuration ) replace_propagation_credentials( test_configuration=depth_3_a_test_configuration, propagation_credentials=CREDENTIALS )