Codebase list faraday-plugins / upstream/1.4.4
New upstream version 1.4.4 Sophie Brun 3 years ago
159 changed file(s) with 542 addition(s) and 553 deletion(s). Raw diff Collapse all Expand all
0 Mar 10th, 2021
0 Fix bug with sslyze output file
0 FIX change id sslyze for JSON/XML
0 Mar 17th, 2021
0 Add Ignore information vulnerabilities option
0 Faraday CSV Plugin do not consider ignore_info
0 Mar 30th, 2021
+0
-49
CHANGELOG/RELEASE.md less more
0 1.4.1 [Feb 26th, 2021]:
1 ---
2 * ADD microsoft baseline security analyzer plugin
3 * ADD nextnet plugin
4 * ADD openscap plugin
5 * FIX old versions of Nessus plugins bugs
6
7 1.4.0 [Dec 23rd, 2020]:
8 ---
9 * Update the fields of the nuclei output used to create a vuln
10
11 1.4.0b2 [Dec 15th, 2020]:
12 ---
13 * Fix nuclei plugin bug when url is None
14
15 1.4.0b1 [Dec 14th, 2020]:
16 ---
17 * Add new plugin base class, for multi line json
18 * New ncrack plugin
19 * New nuclei plugin
20 * New sslyze json plugin
21 * New WhatWeb plugin
22 * Fix missing ip in some arachni reports
23 * Fix change name vuln in Netsparker plugin
24 * Fix whois plugin, command whois IP not parse data
25 * Change the way we detect json reports when they are lists of dictionaries
26
27 1.3.0 [Sep 2nd, 2020]:
28 ---
29 * ADD plugin AppSpider
30 * Add tests to faraday-plugins cli
31 * add a default value to plugin_version
32 * Add --output-file parameter to faraday-plugins process command
33 * Add plugins prowler
34 * Add plugins ssl labs
35 * Add support for tenable io
36 * delete old deprecated methods
37 * Bug fix: Arachni Plugin 'NoneType' object has no attribute 'find'
38 * Bug fix: Openvas Plugin - Import xml from OpenVas doesnt work
39 * Bug fix: QualysWebApp Plugin, error in get info OPERATING_SYSTEM
40 * Fix Hydra plugin to resolve ip address
41 * Fix Nessus mod severity HIGH for Low
42 * Bug Fix: Detect plugins AWS Prowler
43 * Fix broken xml on nmap plugin
44 * Add new rdpscan plugin
45 * UPDATE xml report to appscan
46 * Update Readme
47 * Fix how ZAP genereate vulns
48
0 1.4.4 [Mar 30th, 2021]:
1 ---
2 * Faraday CSV Plugin do not consider ignore_info option
3
4 1.4.3 [Mar 17th, 2021]:
5 ---
6 * Add Ignore information vulnerabilities option
7
8 1.4.2 [Mar 10th, 2021]:
9 ---
10 * Fix bug with sslyze output file
11 * FIX change id sslyze for JSON/XML
12
013 1.4.1 [Feb 26th, 2021]:
114 ---
215 * ADD microsoft baseline security analyzer plugin
0 __version__ = '1.4.1'
0 __version__ = '1.4.4'
5151 @click.option('-cpf', '--custom-plugins-folder', type=str)
5252 @click.option('--summary', is_flag=True)
5353 @click.option('-o', '--output-file', type=click.Path(exists=False))
54 def process_report(report_file, plugin_id, custom_plugins_folder, summary, output_file):
54 @click.option('--ignore-info', is_flag=True, help="Ignore information vulnerabilities")
55 def process_report(report_file, plugin_id, custom_plugins_folder, summary, output_file, ignore_info):
5556 if not os.path.isfile(report_file):
5657 click.echo(click.style(f"File {report_file} Don't Exists", fg="red"), err=True)
5758 else:
58 plugins_manager = PluginsManager(custom_plugins_folder)
59 plugins_manager = PluginsManager(custom_plugins_folder, ignore_info=ignore_info)
5960 analyzer = ReportAnalyzer(plugins_manager)
6061 if plugin_id:
6162 plugin = plugins_manager.get_plugin(plugin_id)
8687 @click.option('--summary', is_flag=True)
8788 @click.option('-o', '--output-file', type=click.Path(exists=False))
8889 @click.option('-sh', '--show-output', is_flag=True)
89 def process_command(command, plugin_id, custom_plugins_folder, dont_run, summary, output_file, show_output):
90 plugins_manager = PluginsManager(custom_plugins_folder)
90 @click.option('--ignore-info', is_flag=True, help="Ignore information vulnerabilities")
91 def process_command(command, plugin_id, custom_plugins_folder, dont_run, summary, output_file, show_output,
92 ignore_info):
93 plugins_manager = PluginsManager(custom_plugins_folder, ignore_info=ignore_info)
9194 analyzer = CommandAnalyzer(plugins_manager)
9295 if plugin_id:
9396 plugin = plugins_manager.get_plugin(plugin_id)
150150
151151 class PluginsManager:
152152
153 def __init__(self, custom_plugins_folder=None):
153 def __init__(self, custom_plugins_folder=None, ignore_info = False):
154 self.ignore_info = ignore_info
154155 self.plugins = {}
155156 self.plugin_modules = {}
156157 self._load_plugins(custom_plugins_folder)
213214 plugin = None
214215 plugin_id = plugin_id.lower()
215216 if plugin_id in self.plugin_modules:
216 plugin = self.plugin_modules[plugin_id].createPlugin()
217 plugin = self.plugin_modules[plugin_id].createPlugin(self.ignore_info)
217218 else:
218219 logger.debug("Unknown Plugin: %s", plugin_id)
219220 return plugin
221222 def get_plugins(self):
222223 for plugin_id, plugin_module in self.plugin_modules.items():
223224 logger.debug("Instance Plugin: %s", plugin_id)
224 yield plugin_id, plugin_module.createPlugin()
225 yield plugin_id, plugin_module.createPlugin(self.ignore_info)
2828 # TODO: Add class generic identifier
2929 class_signature = "PluginBase"
3030
31 def __init__(self):
31 def __init__(self, ignore_info=False):
3232 # Must be unique. Check that there is not
3333 # an existant plugin with the same id.
3434 # TODO: Make script that list current ids.
35 self.ignore_info = ignore_info
3536 self.id = None
3637 self.auto_load = True
3738 self._rid = id(self)
137138 return obj_uuid
138139
139140 def save_service_vuln_cache(self, host_id, service_id, vuln):
140 cache_id = self.get_service_vuln_cache_id(host_id, service_id, vuln)
141 if cache_id not in self._vulns_cache:
142 obj_uuid = self.save_cache(vuln)
143 service = self.get_from_cache(service_id)
144 service["vulnerabilities"].append(vuln)
145 self._vulns_cache[cache_id] = obj_uuid
146 else:
147 obj_uuid = self._vulns_cache[cache_id]
148 return obj_uuid
141 if self.ignore_info and vuln['severity'] == 'info':
142 return None
143 else:
144 cache_id = self.get_service_vuln_cache_id(host_id, service_id, vuln)
145 if cache_id not in self._vulns_cache:
146 obj_uuid = self.save_cache(vuln)
147 service = self.get_from_cache(service_id)
148 service["vulnerabilities"].append(vuln)
149 self._vulns_cache[cache_id] = obj_uuid
150 else:
151 obj_uuid = self._vulns_cache[cache_id]
152 return obj_uuid
149153
150154 def save_host_vuln_cache(self, host_id, vuln):
151 cache_id = self.get_host_vuln_cache_id(host_id, vuln)
152 if cache_id not in self._vulns_cache:
153 obj_uuid = self.save_cache(vuln)
154 host = self.get_from_cache(host_id)
155 host["vulnerabilities"].append(vuln)
156 self._vulns_cache[cache_id] = obj_uuid
157 else:
158 obj_uuid = self._vulns_cache[cache_id]
159 return obj_uuid
155 if self.ignore_info and vuln['severity'] == 'info':
156 return None
157 else:
158 cache_id = self.get_host_vuln_cache_id(host_id, vuln)
159 if cache_id not in self._vulns_cache:
160 obj_uuid = self.save_cache(vuln)
161 host = self.get_from_cache(host_id)
162 host["vulnerabilities"].append(vuln)
163 self._vulns_cache[cache_id] = obj_uuid
164 else:
165 obj_uuid = self._vulns_cache[cache_id]
166 return obj_uuid
160167
161168 @staticmethod
162169 def _get_dict_hash(d, keys):
295302
296303 def processReport(self, filepath, user="faraday"):
297304 if os.path.isfile(filepath):
298 self.vulns_data["command"]["params"] = filepath
305 self.vulns_data["command"]["params"] = filepath if not self.ignore_info else f"{filepath} (Info ignored)"
299306 self.vulns_data["command"]["user"] = user
300307 self.vulns_data["command"]["import_source"] = "report"
301308 self._parse_filename(filepath)
544551
545552
546553 class PluginByExtension(PluginBase):
547 def __init__(self):
548 super().__init__()
554 def __init__(self, ignore_info=False):
555 super().__init__(ignore_info)
549556 self.extension = []
550557
551558 def report_belongs_to(self, extension="", **kwargs):
560567
561568 class PluginXMLFormat(PluginByExtension):
562569
563 def __init__(self):
564 super().__init__()
570 def __init__(self, ignore_info=False):
571 super().__init__(ignore_info)
565572 self.identifier_tag = []
566573 self.extension = ".xml"
567574 self.open_options = {"mode": "rb"}
579586
580587 class PluginJsonFormat(PluginByExtension):
581588
582 def __init__(self):
583 super().__init__()
589 def __init__(self, ignore_info=False):
590 super().__init__(ignore_info)
584591 self.json_keys = set()
585592 self.extension = ".json"
586593
596603
597604 class PluginMultiLineJsonFormat(PluginByExtension):
598605
599 def __init__(self):
600 super().__init__()
606 def __init__(self, ignore_info=False):
607 super().__init__(ignore_info)
601608 self.json_keys = set()
602609 self.extension = ".json"
603610
621628
622629 class PluginCSVFormat(PluginByExtension):
623630
624 def __init__(self):
625 super().__init__()
631 def __init__(self, ignore_info=False):
632 super().__init__(ignore_info)
626633 self.extension = ".csv"
627634 self.csv_headers = set()
628635
641648
642649 class PluginZipFormat(PluginByExtension):
643650
644 def __init__(self):
645 super().__init__()
651 def __init__(self, ignore_info=False):
652 super().__init__(ignore_info)
646653 self.extension = ".zip"
647654 self.files_list = set()
648655
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
216216 Example plugin to parse acunetix output.
217217 """
218218
219 def __init__(self):
220 super().__init__()
219 def __init__(self, *arg, **kwargs):
220 super().__init__(*arg, **kwargs)
221221 self.identifier_tag = "ScanGroup"
222222 self.id = "Acunetix"
223223 self.name = "Acunetix XML Output Plugin"
290290 pass
291291
292292
293 def createPlugin():
294 return AcunetixPlugin()
293 def createPlugin(ignore_info=False):
294 return AcunetixPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
1919 class AmapPlugin(PluginBase):
2020 """ Example plugin to parse amap output."""
2121
22 def __init__(self):
23 super().__init__()
22 def __init__(self, *arg, **kwargs):
23 super().__init__(*arg, **kwargs)
2424 self.id = "Amap"
2525 self.name = "Amap Output Plugin"
2626 self.plugin_version = "0.0.3"
146146 return final
147147
148148
149 def createPlugin():
150 return AmapPlugin()
149 def createPlugin(ignore_info=False):
150 return AmapPlugin(ignore_info=ignore_info)
151151
152 # I'm Py3
152
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
261261
262262
263263 class AppScanPlugin(PluginXMLFormat):
264 def __init__(self):
265 super().__init__()
264
265 def __init__(self, *arg, **kwargs):
266 super().__init__(*arg, **kwargs)
266267 self.identifier_tag = "xml-report"
267268 self.id = 'Appscan'
268269 self.name = 'Appscan XML Plugin'
381382 data=f'xfix: {vulnserv["xfid"]} cme: {vulnserv["cwe"]}', run_date=None)
382383
383384
384 def createPlugin():
385 return AppScanPlugin()
385 def createPlugin(ignore_info=False):
386 return AppScanPlugin(ignore_info=ignore_info)
3838
3939
4040 class AppSpiderPlugin(PluginXMLFormat):
41 def __init__(self):
42 super().__init__()
41
42 def __init__(self, *arg, **kwargs):
43 super().__init__(*arg, **kwargs)
4344 self.identifier_tag = ["VulnSummary"]
4445 self.id = 'AppSpider'
4546 self.name = 'AppSpider XML Output Plugin'
112113 external_id=vuln_external_id, data=str_data)
113114
114115
115 def createPlugin():
116 return AppSpiderPlugin()
116 def createPlugin(ignore_info=False):
117 return AppSpiderPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
334334
335335 # Plugin that parses Arachni's XML report files.
336336
337 def __init__(self):
338 super().__init__()
337 def __init__(self, *arg, **kwargs):
338 super().__init__(*arg, **kwargs)
339339 self.identifier_tag = ["report", "arachni_report"]
340340 self.id = 'Arachni'
341341 self.name = 'Arachni XML Output Plugin'
490490 return self.hostname
491491
492492
493 def createPlugin():
494 return ArachniPlugin()
495
496 # I'm Py3
493 def createPlugin(ignore_info=False):
494 return ArachniPlugin(ignore_info=ignore_info)
495
496
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2121 Basically inserts into the tree the ouput of this tool
2222 """
2323
24 def __init__(self):
25 super().__init__()
24 def __init__(self, *arg, **kwargs):
25 super().__init__(*arg, **kwargs)
2626 self.id = "arp-scan"
2727 self.name = "arp-scan network scanner"
2828 self.plugin_version = "0.0.2"
5959
6060
6161
62 def createPlugin():
63 return CmdArpScanPlugin()
62 def createPlugin(ignore_info=False):
63 return CmdArpScanPlugin(ignore_info=ignore_info)
6464
3232 and adds the information to Faraday.
3333 """
3434
35 def __init__(self):
36 super().__init__()
35 def __init__(self, *arg, **kwargs):
36 super().__init__(*arg, **kwargs)
3737 self.id = "awsprowler"
3838 self.name = "AWS Prowler"
3939 self.plugin_version = "0.1"
6666 external_id=vuln_external_id, policyviolations=[vuln_policy])
6767
6868
69 def createPlugin():
70 return AwsProwlerPlugin()
69 def createPlugin(ignore_info=False):
70 return AwsProwlerPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2222 Example plugin to parse beef output.
2323 """
2424
25 def __init__(self):
26 super().__init__()
25 def __init__(self, *arg, **kwargs):
26 super().__init__(*arg, **kwargs)
2727 self.id = "Beef"
2828 self.name = "BeEF Online Service Plugin"
2929 self.plugin_version = "0.0.1"
9898 pass
9999
100100
101 def createPlugin():
102 return BeefPlugin()
101 def createPlugin(ignore_info=False):
102 return BeefPlugin(ignore_info=ignore_info)
103103
22 Copyright (C) 2018 Infobyte LLC (http://www.infobytesec.com/)
33 See the file 'doc/LICENSE' for the license information
44 """
5 # I'm Py3
5
1616
1717 class brutexss (PluginBase):
1818
19 def __init__(self):
20 super().__init__()
19 def __init__(self, *arg, **kwargs):
20 super().__init__(*arg, **kwargs)
2121 self.id = "brutexss"
2222 self.name = "brutexss"
2323 self.plugin_version = "0.0.2"
5656
5757
5858
59 def createPlugin():
60 return brutexss()
59 def createPlugin(ignore_info=False):
60 return brutexss(ignore_info=ignore_info)
6161
62 # I'm Py3
62
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
209209 Example plugin to parse burp output.
210210 """
211211
212 def __init__(self):
213 super().__init__()
212 def __init__(self, *arg, **kwargs):
213 super().__init__(*arg, **kwargs)
214214 self.identifier_tag = "issues"
215215 self.id = "Burp"
216216 self.name = "Burp XML Output Plugin"
288288 pass
289289
290290
291 def createPlugin():
292 return BurpPlugin()
293
294 # I'm Py3
291 def createPlugin(ignore_info=False):
292 return BurpPlugin(ignore_info=ignore_info)
293
294
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
7878
7979
8080 class CheckmarxPlugin(PluginXMLFormat):
81 def __init__(self):
82 super().__init__()
81
82 def __init__(self, *arg, **kwargs):
83 super().__init__(*arg, **kwargs)
8384 self.identifier_tag = ["CxXMLResults"]
8485 self.id = 'Checkmarx'
8586 self.name = 'Checkmarx XML Output Plugin'
136137 resolution=data, ref=refs)
137138
138139
139 def createPlugin():
140 return CheckmarxPlugin()
140 def createPlugin(ignore_info=False):
141 return CheckmarxPlugin(ignore_info=ignore_info)
141142
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
5050 Example plugin to parse Cobalt output.
5151 """
5252
53 def __init__(self):
54 super().__init__()
53 def __init__(self, *arg, **kwargs):
54 super().__init__(*arg, **kwargs)
5555 self.csv_headers = [{'Token'}, {'Tag'}]
5656 self.id = "Cobalt"
5757 self.name = "Cobalt CSV Output Plugin"
101101 data=row['StepsToReproduce'], external_id=row['Tag'], run_date=run_date)
102102
103103
104 def createPlugin():
105 return CobaltPlugin()
104 def createPlugin(ignore_info=False):
105 return CobaltPlugin(ignore_info=ignore_info)
22 Copyright (C) 2013 Infobyte LLC (http://www.infobytesec.com/)
33 See the file 'doc/LICENSE' for the license information
44 """
5 # I'm Py3
5
2424 Handle DiG (http://linux.die.net/man/1/dig) output
2525 """
2626
27 def __init__(self):
28 super().__init__()
29 self.id = u"dig"
30 self.name = u"DiG"
31 self.plugin_version = u"0.0.1"
32 self.version = u"9.9.5-3"
27 def __init__(self, *arg, **kwargs):
28 super().__init__(*arg, **kwargs)
29 self.id = "dig"
30 self.name = "DiG"
31 self.plugin_version = "0.0.1"
32 self.version = "9.9.5-3"
3333 self._command_regex = re.compile(r'^(dig)\s+.*?')
3434
3535 def parseOutputString(self, output):
140140 return True
141141
142142
143 def createPlugin():
144 return DigPlugin()
143 def createPlugin(ignore_info=False):
144 return DigPlugin(ignore_info=ignore_info)
145145
146 # I'm Py3
146
22 Copyright (C) 2016 Infobyte LLC (http://www.infobytesec.com/)
33 See the file 'doc/LICENSE' for the license information
44 """
5 # I'm Py3
5
1818
1919 class dirbPlugin(PluginBase):
2020
21 def __init__(self):
22 super().__init__()
21 def __init__(self, *arg, **kwargs):
22 super().__init__(*arg, **kwargs)
2323 self.id = "dirb"
2424 self.name = "Dirb"
2525 self.plugin_version = "0.0.1"
115115 return "%s%s" % (command_string, extra_arg)
116116
117117
118 def createPlugin():
119 return dirbPlugin()
118 def createPlugin(ignore_info=False):
119 return dirbPlugin(ignore_info=ignore_info)
120120
121 # I'm Py3
121
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
5151
5252
5353 class DirsearchPlugin(PluginBase):
54 def __init__(self):
55 super().__init__()
54
55 def __init__(self, *arg, **kwargs):
56 super().__init__(*arg, **kwargs)
5657 self.id = "dirsearch"
5758 self.name = "dirsearch"
5859 self.plugin_version = "0.0.1"
131132 return '{} --json-report {}'.format(command_string, self._output_file_path)
132133
133134
134 def createPlugin():
135 return DirsearchPlugin()
135 def createPlugin(ignore_info=False):
136 return DirsearchPlugin(ignore_info=ignore_info)
136137
137 # I'm Py3
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
149149 Example plugin to parse dnsenum output.
150150 """
151151
152 def __init__(self):
153 super().__init__()
152 def __init__(self, *arg, **kwargs):
153 super().__init__(*arg, **kwargs)
154154 self.id = "Dnsenum"
155155 self.name = "Dnsenum XML Output Plugin"
156156 self.plugin_version = "0.0.1"
196196 pass
197197
198198
199 def createPlugin():
200 return DnsenumPlugin()
201
202 # I'm Py3
199 def createPlugin(ignore_info=False):
200 return DnsenumPlugin(ignore_info=ignore_info)
201
202
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
9090 class DnsmapPlugin(PluginBase):
9191 """Example plugin to parse dnsmap output."""
9292
93 def __init__(self):
94 super().__init__()
93 def __init__(self, *arg, **kwargs):
94 super().__init__(*arg, **kwargs)
9595 self.id = "Dnsmap"
9696 self.name = "Dnsmap Output Plugin"
9797 self.plugin_version = "0.3"
136136 command_string)
137137
138138
139 def createPlugin():
140 return DnsmapPlugin()
139 def createPlugin(ignore_info=False):
140 return DnsmapPlugin(ignore_info=ignore_info)
141141
142 # I'm Py3
142
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
155155 Example plugin to parse dnsrecon output.
156156 """
157157
158 def __init__(self):
159 super().__init__()
158 def __init__(self, *arg, **kwargs):
159 super().__init__(*arg, **kwargs)
160160 self.id = "Dnsrecon"
161161 self.name = "Dnsrecon XML Output Plugin"
162162 self.plugin_version = "0.0.2"
242242 pass
243243
244244
245 def createPlugin():
246 return DnsreconPlugin()
247
248 # I'm Py3
245 def createPlugin(ignore_info=False):
246 return DnsreconPlugin(ignore_info=ignore_info)
247
248
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
6868 Example plugin to parse dnswalk output.
6969 """
7070
71 def __init__(self):
72 super().__init__()
71 def __init__(self, *arg, **kwargs):
72 super().__init__(*arg, **kwargs)
7373 self.id = "Dnswalk"
7474 self.name = "Dnswalk XML Output Plugin"
7575 self.plugin_version = "0.0.1"
112112 return True
113113
114114
115 def createPlugin():
116 return DnswalkPlugin()
115 def createPlugin(ignore_info=False):
116 return DnswalkPlugin(ignore_info=ignore_info)
117117
118 # I'm Py3
118
22 Copyright (C) 2013 Infobyte LLC (http://www.infobytesec.com/)
33 See the file 'doc/LICENSE' for the license information
44 """
5 # I'm Py3
5
247247
248248
249249 class FaradayCSVPlugin(PluginCSVFormat):
250 def __init__(self):
251 super().__init__()
250
251 def __init__(self, *arg, **kwargs):
252 super().__init__(*arg, **kwargs)
252253 self.id = "faraday_csv"
253254 self.name = "Faraday CSV Plugin"
254255 self.plugin_version = "1.0"
350351 )
351352
352353
353 def createPlugin():
354 return FaradayCSVPlugin()
354 def createPlugin(ignore_info=False):
355 return FaradayCSVPlugin(ignore_info=False)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
100100 Example plugin to parse fierce output.
101101 """
102102
103 def __init__(self):
104 super().__init__()
103 def __init__(self, *arg, **kwargs):
104 super().__init__(*arg, **kwargs)
105105 self.id = "Fierce"
106106 self.name = "Fierce Output Plugin"
107107 self.plugin_version = "0.0.1"
175175
176176
177177
178 def createPlugin():
179 return FiercePlugin()
178 def createPlugin(ignore_info=False):
179 return FiercePlugin(ignore_info=ignore_info)
180180
181 # I'm Py3
181
1313 Example plugin to parse nmap output.
1414 """
1515
16 def __init__(self):
17 super().__init__()
16 def __init__(self, *arg, **kwargs):
17 super().__init__(*arg, **kwargs)
1818 self.id = "Fortify"
1919 self.name = "Fortify XML Output Plugin"
2020 self.plugin_version = "0.0.1"
391391 return text
392392
393393
394 def createPlugin():
395 return FortifyPlugin()
396
394 def createPlugin(ignore_info=False):
395 return FortifyPlugin(ignore_info=ignore_info)
396
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
146146 print(json.dumps("No clients connected"))
147147
148148
149 # I'm Py3
149
2323 This plugin handles FruityWiFi clients.
2424 """
2525
26 def __init__(self):
27 super().__init__()
26 def __init__(self, *arg, **kwargs):
27 super().__init__(*arg, **kwargs)
2828 self.id = "fruitywifi"
2929 self.name = "FruityWiFi"
3030 self.plugin_version = "0.0.1"
126126
127127
128128
129 def createPlugin():
130 return FruityWiFiPlugin()
129 def createPlugin(ignore_info=False):
130 return FruityWiFiPlugin(ignore_info=ignore_info)
131131
132 # I'm Py3
132
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2626 Basically detects if user was able to connect to a device
2727 """
2828
29 def __init__(self):
30 super().__init__()
29 def __init__(self, *arg, **kwargs):
30 super().__init__(*arg, **kwargs)
3131 self.id = "ftp"
3232 self.name = "Ftp"
3333 self.plugin_version = "0.0.1"
7171 self._port = count_args[c - 1]
7272
7373
74 def createPlugin():
75 return CmdFtpPlugin()
74 def createPlugin(ignore_info=False):
75 return CmdFtpPlugin(ignore_info=ignore_info)
7676
77 # I'm Py3
77
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
6464 Example plugin to parse goohost output.
6565 """
6666
67 def __init__(self):
68 super().__init__()
67 def __init__(self, *arg, **kwargs):
68 super().__init__(*arg, **kwargs)
6969 self.id = "Goohost"
7070 self.name = "Goohost XML Output Plugin"
7171 self.plugin_version = "0.0.1"
128128 self.parseOutputString(command_output)
129129
130130
131 def createPlugin():
132 return GoohostPlugin()
131 def createPlugin(ignore_info=False):
132 return GoohostPlugin(ignore_info=ignore_info)
133133
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
1313
1414 class hping3(PluginBase):
1515
16 def __init__(self):
17 super().__init__()
16 def __init__(self, *arg, **kwargs):
17 super().__init__(*arg, **kwargs)
1818 self.id = "Hping3"
1919 self.name = "hping3"
2020 self.plugin_version = "0.0.1"
6767 host_id, service, protocol="tcp", ports=port, status="open")
6868
6969
70 def createPlugin():
71 return hping3()
70 def createPlugin(ignore_info=False):
71 return hping3(ignore_info=ignore_info)
7272
73 # I'm Py3
73
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
4949 Example plugin to parse hydra output.
5050 """
5151
52 def __init__(self):
53 super().__init__()
52 def __init__(self, *arg, **kwargs):
53 super().__init__(*arg, **kwargs)
5454 self.id = "Hydra"
5555 self.name = "Hydra XML Output Plugin"
5656 self.plugin_version = "0.0.1"
130130 pass
131131
132132
133 def createPlugin():
134 return HydraPlugin()
133 def createPlugin(ignore_info=False):
134 return HydraPlugin(ignore_info=ignore_info)
135135
136 # I'm Py3
136
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
212212 Example plugin to parse impact output.
213213 """
214214
215 def __init__(self):
216 super().__init__()
215 def __init__(self, *arg, **kwargs):
216 super().__init__(*arg, **kwargs)
217217 self.identifier_tag = "entities"
218218 self.id = "CoreImpact"
219219 self.name = "Core Impact XML Output Plugin"
285285 pass
286286
287287
288 def createPlugin():
289 return ImpactPlugin()
290
291
288 def createPlugin(ignore_info=False):
289 return ImpactPlugin(ignore_info=ignore_info)
290
291
22 Copyright (C) 2018 Infobyte LLC (http://www.infobytesec.com/)
33 See the file 'doc/LICENSE' for the license information
44 """
5 # I'm Py3
5
6767 Example plugin to parse Ip360 output.
6868 """
6969
70 def __init__(self):
71 super().__init__()
70 def __init__(self, *arg, **kwargs):
71 super().__init__(*arg, **kwargs)
7272 self.id = "Ip360"
7373 self.name = "Ip360 CSV Output Plugin"
7474 self.plugin_version = "0.0.1"
102102 ref=vulnerability.get("ref"))
103103
104104
105 def createPlugin():
106 return Ip360Plugin()
105 def createPlugin(ignore_info=False):
106 return Ip360Plugin(ignore_info=ignore_info)
107107
108 # I'm Py3
108
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
121121 Example plugin to parse junit output.
122122 """
123123
124 def __init__(self):
125 super().__init__()
124 def __init__(self, *arg, **kwargs):
125 super().__init__(*arg, **kwargs)
126126 self.id = "Junit"
127127 self.name = "Junit XML Output Plugin"
128128 self.plugin_version = "0.0.1"
140140 del parser
141141
142142
143 def createPlugin():
144 return JunitPlugin()
143 def createPlugin(ignore_info=False):
144 return JunitPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
220220 class LynisPlugin(PluginByExtension):
221221 """ Simple example plugin to parse lynis' lynis-report.dat file."""
222222
223 def __init__(self):
224 super().__init__()
223 def __init__(self, *arg, **kwargs):
224 super().__init__(*arg, **kwargs)
225225 self.id = "Lynis"
226226 self.name = "Lynis DAT Output Plugin"
227227 self.plugin_version = "0.4"
323323 self._parse_filename(file_path)
324324
325325
326 def createPlugin():
327 return LynisPlugin()
328
329
326 def createPlugin(ignore_info=False):
327 return LynisPlugin(ignore_info=ignore_info)
328
329
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
369369
370370 class MaltegoPlugin(PluginZipFormat):
371371
372 def __init__(self):
373 super().__init__()
372 def __init__(self, *arg, **kwargs):
373 super().__init__(*arg, **kwargs)
374374 self.identifier_tag = "maltego"
375375 self.id = "Maltego"
376376 self.name = "Maltego MTGX & MTGL Output Plugin"
511511
512512
513513
514 def createPlugin():
515 return MaltegoPlugin()
514 def createPlugin(ignore_info=False):
515 return MaltegoPlugin(ignore_info=ignore_info)
2626
2727
2828 class MbsaPlugin(PluginByExtension):
29 def __init__(self):
30 super().__init__()
29
30 def __init__(self, *arg, **kwargs):
31 super().__init__(*arg, **kwargs)
3132 self.id = "MBSA"
3233 self.name = "Microsoft Baseline Security Analyzer"
3334 self.plugin_version = "1.0.1"
112113 i += 1
113114
114115
115 def createPlugin():
116 return MbsaPlugin()
116 def createPlugin(ignore_info=False):
117 return MbsaPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
5858 Example plugin to parse medusa output.
5959 """
6060
61 def __init__(self):
62 super().__init__()
61 def __init__(self, *arg, **kwargs):
62 super().__init__(*arg, **kwargs)
6363 self.id = "Medusa"
6464 self.name = "Medusa Output Plugin"
6565 self.plugin_version = "0.0.1"
133133 pass
134134
135135
136 def createPlugin():
137 return MedusaPlugin()
136 def createPlugin(ignore_info=False):
137 return MedusaPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
324324 Example plugin to parse metasploit output.
325325 """
326326
327 def __init__(self):
328 super().__init__()
327 def __init__(self, *arg, **kwargs):
328 super().__init__(*arg, **kwargs)
329329 self.identifier_tag = ["MetasploitV4", "MetasploitV5"]
330330 self.id = "Metasploit"
331331 self.name = "Metasploit XML Output Plugin"
402402 pass
403403
404404
405 def createPlugin():
406 return MetasploitPlugin()
407
408 # I'm Py3
405 def createPlugin(ignore_info=False):
406 return MetasploitPlugin(ignore_info=ignore_info)
407
408
9191
9292
9393 class NcrackPlugin(PluginXMLFormat):
94 def __init__(self):
95 super().__init__()
94
95 def __init__(self, *arg, **kwargs):
96 super().__init__(*arg, **kwargs)
9697 self.identifier_tag = "ncrackrun"
9798 self.id = 'ncrack'
9899 self.name = 'ncrack XML Plugin'
120121 password=service_vuln['passw'])
121122
122123
123 def createPlugin():
124 return NcrackPlugin()
124 def createPlugin(ignore_info=False):
125 return NcrackPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
108108 Add a new vuln INFO if detect a new host or a new port ..
109109 """
110110
111 def __init__(self):
112 super().__init__()
111 def __init__(self, *arg, **kwargs):
112 super().__init__(*arg, **kwargs)
113113 self.id = "Ndiff"
114114 self.name = "ndiff"
115115 self.plugin_version = "0.0.1"
155155 return f"{command_string} --xml "
156156
157157
158 def createPlugin():
159 return CmdNdiffPlugin()
158 def createPlugin(ignore_info=False):
159 return CmdNdiffPlugin(ignore_info=ignore_info)
160160
161 # I'm Py3
161
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
179179 Example plugin to parse nessus output.
180180 """
181181
182 def __init__(self):
183 super().__init__()
182 def __init__(self, *arg, **kwargs):
183 super().__init__(*arg, **kwargs)
184184 self.extension = ".nessus"
185185 self.identifier_tag = "NessusClientData_v2"
186186 self.id = "Nessus"
324324 run_date=run_date)
325325
326326
327 def createPlugin():
328 return NessusPlugin()
327 def createPlugin(ignore_info=False):
328 return NessusPlugin(ignore_info=ignore_info)
22 Copyright (C) 2016 Infobyte LLC (http://www.infobytesec.com/)
33 See the file 'doc/LICENSE' for the license information
44 """
5 # I'm Py3
5
1515
1616 class NetdiscoverPlugin(PluginBase):
1717
18 def __init__(self):
19 super().__init__()
18 def __init__(self, *arg, **kwargs):
19 super().__init__(*arg, **kwargs)
2020 self.id = "Netdiscover"
2121 self.name = "netdiscover"
2222 self.plugin_version = "0.0.1"
3838
3939
4040
41 def createPlugin():
42 return NetdiscoverPlugin()
41 def createPlugin(ignore_info=False):
42 return NetdiscoverPlugin(ignore_info=ignore_info)
4343
44 # I'm Py3
44
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
184184 Example plugin to parse netsparker output.
185185 """
186186
187 def __init__(self):
188 super().__init__()
187 def __init__(self, *arg, **kwargs):
188 super().__init__(*arg, **kwargs)
189189 self.identifier_tag = "netsparker"
190190 self.id = "Netsparker"
191191 self.name = "Netsparker XML Output Plugin"
228228 del parser
229229
230230
231 def createPlugin():
232 return NetsparkerPlugin()
233
234 # I'm Py3
231 def createPlugin(ignore_info=False):
232 return NetsparkerPlugin(ignore_info=ignore_info)
233
234
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
179179 Example plugin to parse netsparkercloud output.
180180 """
181181
182 def __init__(self):
183 super().__init__()
182 def __init__(self, *arg, **kwargs):
183 super().__init__(*arg, **kwargs)
184184 self.identifier_tag = "netsparker-cloud"
185185 self.id = "NetsparkerCloud"
186186 self.name = "NetsparkerCloud XML Output Plugin"
209209 pass
210210
211211
212 def createPlugin():
213 return NetsparkerCloudPlugin()
212 def createPlugin(ignore_info=False):
213 return NetsparkerCloudPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
248248 Example plugin to parse nexpose output.
249249 """
250250
251 def __init__(self):
252 super().__init__()
251 def __init__(self, *arg, **kwargs):
252 super().__init__(*arg, **kwargs)
253253 self.identifier_tag = "NexposeReport"
254254 self.id = "NexposeFull"
255255 self.name = "Nexpose XML 2.0 Report Plugin"
324324 pass
325325
326326
327 def createPlugin():
328 return NexposeFullPlugin()
329
330 # I'm Py3
327 def createPlugin(ignore_info=False):
328 return NexposeFullPlugin(ignore_info=ignore_info)
329
330
2121
2222
2323 class CmdNextNetin(PluginBase):
24 def __init__(self):
25 super().__init__()
24
25 def __init__(self, *arg, **kwargs):
26 super().__init__(*arg, **kwargs)
2627 self.id = "nextnet"
2728 self.name = "nextnet"
2829 self.plugin_version = "0.0.1"
6364 return True
6465
6566
66 def createPlugin():
67 return CmdNextNetin()
67 def createPlugin(ignore_info=False):
68 return CmdNextNetin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
246246 Example plugin to parse nikto output.
247247 """
248248
249 def __init__(self):
250 super().__init__()
249 def __init__(self, *arg, **kwargs):
250 super().__init__(*arg, **kwargs)
251251 self.identifier_tag = "niktoscan"
252252 self.id = "Nikto"
253253 self.name = "Nikto XML Output Plugin"
257257 self.parent = None
258258 self._use_temp_file = True
259259 self._temp_file_extension = "xml"
260 self.xml_arg_re = re.compile(r"^.*(-output\s*[^\s]+).*$")
260 self.xml_alrg_re = re.compile(r"^.*(-output\s*[^\s]+).*$")
261261 self._command_regex = re.compile(
262262 r'^(sudo nikto|nikto|sudo nikto\.pl|nikto\.pl|perl nikto\.pl|\.\/nikto\.pl|\.\/nikto)\s+.*?')
263263 self._completition = {
363363 pass
364364
365365
366 def createPlugin():
367 return NiktoPlugin()
368
369 # I'm Py3
366 def createPlugin(ignore_info=False):
367 return NiktoPlugin(ignore_info=ignore_info)
368
369
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
430430 Example plugin to parse nmap output.
431431 """
432432
433 def __init__(self):
434 super().__init__()
433 def __init__(self, *arg, **kwargs):
434 super().__init__(*arg, **kwargs)
435435 self.identifier_tag = "nmaprun"
436436 self.id = "Nmap"
437437 self.name = "Nmap XML Output Plugin"
549549 r"-oX %s" % self._output_file_path,
550550 command_string)
551551
552 def createPlugin():
553 return NmapPlugin()
554
555 # I'm Py3
552 def createPlugin(ignore_info=False):
553 return NmapPlugin(ignore_info=ignore_info)
554
555
3030 and adds the information to Faraday.
3131 """
3232
33 def __init__(self):
34 super().__init__()
33 def __init__(self, *arg, **kwargs):
34 super().__init__(*arg, **kwargs)
3535 self.id = "nuclei"
3636 self.name = "Nuclei"
3737 self.plugin_version = "0.1"
9999 external_id=info_vuln.get('template', ""))
100100
101101
102 def createPlugin():
103 return NucleiPlugin()
102 def createPlugin(ignore_info=False):
103 return NucleiPlugin(ignore_info=ignore_info)
104104
105105
125125
126126
127127 class OpenScapPlugin(PluginXMLFormat):
128 def __init__(self):
129 super().__init__()
128
129 def __init__(self, *arg, **kwargs):
130 super().__init__(*arg, **kwargs)
130131 self.identifier_tag = "Benchmark"
131132 self.id = 'OpenScap'
132133 self.name = 'OpenScap XML Output Plugin'
209210 run_date=vuln_run_date)
210211
211212
212 def createPlugin():
213 return OpenScapPlugin()
213 def createPlugin(ignore_info=False):
214 return OpenScapPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
319319 Example plugin to parse openvas output.
320320 """
321321
322 def __init__(self):
323 super().__init__()
322 def __init__(self, *arg, **kwargs):
323 super().__init__(*arg, **kwargs)
324324 self.identifier_tag = ["report", "get_results_response"]
325325 self.id = "Openvas"
326326 self.name = "Openvas XML Output Plugin"
446446 pass
447447
448448
449 def createPlugin():
450 return OpenvasPlugin()
451
452 # I'm Py3
449 def createPlugin(ignore_info=False):
450 return OpenvasPlugin(ignore_info=ignore_info)
451
452
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2020
2121 class pasteAnalyzerPlugin(PluginBase):
2222
23 def __init__(self):
24 super().__init__()
23 def __init__(self, *arg, **kwargs):
24 super().__init__(*arg, **kwargs)
2525 self.id = "pasteAnalyzer"
2626 self.name = "pasteAnalyzer JSON Output Plugin"
2727 self.plugin_version = "1.0.0"
8585 return command_string
8686
8787
88 def createPlugin():
89 return pasteAnalyzerPlugin()
88 def createPlugin(ignore_info=False):
89 return pasteAnalyzerPlugin(ignore_info=ignore_info)
9090
91 # I'm Py3
91
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2424 Handle PeepingTom (https://bitbucket.org/LaNMaSteR53/peepingtom) output
2525 """
2626
27 def __init__(self):
28 super().__init__()
27 def __init__(self, *arg, **kwargs):
28 super().__init__(*arg, **kwargs)
2929 self.id = "peepingtom"
3030 self.name = "PeepingTom"
3131 self.plugin_version = "0.0.1"
7070 self._path = current_path
7171
7272
73 def createPlugin():
74 return PeepingTomPlugin()
73 def createPlugin(ignore_info=False):
74 return PeepingTomPlugin(ignore_info=ignore_info)
7575
76 # I'm Py3
76
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2222 Basically detects if user was able to connect to a device
2323 """
2424
25 def __init__(self):
26 super().__init__()
25 def __init__(self, *arg, **kwargs):
26 super().__init__(*arg, **kwargs)
2727 self.id = "ping"
2828 self.name = "Ping"
2929 self.plugin_version = "0.0.1"
4848
4949
5050
51 def createPlugin():
52 return CmdPingPlugin()
51 def createPlugin(ignore_info=False):
52 return CmdPingPlugin(ignore_info=ignore_info)
5353
5454
55 # I'm Py3
55
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2323 Basically inserts into the tree the ouput of this tool
2424 """
2525
26 def __init__(self):
27 super().__init__()
26 def __init__(self, *arg, **kwargs):
27 super().__init__(*arg, **kwargs)
2828 self.id = "propecia"
2929 self.name = "propecia port scanner"
3030 self.plugin_version = "0.0.1"
6060 self._port = count_args[2]
6161
6262
63 def createPlugin():
64 return CmdPropeciaPlugin()
63 def createPlugin(ignore_info=False):
64 return CmdPropeciaPlugin(ignore_info=ignore_info)
6565
66 # I'm Py3
66
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
334334 Example plugin to parse qualysguard output.
335335 """
336336
337 def __init__(self):
338 super().__init__()
337 def __init__(self, *arg, **kwargs):
338 super().__init__(*arg, **kwargs)
339339 self.identifier_tag = ["ASSET_DATA_REPORT", "SCAN"]
340340 self.id = 'Qualysguard'
341341 self.name = 'Qualysguard XML Output Plugin'
418418 pass
419419
420420
421 def createPlugin():
422 return QualysguardPlugin()
423
424
421 def createPlugin(ignore_info=False):
422 return QualysguardPlugin(ignore_info=ignore_info)
423
424
100100
101101
102102 class QualysWebappPlugin(PluginXMLFormat):
103 def __init__(self):
104 super().__init__()
103
104 def __init__(self, *arg, **kwargs):
105 super().__init__(*arg, **kwargs)
105106 self.identifier_tag = ["WAS_SCAN_REPORT"]
106107 self.id = 'QualysWebapp'
107108 self.name = 'QualysWebapp XML Output Plugin'
174175 external_id=vuln_scan_id, data=vuln_data_add)
175176
176177
177 def createPlugin():
178 return QualysWebappPlugin()
178 def createPlugin(ignore_info=False):
179 return QualysWebappPlugin(ignore_info=ignore_info)
66
77 class RDPScanPlugin(PluginBase):
88
9 def __init__(self):
10 super().__init__()
9 def __init__(self, *arg, **kwargs):
10 super().__init__(*arg, **kwargs)
1111 self.identifier_tag = "rdpscan"
1212 self.id = "rdpscan"
1313 self.name = "rdpscan"
4242 )
4343
4444
45 def createPlugin():
46 return RDPScanPlugin()
45 def createPlugin(ignore_info=False):
46 return RDPScanPlugin(ignore_info=ignore_info)
127127 Example plugin to parse qualysguard output.
128128 """
129129
130 def __init__(self):
131 super().__init__()
130 def __init__(self, *arg, **kwargs):
131 super().__init__(*arg, **kwargs)
132132 self.identifier_tag = "reconng"
133133 self.id = 'Reconng'
134134 self.name = 'Reconng XML Output Plugin'
170170
171171
172172
173 def createPlugin():
174 return ReconngPlugin()
173 def createPlugin(ignore_info=False):
174 return ReconngPlugin(ignore_info=ignore_info)
175175
176 # I'm Py3
176
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
171171 Example plugin to parse retina output.
172172 """
173173
174 def __init__(self):
175 super().__init__()
174 def __init__(self, *arg, **kwargs):
175 super().__init__(*arg, **kwargs)
176176 self.identifier_tag = "scanJob"
177177 self.id = "Retina"
178178 self.name = "Retina XML Output Plugin"
226226 pass
227227
228228
229 def createPlugin():
230 return RetinaPlugin()
231
232 # I'm Py3
229 def createPlugin(ignore_info=False):
230 return RetinaPlugin(ignore_info=ignore_info)
231
232
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
4848 Example plugin to parse reverseraider output.
4949 """
5050
51 def __init__(self):
52 super().__init__()
51 def __init__(self, *arg, **kwargs):
52 super().__init__(*arg, **kwargs)
5353 self.id = "Reverseraider"
5454 self.name = "Reverseraider XML Output Plugin"
5555 self.plugin_version = "0.0.1"
7777
7878
7979
80 def createPlugin():
81 return ReverseraiderPlugin()
80 def createPlugin(ignore_info=False):
81 return ReverseraiderPlugin(ignore_info=ignore_info)
8282
83 # I'm Py3
83
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
110110 Example plugin to parse skipfish output.
111111 """
112112
113 def __init__(self):
114 super().__init__()
113 def __init__(self, *arg, **kwargs):
114 super().__init__(*arg, **kwargs)
115115 self.id = "Skipfish"
116116 self.name = "Skipfish Output Plugin"
117117 self.plugin_version = "0.0.2"
217217 pass
218218
219219
220 def createPlugin():
221 return SkipfishPlugin()
222
223 # I'm Py3
220 def createPlugin(ignore_info=False):
221 return SkipfishPlugin(ignore_info=ignore_info)
222
223
4444 and adds the information to Faraday.
4545 """
4646
47 def __init__(self):
48 super().__init__()
47 def __init__(self, *arg, **kwargs):
48 super().__init__(*arg, **kwargs)
4949 self.id = "sourceclear"
5050 self.name = "Sourceclear"
5151 self.plugin_version = "0.1"
8181 website=v_website)
8282
8383
84 def createPlugin():
85 return SourceclearPlugin()
84 def createPlugin(ignore_info=False):
85 return SourceclearPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2121 using --batch and --batch-template; supports --username and --password
2222 """
2323
24 def __init__(self):
25 super().__init__()
24 def __init__(self, *arg, **kwargs):
25 super().__init__(*arg, **kwargs)
2626 self.id = "sshdefaultscan"
2727 self.name = "sshdefaultscan"
2828 self.plugin_version = "0.0.1"
6565 return None
6666
6767
68 def createPlugin():
69 return SSHDefaultScanPlugin()
68 def createPlugin(ignore_info=False):
69 return SSHDefaultScanPlugin(ignore_info=ignore_info)
7070
71 # I'm Py3
71
6666 and adds the information to Faraday.
6767 """
6868
69 def __init__(self):
70 super().__init__()
69 def __init__(self, *arg, **kwargs):
70 super().__init__(*arg, **kwargs)
7171 self.id = "ssllabs"
7272 self.name = "SSL Labs"
7373 self.plugin_version = "0.1"
109109 data=vuln['data'])
110110
111111
112 def createPlugin():
113 return SslLabsPlugin()
112 def createPlugin(ignore_info=False):
113 return SslLabsPlugin(ignore_info=ignore_info)
8383
8484 class SslyzePlugin(PluginXMLFormat):
8585
86 def __init__(self):
87 super().__init__()
86 def __init__(self, *arg, **kwargs):
87 super().__init__(*arg, **kwargs)
8888 self.identifier_tag = "document"
89 self.id = "Sslyze XML"
89 self.id = "Sslyze_XML"
9090 self.name = "Sslyze Plugin"
9191 self.plugin_version = "0.0.1"
9292 self.version = "2.0.6"
167167 severity="medium")
168168
169169
170 def createPlugin():
171 return SslyzePlugin()
170 def createPlugin(ignore_info=False):
171 return SslyzePlugin(ignore_info=ignore_info)
161161
162162 class SslyzePlugin(PluginJsonFormat):
163163
164 def __init__(self):
165 super().__init__()
166 self.id = "Sslyze JSON"
164 def __init__(self, *arg, **kwargs):
165 super().__init__(*arg, **kwargs)
166 self.id = "Sslyze_JSON"
167167 self.name = "Sslyze Json"
168168 self.plugin_version = "0.1"
169169 self.version = "3.4.5"
170170 self.json_keys = {'server_scan_results', 'sslyze_url'}
171171 self._command_regex = re.compile(r'^(sudo sslyze|sslyze|\.\/sslyze)\s+.*?')
172172 self.json_arg_re = re.compile(r"^.*(--json_out\s*[^\s]+).*$")
173 self._use_temp_file = True
174 self._temp_file_extension = "json"
173175
174176 def parseOutputString(self, output):
175177 parser = SslyzeJsonParser(output)
241243 command_string)
242244
243245
244 def createPlugin():
245 return SslyzePlugin()
246
246 def createPlugin(ignore_info=False):
247 return SslyzePlugin(ignore_info=ignore_info)
248
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2323 Basically detects if user was able to connect to a device
2424 """
2525
26 def __init__(self):
27 super().__init__()
26 def __init__(self, *arg, **kwargs):
27 super().__init__(*arg, **kwargs)
2828 self.id = "Telnet"
2929 self.name = "Telnet"
3030 self.plugin_version = "0.0.1"
7676 self._port = count_args[c - 1]
7777
7878
79 def createPlugin():
80 return TelnetRouterPlugin()
79 def createPlugin(ignore_info=False):
80 return TelnetRouterPlugin(ignore_info=ignore_info)
8181
82 # I'm Py3
82
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
7272 Example plugin to parse theharvester output.
7373 """
7474
75 def __init__(self):
76 super().__init__()
75 def __init__(self, *arg, **kwargs):
76 super().__init__(*arg, **kwargs)
7777 self.id = "Theharvester"
7878 self.name = "Theharvester XML Output Plugin"
7979 self.plugin_version = "0.0.1"
114114
115115
116116
117 def createPlugin():
118 return TheharvesterPlugin()
117 def createPlugin(ignore_info=False):
118 return TheharvesterPlugin(ignore_info=ignore_info)
119119
120120
121 # I'm Py3
121
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
1515
1616 class traceroutePlugin(PluginBase):
1717
18 def __init__(self):
19 super().__init__()
18 def __init__(self, *arg, **kwargs):
19 super().__init__(*arg, **kwargs)
2020 self.id = "Traceroute"
2121 self.name = "Traceroute"
2222 self.plugin_version = "1.0.0"
5555 return None
5656
5757
58 def createPlugin():
59 return traceroutePlugin()
58 def createPlugin(ignore_info=False):
59 return traceroutePlugin(ignore_info=ignore_info)
6060
61 # I'm Py3
61
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
207207 Example plugin to parse w3af output.
208208 """
209209
210 def __init__(self):
211 super().__init__()
210 def __init__(self, *arg, **kwargs):
211 super().__init__(*arg, **kwargs)
212212 self.identifier_tag = ["w3af-run", "w3afrun"]
213213 self.id = "W3af"
214214 self.name = "W3af XML Output Plugin"
240240
241241
242242
243 def createPlugin():
244 return W3afPlugin()
245
246 # I'm Py3
243 def createPlugin(ignore_info=False):
244 return W3afPlugin(ignore_info=ignore_info)
245
246
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
223223 Example plugin to parse wapiti output.
224224 """
225225
226 def __init__(self):
227 super().__init__()
226 def __init__(self, *arg, **kwargs):
227 super().__init__(*arg, **kwargs)
228228 self.identifier_tag = "report"
229229 self.id = "Wapiti"
230230 self.name = "Wapiti XML Output Plugin"
345345 pass
346346
347347
348 def createPlugin():
349 return WapitiPlugin()
350
351 # I'm Py3
348 def createPlugin(ignore_info=False):
349 return WapitiPlugin(ignore_info=ignore_info)
350
351
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
6969 Example plugin to parse wcscan output.
7070 """
7171
72 def __init__(self):
73 super().__init__()
72 def __init__(self, *arg, **kwargs):
73 super().__init__(*arg, **kwargs)
7474 self.id = "Wcscan"
7575 self.name = "Wcscan XML Output Plugin"
7676 self.plugin_version = "0.0.2"
132132 return re.sub(arg_match.group(1), r"-xml %s" % self._output_file_path, command_string)
133133
134134
135 def createPlugin():
136 return WcscanPlugin()
135 def createPlugin(ignore_info=False):
136 return WcscanPlugin(ignore_info=ignore_info)
137137
138 # I'm Py3
138
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
7272 Example plugin to parse webfuzzer output.
7373 """
7474
75 def __init__(self):
76 super().__init__()
75 def __init__(self, *arg, **kwargs):
76 super().__init__(*arg, **kwargs)
7777 self.id = "Webfuzzer"
7878 self.name = "Webfuzzer Output Plugin"
7979 self.plugin_version = "0.0.2"
134134 self._output_path = current_path + "/" + self.host + ".txt"
135135
136136
137 def createPlugin():
138 return WebfuzzerPlugin()
137 def createPlugin(ignore_info=False):
138 return WebfuzzerPlugin(ignore_info=ignore_info)
139139
140 # I'm Py3
140
116116 This plugin handles WebInspect reports.
117117 """
118118
119 def __init__(self):
120 super().__init__()
119 def __init__(self, *arg, **kwargs):
120 super().__init__(*arg, **kwargs)
121121 self.id = "Webinspect"
122122 self.name = "Webinspect"
123123 self.plugin_version = "0.0.1"
152152 )
153153
154154
155 def createPlugin(ignore_info=False):
156 return WebInspectPlugin(ignore_info=ignore_info)
155157
156
157 def createPlugin():
158 return WebInspectPlugin()
159
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
66
77 class WfuzzPlugin(PluginBase):
88
9 def __init__(self):
10 super().__init__()
9 def __init__(self, *arg, **kwargs):
10 super().__init__(*arg, **kwargs)
1111 self.id = "Wfuzz"
1212 self.name = "Wfuzz Plugin"
1313 self.plugin_version = "0.0.1"
8383 path=path)
8484
8585
86 def createPlugin():
87 return WfuzzPlugin()
86 def createPlugin(ignore_info=False):
87 return WfuzzPlugin(ignore_info=ignore_info)
8888
89 # I'm Py3
89
4949
5050 class WhatWebPlugin(PluginJsonFormat):
5151
52 def __init__(self):
53 super().__init__()
52 def __init__(self, *arg, **kwargs):
53 super().__init__(*arg, **kwargs)
5454 self.id = "whatweb"
5555 self.name = "WhatWebPlugin"
5656 self.plugin_version = "0.1"
7373 description=desc)
7474
7575
76 def createPlugin():
77 return WhatWebPlugin()
76 def createPlugin(ignore_info=False):
77 return WhatWebPlugin(ignore_info=ignore_info)
2121
2222
2323 class WhitesourcePlugin(PluginJsonFormat):
24 def __init__(self):
25 super().__init__()
24
25 def __init__(self, *arg, **kwargs):
26 super().__init__(*arg, **kwargs)
2627 self.id = "whitesource"
2728 self.name = "whitesource"
2829 self.plugin_version = "0.1"
9293 )
9394
9495
95
96
97
98 def createPlugin():
99 return WhitesourcePlugin()
96 def createPlugin(ignore_info=False):
97 return WhitesourcePlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
2626 Basically detects if user was able to connect to a device
2727 """
2828
29 def __init__(self):
30 super().__init__()
29 def __init__(self, *arg, **kwargs):
30 super().__init__(*arg, **kwargs)
3131 self.id = "whois"
3232 self.name = "Whois"
3333 self.plugin_version = "0.0.1"
125125 return True
126126
127127
128 def createPlugin():
129 return CmdWhoisPlugin()
128 def createPlugin(ignore_info=False):
129 return CmdWhoisPlugin(ignore_info=ignore_info)
4848 and adds the information to Faraday.
4949 """
5050
51 def __init__(self):
52 super().__init__()
51 def __init__(self, *arg, **kwargs):
52 super().__init__(*arg, **kwargs)
5353 self.id = "wpscan"
5454 self.name = "WPscan"
5555 self.plugin_version = "0.2"
9090 severity='unclassified')
9191
9292
93 def createPlugin():
94 return WPScanPlugin()
93 def createPlugin(ignore_info=False):
94 return WPScanPlugin(ignore_info=ignore_info)
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
154154 Example plugin to parse x1 output.
155155 """
156156
157 def __init__(self):
158 super().__init__()
157 def __init__(self, *arg, **kwargs):
158 super().__init__(*arg, **kwargs)
159159 self.identifier_tag = ["session", "landscapePolicy"]
160160 self.id = "X1"
161161 self.name = "Onapsis X1 XML Output Plugin"
192192 pass
193193
194194
195 def createPlugin():
196 return X1Plugin()
195 def createPlugin(ignore_info=False):
196 return X1Plugin(ignore_info=ignore_info)
197197
198 # I'm Py3
198
33 See the file 'doc/LICENSE' for the license information
44
55 """
6 # I'm Py3
6
1515
1616 class xsssniper(PluginBase):
1717
18 def __init__(self):
19 super().__init__()
18 def __init__(self, *arg, **kwargs):
19 super().__init__(*arg, **kwargs)
2020 self.id = "xsssniper"
2121 self.name = "xsssniper"
2222 self.plugin_version = "0.0.1"
5454 params=''.join(parametro), request='', response='')
5555
5656
57 def createPlugin():
58 return xsssniper()
57 def createPlugin(ignore_info=False):
58 return xsssniper(ignore_info=ignore_info)
5959
60 # I'm Py3
60
233233 Example plugin to parse zap output.
234234 """
235235
236 def __init__(self):
237 super().__init__()
236 def __init__(self, *arg, **kwargs):
237 super().__init__(*arg, **kwargs)
238238 self.identifier_tag = "OWASPZAPReport"
239239 self.id = "Zap"
240240 self.name = "Zap XML Output Plugin"
286286 pass
287287
288288
289 def createPlugin():
290 return ZapPlugin()
289 def createPlugin(ignore_info=False):
290 return ZapPlugin(ignore_info=ignore_info)