AttackParameters.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import enum
  2. class Parameter(enum.Enum):
  3. """
  4. Defines the shortname for attack parameters. The shortname may be used for attack parameter specification
  5. when calling Core via the command line.
  6. """
  7. # recommended type: IP address -------------------------------
  8. IP_SOURCE = 'ip.src' # source IP address
  9. IP_DESTINATION = 'ip.dst' # destination IP address
  10. IP_DNS = 'ip.dns' # IP address of DNS server
  11. HOSTING_IP = 'hosting.ip'
  12. # recommended type: MAC address ------------------------------
  13. MAC_SOURCE = 'mac.src' # MAC address of source
  14. MAC_DESTINATION = 'mac.dst' # MAC address of destination
  15. # recommended type: Port -------------------------------------
  16. PORT_OPEN = 'port.open' # open ports
  17. PORT_DESTINATION = 'port.dst' # destination ports
  18. PORT_SOURCE = 'port.src' # source ports
  19. # recommended type: Integer positive -------------------------
  20. PACKETS_LIMIT = 'packets.limit'
  21. NUMBER_ATTACKERS = 'attackers.count'
  22. ATTACK_DURATION = 'attack.duration' # in seconds
  23. VICTIM_BUFFER = 'victim.buffer' # in packets
  24. TARGET_URI = 'target.uri'
  25. # recommended type: domain -----------------------------------
  26. TARGET_HOST = 'target.host'
  27. # recommended type: Float ------------------------------------
  28. PACKETS_PER_SECOND = 'packets.per-second' # packets per second
  29. INJECT_AT_TIMESTAMP = 'inject.at-timestamp' # unix epoch time (seconds.millis) where attack should be injected
  30. # recommended type: Packet Position ----------------------------------
  31. INJECT_AFTER_PACKET = 'inject.after-pkt' # packet after which attack should be injected
  32. # recommended type: boolean --------------------------------
  33. PORT_DEST_SHUFFLE = 'port.dst.shuffle' # shuffles the destination ports if a list of ports is given
  34. PORT_DEST_ORDER_DESC = 'port.dst.order-desc' # uses a descending port order instead of a ascending order
  35. IP_SOURCE_RANDOMIZE = 'ip.src.shuffle' # randomizes the sources IP address if a list of IP addresses is given
  36. PORT_SOURCE_RANDOMIZE = 'port.src.shuffle' # randomizes the source port if a list of sources ports is given
  37. PROTOCOL_VERSION = 'protocol.version'
  38. HOSTING_VERSION = 'hosting.version'
  39. SOURCE_PLATFORM = 'src.platform'
  40. CUSTOM_PAYLOAD = 'custom.payload' # custom payload for ftp exploits
  41. CUSTOM_PAYLOAD_FILE = 'custom.payload.file' # file that contains custom payload for ftp exploits
  42. class ParameterTypes(enum.Enum):
  43. """
  44. Defines types for parameters. These types may be used in the specification of allowed parameters within the
  45. individual attack classes. The type is used to verify the validity of the given value.
  46. """
  47. TYPE_IP_ADDRESS = 0
  48. TYPE_MAC_ADDRESS = 1
  49. TYPE_PORT = 2
  50. TYPE_INTEGER_POSITIVE = 3
  51. TYPE_TIMESTAMP = 4
  52. TYPE_BOOLEAN = 5
  53. TYPE_FLOAT = 6
  54. TYPE_PACKET_POSITION = 7 # used to derive timestamp from parameter INJECT_AFTER_PACKET
  55. TYPE_DOMAIN = 8
  56. TYPE_STRING = 9