{"id":19723992,"url":"https://github.com/vs4vijay/scanmaster","last_synced_at":"2025-04-29T22:31:12.453Z","repository":{"id":41886362,"uuid":"201908247","full_name":"vs4vijay/ScanMaster","owner":"vs4vijay","description":"A security tool designed to perform thorough scans on a target using OpenVAS, Zap, and Nexpose. It seamlessly consolidates and integrates the scan results, providing a comprehensive overview of the security vulnerabilities identified.","archived":false,"fork":false,"pushed_at":"2025-04-17T00:11:55.000Z","size":2240,"stargazers_count":44,"open_issues_count":84,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-17T13:17:49.362Z","etag":null,"topics":["application-security","cli","nexpose","openvas","openvas-cli","openvas-reports","owasp","owasp-top","owasp-zap","security-audit","security-scanner","security-testing","security-tools","security-vulnerability","web-application-security","zap"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vs4vijay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-12T10:25:21.000Z","updated_at":"2025-04-14T19:06:33.000Z","dependencies_parsed_at":"2023-10-01T16:43:14.981Z","dependency_job_id":"6adbe03e-4aaf-4e65-9117-e4de4f6eb74a","html_url":"https://github.com/vs4vijay/ScanMaster","commit_stats":null,"previous_names":["vs4vijay/scanmaster","vs4vijay/multiscanner"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vs4vijay%2FScanMaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vs4vijay%2FScanMaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vs4vijay%2FScanMaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vs4vijay%2FScanMaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vs4vijay","download_url":"https://codeload.github.com/vs4vijay/ScanMaster/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251593007,"owners_count":21614455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["application-security","cli","nexpose","openvas","openvas-cli","openvas-reports","owasp","owasp-top","owasp-zap","security-audit","security-scanner","security-testing","security-tools","security-vulnerability","web-application-security","zap"],"created_at":"2024-11-11T23:24:09.405Z","updated_at":"2025-04-29T22:31:10.889Z","avatar_url":"https://github.com/vs4vijay.png","language":"Python","readme":"# ScanMaster\n\nA security tool designed to perform thorough scans on a target using OpenVAS, Zap, and Nexpose. It seamlessly consolidates and integrates the scan results, providing a comprehensive overview of the security vulnerabilities identified.\n\n---\n\n## Usage\n\n### Start a scan against a Target\n\n`./main.py --scan-name \u003cscan-name\u003e --target \u003curl\u003e`\n\n\n### Get scan result\n\n`./main.py --scan-name \u003cscan-name\u003e`\n\n\n### Pause/Resume a scan result\n\n- `./main.py --scan-name \u003cscan-name\u003e --pause`\n- `./main.py --scan-name \u003cscan-name\u003e --resume`\n\n---\n\n## Screenshots\n\nScanner Options:\n\n![Scanner Options](/screenshots/screenshot_0.png)\n\nScanner Report:\n\n![Scanner Report](/screenshots/screenshot_1.png)\n\nFinal Output:\n\n![Final Output](/screenshots/screenshot_2.png)\n\n---\n\n## Prerequisites\n\n- Python 3\n- Zap\n- Nexpose\n- OpenVAS\n\n---\n\n## Installation\n\n`pip3 install -r requirements.txt`\n\nOR\n\nRun in Virtual Env:\n\n```console\npython3 -m venv .venv\n\nsource .venv/bin/activate\n\npip3 install -r requirements.txt\n```\n\n---\n\n## Configuration\n\nThe configuration of scanners will be in Environment File `.env`. There is sample `.env.example` file in the codebase, update the values with the proper API Keys and Credentials details before using. Rename it to `.env`.\n\n---\n\n## Targets to Test\n- http://scanme.nmap.org\n- http://webscantest.com\n\n---\n\n## ToDo\n- [ ] Dockerize\n- [ ] Add Nessus\n- [ ] Error Stack\n- [ ] auto reload\n- [ ] Remove logs\n- [ ] Save to CSV\n- [ ] Make it interactive\n- [ ] OOPs\n- [ ] Improve Scan Results and Output\n- [ ] Color logging\n\n---\n\n### Scanner Interface:\n\n- start\n- scan\n- get_scan_status\n- get_scan_results\n- is_valid_scan\n- list_scans\n- pause\n- resume\n- stop\n\n\n### Development Notes\n\n```python3\n\n        pprint(core.htmlreport())\n\n\n        # address = rapid7vmconsole.Address(ip=target)\n        # asset = rapid7vmconsole.Asset(addresses=[address])\n\n\n        scan_targets = rapid7vmconsole.IncludedScanTargets(addresses=[target])\n\n        asset = rapid7vmconsole.StaticSite(included_targets=scan_targets)\n\n        scan_scope = rapid7vmconsole.ScanScope(assets=asset)\n\n        site_create_resource = rapid7vmconsole.SiteCreateResource(name=scan_name, scan=scan_scope)\n\n        site = self.nexpose_site.create_site(site=site_create_resource)\n\n        print('Site Created', site)\n\n        adhoc_scan = rapid7vmconsole.AdhocScan(hosts=[target])\n        print('adhoc_scan', adhoc_scan)\n\n        site_id = site.id\n\n        scan = self.nexpose.start_scan(site_id, scan=adhoc_scan)\n        print('start scan response id', scan.id)\n        # scan['vulnerabilities']\n        pprint(scan)\n\nif shutdownOnceFinished:\n    # Shutdown ZAP once finished\n    pprint('Shutdown ZAP -\u003e ' + core.shutdown())\n\nreport_config_scope = rapid7vmconsole.ReportConfigScopeResource(scan=nexpose_id)\n\nreport_config_categories = rapid7vmconsole.ReportConfigCategoryFilters(included=[])\n\nreport_config_filters = rapid7vmconsole.ReportConfigFiltersResource(categories=report_config_categories)\n\nreport_config = rapid7vmconsole.Report(name=f'{scan_name}-Report', template='audit-report', format='csv-export', scope=report_config_scope)\n\n        report_config = rapid7vmconsole.Report(name=f'{scan_name}-Report', format='sql-query', query='select * from dim_asset', version='2.3.0')\n\nreport_config = rapid7vmconsole.Report(name=f'{scan_name}-SampleXML-Report', format='nexpose-simple-xml', scope=report_config_scope)\nreport = nexpose_report.create_report(report=report_config)\nreport_instance = nexpose_report.generate_report(report.id)\nnexpose_report.download_report(report.id, report_instance.id)\n\n\n\nreport_config = rapid7vmconsole.Report(name=f'{scan_name}-sml2-Report', format='xml-export-v2', scope=report_config_scope)\nreport = nexpose_report.create_report(report=report_config)\nreport_instance = nexpose_report.generate_report(report.id)\ndd = nexpose_report.download_report(report.id, report_instance.id)\n\n\nreport_config = rapid7vmconsole.Report(name=f'{scan_name}-html-Report', format='html', template='audit-report', scope=report_config_scope)\nreport = nexpose_report.create_report(report=report_config)\nreport_instance = nexpose_report.generate_report(report.id)\ndd = nexpose_report.download_report(report.id, report_instance.id)\n\n\nreport_config.id = 42\nreport_config.timezone = 'Asia/Calcutta'\n\nreport_config.language = 'en-US'\nreport_config.owner = 1\nreport_config.organization = 'Organization'\n\n# report_config.component = 'Component'\n# report_config.email = rapid7vmconsole.ReportEmail(additional_recipients=['asd@asd.asd'])\n\n\n# print('self.zap.spider.results', self.zap.spider.results(scan_id))\n\n\n\n\n# Retrieve all tasks\ntasks = gmp.get_tasks()\n\n# Get names of tasks\ntask_names = tasks.xpath('task/name/text()')\npretty_print(task_names)\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvs4vijay%2Fscanmaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvs4vijay%2Fscanmaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvs4vijay%2Fscanmaster/lists"}