secator 0.16.4__tar.gz → 0.16.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of secator might be problematic. Click here for more details.
- {secator-0.16.4 → secator-0.16.5}/CHANGELOG.md +9 -0
- {secator-0.16.4 → secator-0.16.5}/PKG-INFO +1 -1
- {secator-0.16.4 → secator-0.16.5}/cloudbuild.yaml +4 -2
- {secator-0.16.4 → secator-0.16.5}/pyproject.toml +1 -1
- {secator-0.16.4 → secator-0.16.5}/secator/celery.py +8 -3
- {secator-0.16.4 → secator-0.16.5}/secator/hooks/gcs.py +4 -2
- {secator-0.16.4 → secator-0.16.5}/secator/hooks/mongodb.py +8 -3
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/_categories.py +14 -0
- {secator-0.16.4 → secator-0.16.5}/.coderabbit.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/.docker/Dockerfile.alpine +0 -0
- {secator-0.16.4 → secator-0.16.5}/.docker/Dockerfile.arch +0 -0
- {secator-0.16.4 → secator-0.16.5}/.docker/Dockerfile.debian +0 -0
- {secator-0.16.4 → secator-0.16.5}/.docker/Dockerfile.kali +0 -0
- {secator-0.16.4 → secator-0.16.5}/.docker/Dockerfile.osx +0 -0
- {secator-0.16.4 → secator-0.16.5}/.docker/Dockerfile.ubuntu +0 -0
- {secator-0.16.4 → secator-0.16.5}/.docker/build_all.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/.dockerignore +0 -0
- {secator-0.16.4 → secator-0.16.5}/.flake8 +0 -0
- {secator-0.16.4 → secator-0.16.5}/.gitignore +0 -0
- {secator-0.16.4 → secator-0.16.5}/CONTRIBUTING.md +0 -0
- {secator-0.16.4 → secator-0.16.5}/Dockerfile +0 -0
- {secator-0.16.4 → secator-0.16.5}/LICENSE +0 -0
- {secator-0.16.4 → secator-0.16.5}/README.md +0 -0
- {secator-0.16.4 → secator-0.16.5}/SECURITY.md +0 -0
- {secator-0.16.4 → secator-0.16.5}/helm/.helmignore +0 -0
- {secator-0.16.4 → secator-0.16.5}/helm/Chart.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/helm/templates/redis-service.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/helm/templates/redis.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/helm/templates/secator-manager.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/helm/templates/secator-worker.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/helm/values.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/download_cves.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/generate_tools_md_table.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/install.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/install_asciinema.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/install_go.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/install_ruby.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/msf/exploit_cve.rc +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/msf/ftp_anonymous.rc +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/msf/ftp_version.rc +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/msf/ftp_vsftpd_234_backdoor.rc +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/msf/redis.rc +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/stories/STORY.md +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/stories/aliases.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/stories/demo.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/stories/fmt.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/stories/input.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/stories/pipe.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/stories/short_demo.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/scripts/update_tools.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/.gitignore +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/celery_signals.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/celery_utils.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/cli.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/cli_helper.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/click.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/config.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/aggressive.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/http_headless.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/http_record.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/insane.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/paranoid.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/polite.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/sneaky.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/profiles/tor.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/scans/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/scans/domain.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/scans/host.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/scans/network.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/scans/subdomain.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/scans/url.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/cidr_recon.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/code_scan.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/host_recon.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/subdomain_recon.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/url_bypass.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/url_crawl.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/url_dirsearch.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/url_fuzz.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/url_params_fuzz.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/url_vuln.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/user_hunt.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/configs/workflows/wordpress.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/cve.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/decorators.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/definitions.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/exporters/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/exporters/_base.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/exporters/console.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/exporters/csv.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/exporters/gdrive.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/exporters/json.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/exporters/table.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/exporters/txt.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/hooks/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/installer.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/loader.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/_base.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/certificate.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/error.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/exploit.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/info.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/ip.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/port.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/progress.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/record.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/stat.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/state.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/subdomain.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/tag.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/target.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/url.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/user_account.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/vulnerability.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/output_types/warning.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/report.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/rich.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/runners/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/runners/_base.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/runners/_helpers.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/runners/celery.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/runners/command.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/runners/scan.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/runners/task.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/runners/workflow.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/scans/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/serializers/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/serializers/dataclass.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/serializers/json.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/serializers/regex.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/arjun.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/bbot.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/bup.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/cariddi.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/dalfox.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/dirsearch.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/dnsx.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/feroxbuster.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/ffuf.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/fping.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/gau.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/gf.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/gitleaks.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/gospider.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/grype.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/h8mail.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/httpx.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/katana.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/maigret.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/mapcidr.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/msfconsole.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/naabu.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/nmap.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/nuclei.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/searchsploit.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/subfinder.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/testssl.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/trivy.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/wafw00f.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/wpprobe.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tasks/wpscan.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/template.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/thread.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/tree.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/utils.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/utils_test.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/secator/workflows/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/fixtures/h8mail_breach.txt +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/fixtures/ls.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/fixtures/msfconsole_input.rc +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/fixtures/nmap_output.xml +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/all.yaml +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/inputs.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/outputs.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/setup.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/teardown.sh +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/test_addons.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/test_celery.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/test_scans.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/test_tasks.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/test_tasks_categories.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/test_worker.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/test_workflows.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/wordlist.txt +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/wordlist_dns.txt +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/wordpress_toolbox/Dockerfile +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/integration/wordpress_toolbox/Makefile +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/performance/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/performance/loadtester.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/performance/test_worker.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/template/test_templates.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/__init__.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_celery.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_cli.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_command.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_config.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_offline.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_runners.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_runners_helpers.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_scans.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_serializers.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_tasks.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_tasks_categories.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_template.py +0 -0
- {secator-0.16.4 → secator-0.16.5}/tests/unit/test_utils.py +0 -0
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.16.5](https://github.com/freelabz/secator/compare/v0.16.4...v0.16.5) (2025-06-25)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **celery:** pass mongodb uuids when enabled ([#701](https://github.com/freelabz/secator/issues/701)) ([64b43e8](https://github.com/freelabz/secator/commit/64b43e88659c963a0c526829a2f72ee75348edef))
|
|
9
|
+
* **ci:** add apt update in ci ([261d1e8](https://github.com/freelabz/secator/commit/261d1e8bdbca06e85adf3df7a9489bff7ba445ab))
|
|
10
|
+
* prod optimizations (GCS ValueError, dynamic profile for fuzzers with big wordlists) ([#707](https://github.com/freelabz/secator/issues/707)) ([bcd6024](https://github.com/freelabz/secator/commit/bcd6024d91362ca141b71a49c4f80c759e1801ca))
|
|
11
|
+
|
|
3
12
|
## [0.16.4](https://github.com/freelabz/secator/compare/v0.16.3...v0.16.4) (2025-06-13)
|
|
4
13
|
|
|
5
14
|
|
|
@@ -3,11 +3,13 @@ steps:
|
|
|
3
3
|
entrypoint: 'bash'
|
|
4
4
|
args: ['-c', 'docker pull ${_LOCATION}-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/secator:${_VERSION} || exit 0']
|
|
5
5
|
- name: 'gcr.io/cloud-builders/docker'
|
|
6
|
-
args: ['build', '-t', '${_LOCATION}-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/secator:${_VERSION}', '--cache-from', '${_LOCATION}-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/secator:${_VERSION}', '.']
|
|
6
|
+
args: ['build', '-t', '${_LOCATION}-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/secator:${_VERSION}', '--build-arg', 'flavor=${_FLAVOR}', '--cache-from', '${_LOCATION}-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/secator:${_VERSION}', '.']
|
|
7
|
+
|
|
7
8
|
substitutions:
|
|
8
9
|
_REPOSITORY: secator
|
|
9
10
|
_LOCATION: europe-west1
|
|
10
|
-
_VERSION:
|
|
11
|
+
_VERSION: dev
|
|
12
|
+
_FLAVOR: full
|
|
11
13
|
|
|
12
14
|
images:
|
|
13
15
|
- '${_LOCATION}-docker.pkg.dev/$PROJECT_ID/${_REPOSITORY}/secator:${_VERSION}'
|
|
@@ -240,7 +240,8 @@ def forward_results(results):
|
|
|
240
240
|
console.print(Info(message=f'Deduplicating {len(results)} results'))
|
|
241
241
|
|
|
242
242
|
results = flatten(results)
|
|
243
|
-
if CONFIG.addons.mongodb.enabled:
|
|
243
|
+
if IN_CELERY_WORKER_PROCESS and CONFIG.addons.mongodb.enabled:
|
|
244
|
+
console.print(Info(message=f'Extracting uuids from {len(results)} results'))
|
|
244
245
|
uuids = [r._uuid for r in results if hasattr(r, '_uuid')]
|
|
245
246
|
uuids.extend([r for r in results if isinstance(r, str)])
|
|
246
247
|
results = list(set(uuids))
|
|
@@ -271,12 +272,14 @@ def mark_runner_started(results, runner, enable_hooks=True):
|
|
|
271
272
|
if results:
|
|
272
273
|
results = forward_results(results)
|
|
273
274
|
runner.enable_hooks = enable_hooks
|
|
274
|
-
if CONFIG.addons.mongodb.enabled:
|
|
275
|
+
if IN_CELERY_WORKER_PROCESS and CONFIG.addons.mongodb.enabled:
|
|
275
276
|
from secator.hooks.mongodb import get_results
|
|
276
277
|
results = get_results(results)
|
|
277
278
|
for item in results:
|
|
278
279
|
runner.add_result(item, print=False)
|
|
279
280
|
runner.mark_started()
|
|
281
|
+
if IN_CELERY_WORKER_PROCESS and CONFIG.addons.mongodb.enabled:
|
|
282
|
+
return [r._uuid for r in runner.results]
|
|
280
283
|
return runner.results
|
|
281
284
|
|
|
282
285
|
|
|
@@ -297,12 +300,14 @@ def mark_runner_completed(results, runner, enable_hooks=True):
|
|
|
297
300
|
debug(f'Runner {runner.unique_name} has finished, running mark_completed', sub='celery')
|
|
298
301
|
results = forward_results(results)
|
|
299
302
|
runner.enable_hooks = enable_hooks
|
|
300
|
-
if CONFIG.addons.mongodb.enabled:
|
|
303
|
+
if IN_CELERY_WORKER_PROCESS and CONFIG.addons.mongodb.enabled:
|
|
301
304
|
from secator.hooks.mongodb import get_results
|
|
302
305
|
results = get_results(results)
|
|
303
306
|
for item in results:
|
|
304
307
|
runner.add_result(item, print=False)
|
|
305
308
|
runner.mark_completed()
|
|
309
|
+
if IN_CELERY_WORKER_PROCESS and CONFIG.addons.mongodb.enabled:
|
|
310
|
+
return [r._uuid for r in runner.results]
|
|
306
311
|
return runner.results
|
|
307
312
|
|
|
308
313
|
|
|
@@ -42,10 +42,12 @@ def upload_blob(bucket_name, source_file_name, destination_blob_name):
|
|
|
42
42
|
storage_client = storage.Client()
|
|
43
43
|
bucket = storage_client.bucket(bucket_name)
|
|
44
44
|
blob = bucket.blob(destination_blob_name)
|
|
45
|
-
|
|
45
|
+
with open(source_file_name, 'rb') as f:
|
|
46
|
+
f.seek(0)
|
|
47
|
+
blob.upload_from_file(f)
|
|
46
48
|
end_time = time()
|
|
47
49
|
elapsed = end_time - start_time
|
|
48
|
-
debug(f'in {elapsed:.4f}s', obj={'blob': '
|
|
50
|
+
debug(f'in {elapsed:.4f}s', obj={'blob': 'UPLOADED', 'blob_name': destination_blob_name, 'bucket': bucket_name}, obj_after=False, sub='hooks.gcs', verbose=True) # noqa: E501
|
|
49
51
|
|
|
50
52
|
|
|
51
53
|
HOOKS = {
|
|
@@ -30,7 +30,8 @@ def get_mongodb_client():
|
|
|
30
30
|
_mongodb_client = pymongo.MongoClient(
|
|
31
31
|
escape_mongodb_url(MONGODB_URL),
|
|
32
32
|
maxPoolSize=MONGODB_MAX_POOL_SIZE,
|
|
33
|
-
serverSelectionTimeoutMS=MONGODB_CONNECT_TIMEOUT
|
|
33
|
+
serverSelectionTimeoutMS=MONGODB_CONNECT_TIMEOUT,
|
|
34
|
+
connect=False
|
|
34
35
|
)
|
|
35
36
|
return _mongodb_client
|
|
36
37
|
|
|
@@ -157,19 +158,23 @@ def load_findings(objs):
|
|
|
157
158
|
|
|
158
159
|
|
|
159
160
|
@shared_task
|
|
160
|
-
def tag_duplicates(ws_id: str = None):
|
|
161
|
+
def tag_duplicates(ws_id: str = None, full_scan: bool = False):
|
|
161
162
|
"""Tag duplicates in workspace.
|
|
162
163
|
|
|
163
164
|
Args:
|
|
164
165
|
ws_id (str): Workspace id.
|
|
166
|
+
full_scan (bool): If True, scan all findings, otherwise only untagged findings.
|
|
165
167
|
"""
|
|
166
168
|
debug(f'running duplicate check on workspace {ws_id}', sub='hooks.mongodb')
|
|
167
169
|
client = get_mongodb_client()
|
|
168
170
|
db = client.main
|
|
169
171
|
workspace_query = list(
|
|
170
172
|
db.findings.find({'_context.workspace_id': str(ws_id), '_tagged': True}).sort('_timestamp', -1))
|
|
173
|
+
untagged_query = {'_context.workspace_id': str(ws_id)}
|
|
174
|
+
if not full_scan:
|
|
175
|
+
untagged_query['_tagged'] = {'$ne': True}
|
|
171
176
|
untagged_query = list(
|
|
172
|
-
db.findings.find(
|
|
177
|
+
db.findings.find(untagged_query).sort('_timestamp', -1))
|
|
173
178
|
if not untagged_query:
|
|
174
179
|
debug('no untagged findings. Skipping.', id=ws_id, sub='hooks.mongodb')
|
|
175
180
|
return
|
|
@@ -96,6 +96,20 @@ class HttpFuzzer(Command):
|
|
|
96
96
|
meta_opts = {k: OPTS[k] for k in OPTS_HTTP_FUZZERS}
|
|
97
97
|
input_types = [URL]
|
|
98
98
|
output_types = [Url]
|
|
99
|
+
profile = lambda opts: HttpFuzzer.dynamic_profile(opts) # noqa: E731
|
|
100
|
+
|
|
101
|
+
@staticmethod
|
|
102
|
+
def dynamic_profile(opts):
|
|
103
|
+
wordlist = HttpFuzzer._get_opt_value(
|
|
104
|
+
opts,
|
|
105
|
+
'wordlist',
|
|
106
|
+
opts_conf=dict(HttpFuzzer.opts, **HttpFuzzer.meta_opts),
|
|
107
|
+
opt_aliases=opts.get('aliases', []),
|
|
108
|
+
preprocess=True,
|
|
109
|
+
process=True,
|
|
110
|
+
)
|
|
111
|
+
wordlist_size_mb = os.path.getsize(wordlist) / (1024 * 1024)
|
|
112
|
+
return 'cpu' if wordlist_size_mb > 5 else 'io'
|
|
99
113
|
|
|
100
114
|
|
|
101
115
|
#----------------#
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|