secator 0.3.4__tar.gz → 0.3.6__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.

Files changed (162) hide show
  1. {secator-0.3.4 → secator-0.3.6}/CHANGELOG.md +23 -0
  2. {secator-0.3.4 → secator-0.3.6}/PKG-INFO +5 -3
  3. {secator-0.3.4 → secator-0.3.6}/README.md +2 -2
  4. secator-0.3.6/SECURITY.md +14 -0
  5. {secator-0.3.4 → secator-0.3.6}/pyproject.toml +3 -2
  6. {secator-0.3.4 → secator-0.3.6}/secator/celery.py +3 -2
  7. {secator-0.3.4 → secator-0.3.6}/secator/decorators.py +16 -9
  8. {secator-0.3.4 → secator-0.3.6}/secator/definitions.py +2 -2
  9. {secator-0.3.4 → secator-0.3.6}/secator/installer.py +2 -2
  10. {secator-0.3.4 → secator-0.3.6}/secator/runners/_base.py +1 -2
  11. {secator-0.3.4 → secator-0.3.6}/secator/runners/scan.py +0 -1
  12. {secator-0.3.4 → secator-0.3.6}/secator/runners/task.py +0 -1
  13. {secator-0.3.4 → secator-0.3.6}/secator/runners/workflow.py +0 -1
  14. {secator-0.3.4 → secator-0.3.6}/secator/tasks/searchsploit.py +0 -1
  15. {secator-0.3.4 → secator-0.3.6}/secator/utils.py +1 -2
  16. secator-0.3.4/SECURITY.md +0 -21
  17. {secator-0.3.4 → secator-0.3.6}/.flake8 +0 -0
  18. {secator-0.3.4 → secator-0.3.6}/.gitignore +0 -0
  19. {secator-0.3.4 → secator-0.3.6}/CONTRIBUTING.md +0 -0
  20. {secator-0.3.4 → secator-0.3.6}/Dockerfile +0 -0
  21. {secator-0.3.4 → secator-0.3.6}/LICENSE +0 -0
  22. {secator-0.3.4 → secator-0.3.6}/cloudbuild.yaml +0 -0
  23. {secator-0.3.4 → secator-0.3.6}/images/aliases.cast +0 -0
  24. {secator-0.3.4 → secator-0.3.6}/images/aliases.gif +0 -0
  25. {secator-0.3.4 → secator-0.3.6}/images/demo.cast +0 -0
  26. {secator-0.3.4 → secator-0.3.6}/images/demo.gif +0 -0
  27. {secator-0.3.4 → secator-0.3.6}/images/fmt.cast +0 -0
  28. {secator-0.3.4 → secator-0.3.6}/images/fmt.gif +0 -0
  29. {secator-0.3.4 → secator-0.3.6}/images/help.png +0 -0
  30. {secator-0.3.4 → secator-0.3.6}/images/input.cast +0 -0
  31. {secator-0.3.4 → secator-0.3.6}/images/input.gif +0 -0
  32. {secator-0.3.4 → secator-0.3.6}/images/pipe.cast +0 -0
  33. {secator-0.3.4 → secator-0.3.6}/images/pipe.gif +0 -0
  34. {secator-0.3.4 → secator-0.3.6}/images/short_demo.cast +0 -0
  35. {secator-0.3.4 → secator-0.3.6}/images/short_demo.gif +0 -0
  36. {secator-0.3.4 → secator-0.3.6}/scripts/download_cves.sh +0 -0
  37. {secator-0.3.4 → secator-0.3.6}/scripts/install.sh +0 -0
  38. {secator-0.3.4 → secator-0.3.6}/scripts/install_asciinema.sh +0 -0
  39. {secator-0.3.4 → secator-0.3.6}/scripts/install_go.sh +0 -0
  40. {secator-0.3.4 → secator-0.3.6}/scripts/install_ruby.sh +0 -0
  41. {secator-0.3.4 → secator-0.3.6}/scripts/msf/exploit_cve.rc +0 -0
  42. {secator-0.3.4 → secator-0.3.6}/scripts/msf/ftp_anonymous.rc +0 -0
  43. {secator-0.3.4 → secator-0.3.6}/scripts/msf/ftp_version.rc +0 -0
  44. {secator-0.3.4 → secator-0.3.6}/scripts/msf/ftp_vsftpd_234_backdoor.rc +0 -0
  45. {secator-0.3.4 → secator-0.3.6}/scripts/msf/redis.rc +0 -0
  46. {secator-0.3.4 → secator-0.3.6}/scripts/msfinstall.sh +0 -0
  47. {secator-0.3.4 → secator-0.3.6}/scripts/stories/STORY.md +0 -0
  48. {secator-0.3.4 → secator-0.3.6}/scripts/stories/aliases.sh +0 -0
  49. {secator-0.3.4 → secator-0.3.6}/scripts/stories/demo.sh +0 -0
  50. {secator-0.3.4 → secator-0.3.6}/scripts/stories/fmt.sh +0 -0
  51. {secator-0.3.4 → secator-0.3.6}/scripts/stories/input.sh +0 -0
  52. {secator-0.3.4 → secator-0.3.6}/scripts/stories/pipe.sh +0 -0
  53. {secator-0.3.4 → secator-0.3.6}/scripts/stories/short_demo.sh +0 -0
  54. {secator-0.3.4 → secator-0.3.6}/secator/.gitignore +0 -0
  55. {secator-0.3.4 → secator-0.3.6}/secator/__init__.py +0 -0
  56. {secator-0.3.4 → secator-0.3.6}/secator/cli.py +0 -0
  57. {secator-0.3.4 → secator-0.3.6}/secator/config.py +0 -0
  58. {secator-0.3.4 → secator-0.3.6}/secator/configs/__init__.py +0 -0
  59. {secator-0.3.4 → secator-0.3.6}/secator/configs/profiles/__init__.py +0 -0
  60. {secator-0.3.4 → secator-0.3.6}/secator/configs/profiles/aggressive.yaml +0 -0
  61. {secator-0.3.4 → secator-0.3.6}/secator/configs/profiles/default.yaml +0 -0
  62. {secator-0.3.4 → secator-0.3.6}/secator/configs/profiles/stealth.yaml +0 -0
  63. {secator-0.3.4 → secator-0.3.6}/secator/configs/scans/__init__.py +0 -0
  64. {secator-0.3.4 → secator-0.3.6}/secator/configs/scans/domain.yaml +0 -0
  65. {secator-0.3.4 → secator-0.3.6}/secator/configs/scans/host.yaml +0 -0
  66. {secator-0.3.4 → secator-0.3.6}/secator/configs/scans/network.yaml +0 -0
  67. {secator-0.3.4 → secator-0.3.6}/secator/configs/scans/subdomain.yaml +0 -0
  68. {secator-0.3.4 → secator-0.3.6}/secator/configs/scans/url.yaml +0 -0
  69. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/__init__.py +0 -0
  70. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/cidr_recon.yaml +0 -0
  71. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/code_scan.yaml +0 -0
  72. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/host_recon.yaml +0 -0
  73. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/port_scan.yaml +0 -0
  74. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/subdomain_recon.yaml +0 -0
  75. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/url_crawl.yaml +0 -0
  76. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/url_dirsearch.yaml +0 -0
  77. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/url_fuzz.yaml +0 -0
  78. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/url_nuclei.yaml +0 -0
  79. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/url_vuln.yaml +0 -0
  80. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/user_hunt.yaml +0 -0
  81. {secator-0.3.4 → secator-0.3.6}/secator/configs/workflows/wordpress.yaml +0 -0
  82. {secator-0.3.4 → secator-0.3.6}/secator/exporters/__init__.py +0 -0
  83. {secator-0.3.4 → secator-0.3.6}/secator/exporters/_base.py +0 -0
  84. {secator-0.3.4 → secator-0.3.6}/secator/exporters/csv.py +0 -0
  85. {secator-0.3.4 → secator-0.3.6}/secator/exporters/gdrive.py +0 -0
  86. {secator-0.3.4 → secator-0.3.6}/secator/exporters/json.py +0 -0
  87. {secator-0.3.4 → secator-0.3.6}/secator/exporters/table.py +0 -0
  88. {secator-0.3.4 → secator-0.3.6}/secator/exporters/txt.py +0 -0
  89. {secator-0.3.4 → secator-0.3.6}/secator/hooks/__init__.py +0 -0
  90. {secator-0.3.4 → secator-0.3.6}/secator/hooks/mongodb.py +0 -0
  91. {secator-0.3.4 → secator-0.3.6}/secator/output_types/__init__.py +0 -0
  92. {secator-0.3.4 → secator-0.3.6}/secator/output_types/_base.py +0 -0
  93. {secator-0.3.4 → secator-0.3.6}/secator/output_types/exploit.py +0 -0
  94. {secator-0.3.4 → secator-0.3.6}/secator/output_types/ip.py +0 -0
  95. {secator-0.3.4 → secator-0.3.6}/secator/output_types/port.py +0 -0
  96. {secator-0.3.4 → secator-0.3.6}/secator/output_types/progress.py +0 -0
  97. {secator-0.3.4 → secator-0.3.6}/secator/output_types/record.py +0 -0
  98. {secator-0.3.4 → secator-0.3.6}/secator/output_types/subdomain.py +0 -0
  99. {secator-0.3.4 → secator-0.3.6}/secator/output_types/tag.py +0 -0
  100. {secator-0.3.4 → secator-0.3.6}/secator/output_types/target.py +0 -0
  101. {secator-0.3.4 → secator-0.3.6}/secator/output_types/url.py +0 -0
  102. {secator-0.3.4 → secator-0.3.6}/secator/output_types/user_account.py +0 -0
  103. {secator-0.3.4 → secator-0.3.6}/secator/output_types/vulnerability.py +0 -0
  104. {secator-0.3.4 → secator-0.3.6}/secator/report.py +0 -0
  105. {secator-0.3.4 → secator-0.3.6}/secator/rich.py +0 -0
  106. {secator-0.3.4 → secator-0.3.6}/secator/runners/__init__.py +0 -0
  107. {secator-0.3.4 → secator-0.3.6}/secator/runners/_helpers.py +0 -0
  108. {secator-0.3.4 → secator-0.3.6}/secator/runners/command.py +0 -0
  109. {secator-0.3.4 → secator-0.3.6}/secator/serializers/__init__.py +0 -0
  110. {secator-0.3.4 → secator-0.3.6}/secator/serializers/dataclass.py +0 -0
  111. {secator-0.3.4 → secator-0.3.6}/secator/serializers/json.py +0 -0
  112. {secator-0.3.4 → secator-0.3.6}/secator/serializers/regex.py +0 -0
  113. {secator-0.3.4 → secator-0.3.6}/secator/tasks/__init__.py +0 -0
  114. {secator-0.3.4 → secator-0.3.6}/secator/tasks/_categories.py +0 -0
  115. {secator-0.3.4 → secator-0.3.6}/secator/tasks/cariddi.py +0 -0
  116. {secator-0.3.4 → secator-0.3.6}/secator/tasks/dalfox.py +0 -0
  117. {secator-0.3.4 → secator-0.3.6}/secator/tasks/dirsearch.py +0 -0
  118. {secator-0.3.4 → secator-0.3.6}/secator/tasks/dnsx.py +0 -0
  119. {secator-0.3.4 → secator-0.3.6}/secator/tasks/dnsxbrute.py +0 -0
  120. {secator-0.3.4 → secator-0.3.6}/secator/tasks/feroxbuster.py +0 -0
  121. {secator-0.3.4 → secator-0.3.6}/secator/tasks/ffuf.py +0 -0
  122. {secator-0.3.4 → secator-0.3.6}/secator/tasks/fping.py +0 -0
  123. {secator-0.3.4 → secator-0.3.6}/secator/tasks/gau.py +0 -0
  124. {secator-0.3.4 → secator-0.3.6}/secator/tasks/gf.py +0 -0
  125. {secator-0.3.4 → secator-0.3.6}/secator/tasks/gospider.py +0 -0
  126. {secator-0.3.4 → secator-0.3.6}/secator/tasks/grype.py +0 -0
  127. {secator-0.3.4 → secator-0.3.6}/secator/tasks/h8mail.py +0 -0
  128. {secator-0.3.4 → secator-0.3.6}/secator/tasks/httpx.py +0 -0
  129. {secator-0.3.4 → secator-0.3.6}/secator/tasks/katana.py +0 -0
  130. {secator-0.3.4 → secator-0.3.6}/secator/tasks/maigret.py +0 -0
  131. {secator-0.3.4 → secator-0.3.6}/secator/tasks/mapcidr.py +0 -0
  132. {secator-0.3.4 → secator-0.3.6}/secator/tasks/msfconsole.py +0 -0
  133. {secator-0.3.4 → secator-0.3.6}/secator/tasks/naabu.py +0 -0
  134. {secator-0.3.4 → secator-0.3.6}/secator/tasks/nmap.py +0 -0
  135. {secator-0.3.4 → secator-0.3.6}/secator/tasks/nuclei.py +0 -0
  136. {secator-0.3.4 → secator-0.3.6}/secator/tasks/subfinder.py +0 -0
  137. {secator-0.3.4 → secator-0.3.6}/secator/tasks/wpscan.py +0 -0
  138. {secator-0.3.4 → secator-0.3.6}/secator/utils_test.py +0 -0
  139. {secator-0.3.4 → secator-0.3.6}/tests/__init__.py +0 -0
  140. {secator-0.3.4 → secator-0.3.6}/tests/fixtures/h8mail_breach.txt +0 -0
  141. {secator-0.3.4 → secator-0.3.6}/tests/fixtures/msfconsole_input.rc +0 -0
  142. {secator-0.3.4 → secator-0.3.6}/tests/fixtures/nmap_output.xml +0 -0
  143. {secator-0.3.4 → secator-0.3.6}/tests/integration/__init__.py +0 -0
  144. {secator-0.3.4 → secator-0.3.6}/tests/integration/inputs.py +0 -0
  145. {secator-0.3.4 → secator-0.3.6}/tests/integration/outputs.py +0 -0
  146. {secator-0.3.4 → secator-0.3.6}/tests/integration/setup.sh +0 -0
  147. {secator-0.3.4 → secator-0.3.6}/tests/integration/teardown.sh +0 -0
  148. {secator-0.3.4 → secator-0.3.6}/tests/integration/test_scans.py +0 -0
  149. {secator-0.3.4 → secator-0.3.6}/tests/integration/test_tasks.py +0 -0
  150. {secator-0.3.4 → secator-0.3.6}/tests/integration/test_workflows.py +0 -0
  151. {secator-0.3.4 → secator-0.3.6}/tests/integration/wordlist.txt +0 -0
  152. {secator-0.3.4 → secator-0.3.6}/tests/integration/wordlist_dns.txt +0 -0
  153. {secator-0.3.4 → secator-0.3.6}/tests/integration/wordpress_toolbox/Dockerfile +0 -0
  154. {secator-0.3.4 → secator-0.3.6}/tests/integration/wordpress_toolbox/Makefile +0 -0
  155. {secator-0.3.4 → secator-0.3.6}/tests/performance/__init__.py +0 -0
  156. {secator-0.3.4 → secator-0.3.6}/tests/performance/loadtester.py +0 -0
  157. {secator-0.3.4 → secator-0.3.6}/tests/unit/__init__.py +0 -0
  158. {secator-0.3.4 → secator-0.3.6}/tests/unit/test_celery.py +0 -0
  159. {secator-0.3.4 → secator-0.3.6}/tests/unit/test_scans.py +0 -0
  160. {secator-0.3.4 → secator-0.3.6}/tests/unit/test_serializers.py +0 -0
  161. {secator-0.3.4 → secator-0.3.6}/tests/unit/test_tasks.py +0 -0
  162. {secator-0.3.4 → secator-0.3.6}/tests/unit/test_workflows.py +0 -0
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.6](https://github.com/freelabz/secator/compare/v0.3.5...v0.3.6) (2024-04-17)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * broken reports folder on remote workers ([#307](https://github.com/freelabz/secator/issues/307)) ([9a7a1f1](https://github.com/freelabz/secator/commit/9a7a1f1c449c688701b02be66e98d3434073bbb0))
9
+ * searchsploit install ([#306](https://github.com/freelabz/secator/issues/306)) ([040cfaf](https://github.com/freelabz/secator/commit/040cfaf6968ae120241fdd6a74a9a6cd5fa0631d))
10
+
11
+ ## [0.3.5](https://github.com/freelabz/secator/compare/v0.3.4...v0.3.5) (2024-04-17)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * Celery control folder ([#298](https://github.com/freelabz/secator/issues/298)) ([3cbc0a3](https://github.com/freelabz/secator/commit/3cbc0a37d06c9b3a20eb0005b1cb68b484d22d15))
17
+ * remove pkg_resources in favor of packaging ([#304](https://github.com/freelabz/secator/issues/304)) ([6cf478c](https://github.com/freelabz/secator/commit/6cf478c1f1c4b7363d1710e634686ede8a209594))
18
+ * typo in `requires-python` in pyproject.toml ([#303](https://github.com/freelabz/secator/issues/303)) ([7a7766c](https://github.com/freelabz/secator/commit/7a7766caba0faa98406764fa1bb5ad2eae346302))
19
+
20
+
21
+ ### Documentation
22
+
23
+ * update README.md ([8f1b1c1](https://github.com/freelabz/secator/commit/8f1b1c1cb852a88d80aa15379962aaa36afc7635))
24
+ * update SECURITY.md ([6518dd6](https://github.com/freelabz/secator/commit/6518dd646c0358e661e186edf28b4fb0494bf712))
25
+
3
26
  ## [0.3.4](https://github.com/freelabz/secator/compare/v0.3.3...v0.3.4) (2024-04-15)
4
27
 
5
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: secator
3
- Version: 0.3.4
3
+ Version: 0.3.6
4
4
  Summary: The pentester's swiss knife.
5
5
  Project-URL: Homepage, https://github.com/freelabz/secator
6
6
  Project-URL: Issues, https://github.com/freelabz/secator/issues
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.8
18
18
  Classifier: Programming Language :: Python :: 3.9
19
19
  Classifier: Programming Language :: Python :: 3.10
20
20
  Classifier: Programming Language :: Python :: 3.11
21
+ Requires-Python: >=3.8
21
22
  Requires-Dist: bs4<1
22
23
  Requires-Dist: celery<6
23
24
  Requires-Dist: cpe<2
@@ -27,6 +28,7 @@ Requires-Dist: furl<3
27
28
  Requires-Dist: humanize<5
28
29
  Requires-Dist: ifaddr<1
29
30
  Requires-Dist: jinja2<4
31
+ Requires-Dist: packaging<25
30
32
  Requires-Dist: python-dotenv<2
31
33
  Requires-Dist: pyyaml<7
32
34
  Requires-Dist: requests<3
@@ -175,14 +177,14 @@ wget -O - https://raw.githubusercontent.com/freelabz/secator/main/scripts/instal
175
177
  <summary>Docker</summary>
176
178
 
177
179
  ```sh
178
- docker run -it --rm --net=host freelabz/secator -v "$HOME/.secator:/root/.secator" --help
180
+ docker run -it --rm --net=host -v $HOME/.secator:/root/.secator freelabz/secator --help
179
181
  ```
180
182
 
181
183
  The volume mount `-v` is necessary to save all `secator` reports to your host machine.
182
184
 
183
185
  You can set up an alias to facilitate running `secator` from Docker:
184
186
  ```sh
185
- alias secator="docker run -it --rm --net=host freelabz/secator -v $HOME/.secator:/root/.secator"
187
+ alias secator="docker run -it --rm --net=host -v $HOME/.secator:/root/.secator freelabz/secator"
186
188
  secator --help
187
189
  ```
188
190
 
@@ -116,14 +116,14 @@ wget -O - https://raw.githubusercontent.com/freelabz/secator/main/scripts/instal
116
116
  <summary>Docker</summary>
117
117
 
118
118
  ```sh
119
- docker run -it --rm --net=host freelabz/secator -v "$HOME/.secator:/root/.secator" --help
119
+ docker run -it --rm --net=host -v $HOME/.secator:/root/.secator freelabz/secator --help
120
120
  ```
121
121
 
122
122
  The volume mount `-v` is necessary to save all `secator` reports to your host machine.
123
123
 
124
124
  You can set up an alias to facilitate running `secator` from Docker:
125
125
  ```sh
126
- alias secator="docker run -it --rm --net=host freelabz/secator -v $HOME/.secator:/root/.secator"
126
+ alias secator="docker run -it --rm --net=host -v $HOME/.secator:/root/.secator freelabz/secator"
127
127
  secator --help
128
128
  ```
129
129
 
@@ -0,0 +1,14 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ Use this section to tell people about which versions of your project are
6
+ currently being supported with security updates.
7
+
8
+ | Version | Supported |
9
+ | ------- | ------------------ |
10
+ | 0.0.x | :white_check_mark: |
11
+
12
+ ## Reporting a Vulnerability
13
+
14
+ To report a new vulnerability, please open an issue with the title "security: report <issue_name>".
@@ -4,11 +4,11 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "secator"
7
- version = "0.3.4"
7
+ version = "0.3.6"
8
8
  authors = [{ name = "FreeLabz", email = "sales@freelabz.com" }]
9
9
  readme = "README.md"
10
10
  description = "The pentester's swiss knife."
11
- requires_python = ">=3.8"
11
+ requires-python = ">=3.8"
12
12
  keywords = [
13
13
  'cybersecurity',
14
14
  'recon',
@@ -39,6 +39,7 @@ dependencies = [
39
39
  "humanize < 5",
40
40
  "ifaddr < 1",
41
41
  "jinja2 < 4",
42
+ "packaging < 25",
42
43
  "python-dotenv < 2",
43
44
  "pyyaml < 7",
44
45
  "requests < 3",
@@ -53,6 +53,7 @@ app.conf.update({
53
53
  'broker_transport_options': {
54
54
  'data_folder_in': CELERY_DATA_FOLDER,
55
55
  'data_folder_out': CELERY_DATA_FOLDER,
56
+ 'control_folder': CELERY_DATA_FOLDER,
56
57
  'visibility_timeout': CELERY_BROKER_VISIBILITY_TIMEOUT,
57
58
  },
58
59
  'broker_connection_retry_on_startup': True,
@@ -416,6 +417,6 @@ def is_celery_worker_alive():
416
417
  result = bool(result)
417
418
  if result:
418
419
  console.print('Celery worker is alive !', style='bold green')
419
- # else:
420
- # console.print('No Celery worker alive.', style='bold red')
420
+ else:
421
+ console.print('No Celery worker alive.', style='bold orange1')
421
422
  return result
@@ -24,7 +24,6 @@ RUNNER_OPTS = {
24
24
 
25
25
  RUNNER_GLOBAL_OPTS = {
26
26
  'sync': {'is_flag': True, 'help': 'Run tasks synchronously (automatic if no worker is alive)'},
27
- 'worker': {'is_flag': True, 'help': 'Run tasks in worker (automatic if worker is alive)'},
28
27
  'proxy': {'type': str, 'help': 'HTTP proxy'},
29
28
  'driver': {'type': str, 'help': 'Export real-time results. E.g: "mongodb"'}
30
29
  # 'debug': {'type': int, 'default': 0, 'help': 'Debug mode'},
@@ -264,7 +263,6 @@ def register_runner(cli_endpoint, config):
264
263
  def func(ctx, **opts):
265
264
  opts.update(fmt_opts)
266
265
  sync = opts['sync']
267
- worker = opts['worker']
268
266
  # debug = opts['debug']
269
267
  ws = opts.pop('workspace')
270
268
  driver = opts.pop('driver', '')
@@ -275,13 +273,22 @@ def register_runner(cli_endpoint, config):
275
273
  # opts.update(unknown_opts)
276
274
  targets = opts.pop(input_type)
277
275
  targets = expand_input(targets)
278
- if sync or show or not ADDONS_ENABLED['worker']:
276
+ if sync or show:
279
277
  sync = True
280
- elif worker:
281
- sync = False
282
- else: # automatically run in worker if it's alive
278
+ else:
283
279
  from secator.celery import is_celery_worker_alive
284
- sync = not is_celery_worker_alive()
280
+ worker_alive = is_celery_worker_alive()
281
+ if not worker_alive:
282
+ sync = True
283
+ else:
284
+ sync = False
285
+ from secator.definitions import CELERY_BROKER_URL, CELERY_RESULT_BACKEND
286
+ broker_protocol = CELERY_BROKER_URL.split('://')[0]
287
+ backend_protocol = CELERY_RESULT_BACKEND.split('://')[0]
288
+ if CELERY_BROKER_URL:
289
+ if (broker_protocol == 'redis' or backend_protocol == 'redis') and not ADDONS_ENABLED['redis']:
290
+ _get_rich_console().print('[bold red]Missing `redis` addon: please run `secator install addons redis`[/].')
291
+ sys.exit(1)
285
292
  opts['sync'] = sync
286
293
  opts.update({
287
294
  'print_item': not sync,
@@ -293,8 +300,8 @@ def register_runner(cli_endpoint, config):
293
300
  # Build hooks from driver name
294
301
  hooks = {}
295
302
  if driver == 'mongodb':
296
- if not ADDONS_ENABLED['mongo']:
297
- _get_rich_console().print('[bold red]Missing MongoDB dependencies: please run `secator install addons mongodb`[/].')
303
+ if not ADDONS_ENABLED['mongodb']:
304
+ _get_rich_console().print('[bold red]Missing `mongodb` addon: please run `secator install addons mongodb`[/].')
298
305
  sys.exit(1)
299
306
  from secator.hooks.mongodb import MONGODB_HOOKS
300
307
  hooks = MONGODB_HOOKS
@@ -4,14 +4,14 @@ import os
4
4
  import requests
5
5
 
6
6
  from dotenv import find_dotenv, load_dotenv
7
- from pkg_resources import get_distribution
7
+ from importlib.metadata import version
8
8
 
9
9
  from secator.rich import console
10
10
 
11
11
  load_dotenv(find_dotenv(usecwd=True), override=False)
12
12
 
13
13
  # Globals
14
- VERSION = get_distribution('secator').version
14
+ VERSION = version('secator')
15
15
  ASCII = f"""
16
16
  __
17
17
  ________ _________ _/ /_____ _____
@@ -259,7 +259,7 @@ def get_version_info(name, version_flag=None, github_handle=None, version=None):
259
259
  Return:
260
260
  dict: Version info.
261
261
  """
262
- from pkg_resources import parse_version
262
+ from packaging import version as _version
263
263
  from secator.installer import GithubInstaller
264
264
  info = {
265
265
  'name': name,
@@ -287,7 +287,7 @@ def get_version_info(name, version_flag=None, github_handle=None, version=None):
287
287
  if location:
288
288
  info['installed'] = True
289
289
  if version and latest_version:
290
- if parse_version(version) < parse_version(latest_version):
290
+ if _version.parse(version) < _version.parse(latest_version):
291
291
  info['status'] = 'outdated'
292
292
  else:
293
293
  info['status'] = 'latest'
@@ -111,8 +111,7 @@ class Runner:
111
111
  # Determine report folder
112
112
  default_reports_folder_base = f'{REPORTS_FOLDER}/{self.workspace_name}/{self.config.type}s'
113
113
  _id = get_task_folder_id(default_reports_folder_base)
114
- default_report_folder = f'{default_reports_folder_base}/{_id}'
115
- self.reports_folder = run_opts.get('reports_folder') or default_report_folder
114
+ self.reports_folder = f'{default_reports_folder_base}/{_id}'
116
115
 
117
116
  # Make reports folders
118
117
  os.makedirs(self.reports_folder, exist_ok=True)
@@ -44,7 +44,6 @@ class Scan(Runner):
44
44
 
45
45
  # Workflow opts
46
46
  run_opts = self.run_opts.copy()
47
- run_opts['reports_folder'] = self.reports_folder
48
47
  fmt_opts = {
49
48
  'json': run_opts.get('json', False),
50
49
  'print_item': False,
@@ -52,7 +52,6 @@ class Task(Runner):
52
52
  hooks = {task_cls: self.hooks}
53
53
  run_opts['hooks'] = hooks
54
54
  run_opts['context'] = self.context
55
- run_opts['reports_folder'] = self.reports_folder
56
55
 
57
56
  # Run task
58
57
  if self.sync:
@@ -47,7 +47,6 @@ class Workflow(Runner):
47
47
 
48
48
  # Construct run opts
49
49
  task_run_opts['hooks'] = self._hooks.get(Task, {})
50
- task_run_opts['reports_folder'] = self.reports_folder
51
50
  task_run_opts.update(task_fmt_opts)
52
51
 
53
52
  # Build Celery workflow
@@ -28,7 +28,6 @@ class searchsploit(Command):
28
28
  }
29
29
  }
30
30
  install_cmd = 'sudo git clone https://gitlab.com/exploit-database/exploitdb.git /opt/exploitdb || true && sudo ln -sf /opt/exploitdb/searchsploit /usr/local/bin/searchsploit' # noqa: E501
31
- install_github_handle = 'rad10/SearchSploit.py'
32
31
  proxychains = False
33
32
  proxy_socks5 = False
34
33
  proxy_http = False
@@ -1,4 +1,3 @@
1
- import importlib
2
1
  import inspect
3
2
  import itertools
4
3
  import logging
@@ -195,7 +194,7 @@ def import_dynamic(cls_path, cls_root='Command'):
195
194
  """
196
195
  try:
197
196
  package, name = cls_path.rsplit(".", maxsplit=1)
198
- cls = getattr(importlib.import_module(package), name)
197
+ cls = getattr(import_module(package), name)
199
198
  root_cls = inspect.getmro(cls)[-2]
200
199
  if root_cls.__name__ == cls_root:
201
200
  return cls
secator-0.3.4/SECURITY.md DELETED
@@ -1,21 +0,0 @@
1
- # Security Policy
2
-
3
- ## Supported Versions
4
-
5
- Use this section to tell people about which versions of your project are
6
- currently being supported with security updates.
7
-
8
- | Version | Supported |
9
- | ------- | ------------------ |
10
- | 5.1.x | :white_check_mark: |
11
- | 5.0.x | :x: |
12
- | 4.0.x | :white_check_mark: |
13
- | < 4.0 | :x: |
14
-
15
- ## Reporting a Vulnerability
16
-
17
- Use this section to tell people how to report a vulnerability.
18
-
19
- Tell them where to go, how often they can expect to get an update on a
20
- reported vulnerability, what to expect if the vulnerability is accepted or
21
- declined, etc.
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