diff --git a/recon/wrappers.py b/recon/wrappers.py new file mode 100644 index 0000000..719d1e0 --- /dev/null +++ b/recon/wrappers.py @@ -0,0 +1,28 @@ +import luigi +from luigi.util import inherits + +from recon.nmap import Searchsploit +from recon.web.aquatone import AquatoneScan + + +@inherits(Searchsploit, AquatoneScan) +class FullScan(luigi.WrapperTask): + """ Wraps multiple scan types in order to run tasks on the same hierarchical level at the same time. """ + + def requires(self): + """ FullScan is a wrapper, as such it requires any Tasks that it wraps. """ + args = { + "rate": self.rate, + "target_file": self.target_file, + "top_ports": self.top_ports, + "interface": self.interface, + "ports": self.ports, + "exempt_list": self.exempt_list, + "threads": self.threads, + "scan_timeout": self.scan_timeout, + } + yield AquatoneScan(**args) + + del args["scan_timeout"] + + yield Searchsploit(**args)