diff --git a/src/primaite/game/game.py b/src/primaite/game/game.py index e0ad0384..b03828f1 100644 --- a/src/primaite/game/game.py +++ b/src/primaite/game/game.py @@ -19,6 +19,7 @@ from primaite.simulator.network.hardware.nodes.switch import Switch from primaite.simulator.sim_container import Simulation from primaite.simulator.system.applications.database_client import DatabaseClient from primaite.simulator.system.applications.red_applications.data_manipulation_bot import DataManipulationBot +from primaite.simulator.system.applications.red_applications.dos_bot import DoSBot from primaite.simulator.system.applications.web_browser import WebBrowser from primaite.simulator.system.services.database.database_service import DatabaseService from primaite.simulator.system.services.dns.dns_client import DNSClient @@ -31,10 +32,7 @@ from primaite.simulator.system.services.web_server.web_server import WebServer _LOGGER = getLogger(__name__) -APPLICATION_TYPES_MAPPING = { - "WebBrowser": WebBrowser, - "DataManipulationBot": DataManipulationBot, -} +APPLICATION_TYPES_MAPPING = {"WebBrowser": WebBrowser, "DataManipulationBot": DataManipulationBot, "DoSBot": DoSBot} SERVICE_TYPES_MAPPING = { "DNSClient": DNSClient, @@ -308,6 +306,11 @@ class PrimaiteGame: if "options" in application_cfg: opt = application_cfg["options"] new_application.target_url = opt.get("target_url") + + elif application_type == "DoSBot": + if "options" in application_cfg: + opt = application_cfg["options"] + new_application.target_ip_address = opt.get("target_ip_address") if "nics" in node_cfg: for nic_num, nic_cfg in node_cfg["nics"].items(): new_node.connect_nic(NIC(ip_address=nic_cfg["ip_address"], subnet_mask=nic_cfg["subnet_mask"])) diff --git a/tests/assets/configs/basic_switched_network.yaml b/tests/assets/configs/basic_switched_network.yaml index 774c4aa2..0687478d 100644 --- a/tests/assets/configs/basic_switched_network.yaml +++ b/tests/assets/configs/basic_switched_network.yaml @@ -88,6 +88,10 @@ simulation: data_manipulation_p_of_success: 0.8 payload: "DELETE" server_ip: 192.168.1.14 + - ref: dos_bot + type: DoSBot + options: + target_ip_address: 192.168.10.21 services: - ref: client_1_dns_server type: DNSServer @@ -98,6 +102,10 @@ simulation: type: DatabaseClient options: db_server_ip: 192.168.10.21 + - ref: client_1_dosbot + type: DoSBot + options: + db_server_ip: 192.168.10.21 - ref: client_1_database_service type: DatabaseService options: