Beispiel #1
0
    def __init__(self):
        """
        Creates a new instance of the PortscanAttack.
        This attack injects TCP Syn-requests and respective responses into the output pcap file.
        """
        # Initialize attack
        super(PortscanAttack, self).__init__("Portscan Attack",
                                             "Injects a nmap 'regular scan'",
                                             "Scanning/Probing")

        # Define allowed parameters and their type
        self.update_params([
            Parameter(self.IP_SOURCE, IPAddress()),
            Parameter(self.IP_DESTINATION, IPAddress()),
            Parameter(self.PORT_SOURCE, Port()),
            Parameter(self.PORT_DESTINATION, Port()),
            Parameter(self.PORT_OPEN, Port()),
            Parameter(self.MAC_SOURCE, MACAddress()),
            Parameter(self.MAC_DESTINATION, MACAddress()),
            Parameter(self.PORT_DEST_SHUFFLE, Boolean()),
            Parameter(self.PORT_DEST_ORDER_DESC, Boolean()),
            Parameter(self.IP_SOURCE_RANDOMIZE, Boolean()),
            Parameter(self.PACKETS_PER_SECOND, Float()),
            Parameter(self.PORT_SOURCE_RANDOMIZE, Boolean())
        ])
Beispiel #2
0
    def __init__(self):
        """
        Creates a new instance of the DDoS attack.
        """
        # Initialize attack
        super(DDoSAttack,
              self).__init__("DDoS Attack", "Injects a DDoS attack'",
                             "Resource Exhaustion")

        self.total_pkt_num = 0
        self.default_port = 0

        # Define allowed parameters and their type
        self.update_params([
            Parameter(self.IP_SOURCE, IPAddress()),
            Parameter(self.MAC_SOURCE, MACAddress()),
            Parameter(self.PORT_SOURCE, Port()),
            Parameter(self.IP_DESTINATION, IPAddress()),
            Parameter(self.MAC_DESTINATION, MACAddress()),
            Parameter(self.PORT_DESTINATION, Port()),
            Parameter(self.PACKETS_PER_SECOND, Float()),
            Parameter(self.NUMBER_ATTACKERS, IntegerPositive()),
            Parameter(self.ATTACK_DURATION, IntegerPositive()),
            Parameter(self.VICTIM_BUFFER, IntegerPositive()),
            Parameter(self.LATENCY_MAX, Float())
        ])
Beispiel #3
0
    def __init__(self):
        """
        Creates a new instance of the SMBScanAttack.
        This Attack injects TCP Syn Requests to the port 445 of several ips and related response into the output
        pcap file.
        If port 445 is open, it will simulate and inject the SMB Protocol Negotiation too.
        """
        # Initialize attack
        super(SMBScanAttack,
              self).__init__("SMBScan Attack", "Injects an SMB scan",
                             "Scanning/Probing")

        self.host_os = Util.get_rnd_os()

        # Define allowed parameters and their type
        self.update_params([
            Parameter(self.IP_SOURCE, IPAddress()),
            Parameter(self.IP_DESTINATION, IPAddress()),
            Parameter(self.MAC_DESTINATION, MACAddress()),
            Parameter(self.TARGET_COUNT, IntegerPositive()),
            Parameter(self.HOSTING_PERCENTAGE, Percentage()),
            Parameter(self.PORT_SOURCE, Port()),
            Parameter(self.MAC_SOURCE, MACAddress()),
            Parameter(self.IP_SOURCE_RANDOMIZE, Boolean()),
            Parameter(self.PACKETS_PER_SECOND, Float()),
            Parameter(self.PORT_SOURCE_RANDOMIZE, Boolean()),
            Parameter(self.HOSTING_IP, IPAddress()),
            Parameter(self.HOSTING_VERSION, String()),
            Parameter(self.SOURCE_PLATFORM, SpecificString(Util.platforms)),
            Parameter(self.PROTOCOL_VERSION, String())
        ])
Beispiel #4
0
    def __init__(self):
        """
        Creates a new instance of the EternalBlue Exploit.
        """
        # Initialize attack
        super(MS17ScanAttack,
              self).__init__("MS17ScanAttack", "Injects a MS17 scan'",
                             "Scanning/Probing")

        self.pkt_num = 0
        self.path_attack_pcap = None

        # Define allowed parameters and their type
        self.update_params([
            Parameter(self.MAC_SOURCE, MACAddress()),
            Parameter(self.IP_SOURCE, IPAddress()),
            Parameter(self.PORT_SOURCE, Port()),
            Parameter(self.MAC_DESTINATION, MACAddress()),
            Parameter(self.IP_DESTINATION, IPAddress()),
            Parameter(self.PORT_DESTINATION, Port()),
            Parameter(self.PACKETS_PER_SECOND, Float())
        ])
