Source code for csle_common.dao.emulation_action.attacker.emulation_attacker_masscan_actions

from typing import Optional, List
import csle_common.constants.constants as constants
from csle_common.dao.emulation_action.attacker.emulation_attacker_action import EmulationAttackerAction
from csle_common.dao.emulation_action.attacker.emulation_attacker_action_type import EmulationAttackerActionType
from csle_common.dao.emulation_action.attacker.emulation_attacker_action_id import EmulationAttackerActionId
from csle_common.dao.emulation_action.attacker.emulation_attacker_action_outcome import EmulationAttackerActionOutcome


[docs]class EmulationAttackerMasscanActions: """ Class containing attacker Massscan actions in the emulation """
[docs] @staticmethod def MASSCAN_HOST_SCAN(index: int, ips: Optional[List[str]] = None, host_ip: str = "") -> EmulationAttackerAction: """ Action for running a MASSCAN network scan :param index: the index of the action :param ips: ips of the machines or subnets to apply the action to :param host_ip: the host ip :return: The created action """ id = EmulationAttackerActionId.MASSCAN_HOST_SCAN if ips is None: ips = [] cmd = ["sudo masscan " + constants.MASSCAN.BASE_ARGS + " " + constants.MASSCAN.HOST_ARG + host_ip + " "] if index == -1: id = EmulationAttackerActionId.MASSCAN_ALL_SCAN return EmulationAttackerAction(id=id, name="Masscan port 0-1024", cmds=cmd, type=EmulationAttackerActionType.RECON, descr="Masscan port 0-1024", ips=ips, index=index, action_outcome=EmulationAttackerActionOutcome.INFORMATION_GATHERING)