Add strategy num

This commit is contained in:
George Hughey 2019-12-12 16:44:24 -08:00
parent 556f94380d
commit 5c4a4ea08d
2 changed files with 38 additions and 2 deletions

View File

@ -18,6 +18,8 @@ from scapy.utils import wrpcap
from scapy.config import conf
from scapy.all import send, Raw
from library import LIBRARY
socket.setdefaulttimeout(1)
import actions.packet
@ -457,6 +459,7 @@ def get_args():
parser.add_argument('--server-port', type=int, action='store', required=True)
parser.add_argument('--environment-id', action='store', help="ID of the current strategy under test. If not provided, one will be generated.")
parser.add_argument('--strategy', action='store', help="Strategy to deploy")
parser.add_argument('--strategy-index', action='store', help="Strategy to deploy, specified by index in the library")
parser.add_argument('--output-directory', default="trials", action='store', help="Where to output logs, captures, and results. Defaults to trials/.")
parser.add_argument('--log', action='store', default="debug",
choices=("debug", "info", "warning", "critical", "error"),
@ -471,16 +474,23 @@ def main(args):
Kicks off the engine with the given arguments.
"""
try:
if args["strategy"]:
strategy = args["strategy"]
elif args["strategy-index"]:
strategy = LIBRARY[int(args["strategy-index"])][0]
else:
# Default to first strategy
strategy = LIBRARY[0][0]
if WINDOWS:
eng = WindowsEngine(args["server_port"],
args["strategy"],
strategy,
environment_id=args.get("environment_id"),
output_directory = args.get("output_directory"),
log_level=args["log"])
eng.initialize_divert()
else:
eng = LinuxEngine(args["server_port"],
args["strategy"],
strategy,
environment_id=args.get("environment_id"),
output_directory = args.get("output_directory"),
log_level=args["log"])

26
library.py Normal file
View File

@ -0,0 +1,26 @@
LIBRARY = [
("[TCP:flags:PA]-duplicate(tamper{TCP:dataofs:replace:10}(tamper{TCP:chksum:corrupt},),)-|", 98%, 100%, 0%),
("[TCP:flags:PA]-duplicate(tamper{TCP:dataofs:replace:10}(tamper{IP:ttl:replace:10},),)-|", 98%, 100%, 0%),
("[TCP:flags:PA]-duplicate(tamper{TCP:dataofs:replace:10}(tamper{TCP:ack:corrupt},),)-|", 94%, 100%, 0%),
("[TCP:flags:PA]-duplicate(tamper{TCP:options-wscale:corrupt}(tamper{TCP:dataofs:replace:8},),)-|", 98%, 100%, 0%),
("[TCP:flags:PA]-duplicate(tamper{TCP:load:corrupt}(tamper{TCP:chksum:corrupt},),)-|", 80%, 100%, 0%),
("[TCP:flags:PA]-duplicate(tamper{TCP:load:corrupt}(tamper{IP:ttl:replace:8},),)-|", 98%, 100%, 0%),
("[TCP:flags:PA]-duplicate(tamper{TCP:load:corrupt}(tamper{TCP:ack:corrupt},),)-|", 87%, 100%, 0%),
("[TCP:flags:S]-duplicate(,tamper{TCP:load:corrupt})-|", 3%, 100%, 0%),
("[TCP:flags:PA]-duplicate(tamper{IP:len:replace:64},)-|", 3%, 0%, 100%),
("[TCP:flags:A]-duplicate(,tamper{TCP:flags:replace:R}(tamper{TCP:chksum:corrupt},))-|", 95%, 0%, 0%),
("[TCP:flags:A]-duplicate(,tamper{TCP:flags:replace:R}(tamper{IP:ttl:replace:10},))-|", 87%, 0%, 0%),
("[TCP:flags:A]-duplicate(,tamper{TCP:options-md5header:corrupt}(tamper{TCP:flags:replace:R},))-|", 86%, 0%, 0%),
("[TCP:flags:A]-duplicate(,tamper{TCP:flags:replace:RA}(tamper{TCP:chksum:corrupt},))-|", 80%, 0%, 0%),
("[TCP:flags:A]-duplicate(,tamper{TCP:flags:replace:RA}(tamper{IP:ttl:replace:10},))-|", 94%, 0%, 0%),
("[TCP:flags:A]-duplicate(,tamper{TCP:options-md5header:corrupt}(tamper{TCP:flags:replace:R},))-|", 94%, 0%, 0%),
("[TCP:flags:A]-duplicate(,tamper{TCP:flags:replace:FRAPUEN}(tamper{TCP:chksum:corrupt},))-|", 89%, 0%, 0%),
("[TCP:flags:A]-duplicate(,tamper{TCP:flags:replace:FREACN}(tamper{IP:ttl:replace:10},))-|", 96%, 0%, 0%),
("[TCP:flags:A]-duplicate(,tamper{TCP:flags:replace:FRAPUN}(tamper{TCP:options-md5header:corrupt},))-|", 94%, 0%, 0%),
("[TCP:flags:PA]-fragment{tcp:8:False}-| [TCP:flags:A]-tamper{TCP:seq:corrupt}-|", 94%, 100%, 100%),
("[TCP:flags:PA]-fragment{tcp:8:True}(,fragment{tcp:4:True})-|", 98%, 100%, 100%),
("[TCP:flags:PA]-fragment{tcp:-1:True}-|", 3%, 100%, 100%),
("[TCP:flags:PA]-duplicate(tamper{TCP:flags:replace:F}(tamper{IP:len:replace:78},),)-|", 53%, 0%, 100%),
("[TCP:flags:S]-duplicate(tamper{TCP:flags:replace:SA},)-|", 3%, 100%, 0%),
("[TCP:flags:PA]-tamper{TCP:options-uto:corrupt}-|", 3%, 0%, 100%)
]