mirror of
https://github.com/aljazceru/recon-pipeline.git
synced 2025-12-18 23:04:21 +01:00
59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
import luigi
|
|
from luigi.util import inherits
|
|
|
|
from recon.nmap import SearchsploitScan
|
|
from recon.web.aquatone import AquatoneScan
|
|
from recon.web.corscanner import CORScannerScan
|
|
from recon.web.subdomain_takeover import TKOSubsScan, SubjackScan
|
|
from recon.web.gobuster import GobusterScan
|
|
from recon.web.webanalyze import WebanalyzeScan
|
|
|
|
|
|
@inherits(
|
|
SearchsploitScan,
|
|
AquatoneScan,
|
|
TKOSubsScan,
|
|
SubjackScan,
|
|
CORScannerScan,
|
|
GobusterScan,
|
|
WebanalyzeScan,
|
|
)
|
|
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,
|
|
"proxy": self.proxy,
|
|
"wordlist": self.wordlist,
|
|
"extensions": self.extensions,
|
|
"recursive": self.recursive,
|
|
}
|
|
|
|
yield GobusterScan(**args)
|
|
|
|
for gobuster_opt in ("proxy", "wordlist", "extensions", "recursive"):
|
|
del args[gobuster_opt]
|
|
|
|
args.update({"scan_timeout": self.scan_timeout})
|
|
|
|
yield AquatoneScan(**args)
|
|
|
|
del args["scan_timeout"]
|
|
|
|
yield SubjackScan(**args)
|
|
yield SearchsploitScan(**args)
|
|
yield CORScannerScan(**args)
|
|
yield WebanalyzeScan(**args)
|
|
|
|
del args["threads"]
|
|
|
|
yield TKOSubsScan(**args)
|