Beispiel #5
0
    def __init__(self):
        """
        Creates a new instance of the EternalBlue Exploit.
        """
        # Initialize attack
        super(EternalBlueExploit,
              self).__init__("EternalBlue Exploit",
                             "Injects an EternalBlue exploit'",
                             "Privilege elevation")

        self.pkt_num = 0
        self.path_attack_pcap = None

        # Define allowed parameters and their type
        self.update_params([
            Parameter(self.MAC_SOURCE, MACAddress()),
            Parameter(self.IP_SOURCE, IPAddress()),
            Parameter(self.PORT_SOURCE, Port()),
            Parameter(self.MAC_DESTINATION, MACAddress()),
            Parameter(self.IP_DESTINATION, IPAddress()),
            Parameter(self.PORT_DESTINATION, Port()),
            Parameter(self.PACKETS_PER_SECOND, Float())
        ])
Beispiel #6
0
    def __init__(self):
        """
        Creates a new instance of the SQLi Attack.
        """
        # Initialize attack
        super(SQLiAttack, self).__init__("SQLi Attack", "Injects a SQLi attack'",
                                         "Privilege elevation")

        self.pkt_num = 0
        self.path_attack_pcap = None

        # Define allowed parameters and their type
        self.update_params([
            Parameter(self.MAC_SOURCE, MACAddress()),
            Parameter(self.IP_SOURCE, IPAddress()),
            Parameter(self.MAC_DESTINATION, MACAddress()),
            Parameter(self.IP_DESTINATION, IPAddress()),
            Parameter(self.PORT_DESTINATION, Port()),
            Parameter(self.TARGET_HOST, Domain()),
            Parameter(self.PACKETS_PER_SECOND, Float())
        ])
Beispiel #7
0
    def __init__(self):
        """
        Creates a new instance of the Joomla Registeration Privileges Escalation Exploit.
        """
        # Initialize attack
        super(JoomlaRegPrivExploit,
              self).__init__("JoomlaRegPrivesc Exploit",
                             "Injects an JoomlaRegPrivesc exploit'",
                             "Privilege elevation")

        self.pkt_num = 0
        self.path_attack_pcap = None

        # Define allowed parameters and their type
        self.update_params([
            Parameter(self.MAC_SOURCE, MACAddress()),
            Parameter(self.IP_SOURCE, IPAddress()),
            Parameter(self.MAC_DESTINATION, MACAddress()),
            Parameter(self.IP_DESTINATION, IPAddress()),
            Parameter(self.PORT_DESTINATION, Port()),
            Parameter(self.TARGET_HOST, Domain()),
            Parameter(self.PACKETS_PER_SECOND, Float())
        ])
Beispiel #8
0
 def test_is_port_valid(self):
     self.assertTrue(Port._is_port(5000))
Beispiel #9
0
 def test_is_port_range_dots_valid(self):
     self.assertTrue(Port._is_port("3000...5000"))
Beispiel #10
0
 def test_is_port_invalid_string_list(self):
     self.assertFalse(Port._is_port(["5000", "70000", "0"]))
Beispiel #11
0
 def test_is_port_valid_list(self):
     self.assertTrue(Port._is_port([5000, 4000, 3000]))
Beispiel #12
0
 def test_is_port_range_dots_invalid(self):
     self.assertFalse(Port._is_port("0...70000"))
Beispiel #13
0
 def test_is_port_string_comma_valid(self):
     self.assertTrue(Port._is_port("5000, 4000, 3000"))
Beispiel #14
0
 def test_is_port_string_comma_ivalid(self):
     self.assertFalse(Port._is_port("5000, 70000, 3000"))
Beispiel #15
0
 def test_is_port_valid_string_list(self):
     self.assertTrue(Port._is_port(["5000", "4000", "3000"]))
Beispiel #16
0
 def test_is_port_string_invalid(self):
     self.assertFalse(Port._is_port("70000"))
Beispiel #17
0
 def test_is_port_range_list_valid(self):
     self.assertTrue(Port._is_port(["3000-5000", "6000-7000"]))
Beispiel #18
0
 def test_is_port_empty_list(self):
     self.assertFalse(Port._is_port([]))
Beispiel #19
0
 def test_is_port_empty(self):
     self.assertFalse(Port._is_port(""))
Beispiel #20
0
 def test_is_port_none(self):
     self.assertFalse(Port._is_port(None))
Beispiel #21
0
 def test_is_port_range_list_invalid(self):
     self.assertFalse(Port._is_port(["0-70000", "6000-7000"]))
Beispiel #22
0
 def test_is_port_invalid(self):
     self.assertFalse(Port._is_port(70000))
Beispiel #23
0
 def test_is_port_invalid_list(self):
     self.assertFalse(Port._is_port([5000, 70000, 0]))