diff --git a/README.md b/README.md index aaba3a5..c3bd36b 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Currently Supports - [X] [Qualys Vulnerability Management](https://www.qualys.com/apps/vulnerability-management/) - [X] [OpenVAS](http://www.openvas.org/) - [X] [Tenable.io](https://www.tenable.com/products/tenable-io) +- [ ] [Detectify](https://detectify.com/) - [ ] [Nexpose](https://www.rapid7.com/products/nexpose/) - [ ] [Insight VM](https://www.rapid7.com/products/insightvm/) - [ ] [NMAP](https://nmap.org/) @@ -176,6 +177,8 @@ or vuln_whisperer -c configs/frameworks_example.ini -s qualys ``` +If no section is specified (e.g. -s nessus), vulnwhisperer will check on the config file for the modules that have the property enabled=true and run them sequentially. +

Next you'll need to import the visualizations into Kibana and setup your logstash config. A more thorough README is underway with setup instructions. diff --git a/bin/vuln_whisperer b/bin/vuln_whisperer index 5c4645e..ee77ab6 100644 --- a/bin/vuln_whisperer +++ b/bin/vuln_whisperer @@ -5,6 +5,7 @@ __author__ = 'Austin Taylor' from vulnwhisp.vulnwhisp import vulnWhisperer from vulnwhisp.utils.cli import bcolors +from vulnwhisp.base.config import vwConfig import os import argparse import sys @@ -31,10 +32,25 @@ def main(): try: if args.config and not args.section: - print('{red} ERROR: {error}{endc}'.format(red=bcolors.FAIL, - error='Please specify a section using -s. \ + + print('{yellow}WARNING: {warning}{endc}'.format(yellow=bcolors.WARNING, + warning='No section was specified, vulnwhisperer will scrape enabled modules from config file. \ + \nPlease specify a section using -s. \ \nExample vuln_whisperer -c config.ini -s nessus', endc=bcolors.ENDC)) + config = vwConfig(config_in=args.config) + enabled_sections = config.get_enabled() + + for section in enabled_sections: + vw = vulnWhisperer(config=args.config, + profile=section, + verbose=args.verbose, + username=args.username, + password=args.password) + + vw.whisper_vulnerabilities() + sys.exit(1) + else: vw = vulnWhisperer(config=args.config, profile=args.section, @@ -52,4 +68,4 @@ def main(): if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/vulnwhisp/base/config.py b/vulnwhisp/base/config.py index 3a7d40d..3adacb1 100644 --- a/vulnwhisp/base/config.py +++ b/vulnwhisp/base/config.py @@ -19,4 +19,12 @@ class vwConfig(object): return self.config.get(section, option) def getbool(self, section, option): - return self.config.getboolean(section, option) \ No newline at end of file + return self.config.getboolean(section, option) + + def get_enabled(self): + enabled = [] + check = ["true", "True", "1"] + for section in self.config.sections(): + if self.get(section, "enabled") in check: + enabled.append(section) + return enabled