secator 0.5.2__tar.gz → 0.7.0__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 (212) hide show
  1. {secator-0.5.2 → secator-0.7.0}/CHANGELOG.md +61 -0
  2. {secator-0.5.2 → secator-0.7.0}/Dockerfile +6 -3
  3. {secator-0.5.2 → secator-0.7.0}/PKG-INFO +12 -6
  4. secator-0.7.0/helm/.helmignore +23 -0
  5. secator-0.7.0/helm/Chart.yaml +7 -0
  6. secator-0.7.0/helm/templates/redis-service.yaml +12 -0
  7. secator-0.7.0/helm/templates/redis.yaml +22 -0
  8. secator-0.7.0/helm/templates/secator-manager.yaml +18 -0
  9. secator-0.7.0/helm/templates/secator-worker.yaml +24 -0
  10. secator-0.7.0/helm/values.yaml +34 -0
  11. secator-0.7.0/pyproject.toml +97 -0
  12. secator-0.7.0/secator/celery.py +344 -0
  13. secator-0.7.0/secator/celery_utils.py +268 -0
  14. {secator-0.5.2 → secator-0.7.0}/secator/cli.py +327 -106
  15. {secator-0.5.2 → secator-0.7.0}/secator/config.py +27 -11
  16. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/host_recon.yaml +5 -3
  17. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/port_scan.yaml +7 -3
  18. secator-0.7.0/secator/configs/workflows/url_bypass.yaml +10 -0
  19. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/url_vuln.yaml +1 -1
  20. {secator-0.5.2 → secator-0.7.0}/secator/decorators.py +169 -92
  21. {secator-0.5.2 → secator-0.7.0}/secator/definitions.py +10 -3
  22. {secator-0.5.2 → secator-0.7.0}/secator/exporters/__init__.py +7 -5
  23. secator-0.7.0/secator/exporters/console.py +10 -0
  24. secator-0.7.0/secator/exporters/csv.py +37 -0
  25. {secator-0.5.2 → secator-0.7.0}/secator/exporters/gdrive.py +16 -11
  26. {secator-0.5.2 → secator-0.7.0}/secator/exporters/json.py +3 -1
  27. secator-0.7.0/secator/exporters/table.py +35 -0
  28. secator-0.7.0/secator/exporters/txt.py +28 -0
  29. secator-0.7.0/secator/hooks/gcs.py +53 -0
  30. {secator-0.5.2 → secator-0.7.0}/secator/hooks/mongodb.py +54 -28
  31. secator-0.7.0/secator/output_types/__init__.py +42 -0
  32. {secator-0.5.2 → secator-0.7.0}/secator/output_types/_base.py +11 -1
  33. secator-0.7.0/secator/output_types/error.py +36 -0
  34. {secator-0.5.2 → secator-0.7.0}/secator/output_types/exploit.py +1 -1
  35. secator-0.7.0/secator/output_types/info.py +24 -0
  36. {secator-0.5.2 → secator-0.7.0}/secator/output_types/ip.py +7 -0
  37. {secator-0.5.2 → secator-0.7.0}/secator/output_types/port.py +8 -1
  38. {secator-0.5.2 → secator-0.7.0}/secator/output_types/progress.py +6 -1
  39. {secator-0.5.2 → secator-0.7.0}/secator/output_types/record.py +3 -1
  40. secator-0.7.0/secator/output_types/stat.py +33 -0
  41. {secator-0.5.2 → secator-0.7.0}/secator/output_types/tag.py +6 -4
  42. {secator-0.5.2 → secator-0.7.0}/secator/output_types/url.py +6 -3
  43. {secator-0.5.2 → secator-0.7.0}/secator/output_types/vulnerability.py +3 -2
  44. secator-0.7.0/secator/output_types/warning.py +24 -0
  45. secator-0.7.0/secator/report.py +127 -0
  46. {secator-0.5.2 → secator-0.7.0}/secator/rich.py +44 -39
  47. secator-0.7.0/secator/runners/_base.py +897 -0
  48. secator-0.7.0/secator/runners/_helpers.py +86 -0
  49. secator-0.7.0/secator/runners/celery.py +18 -0
  50. {secator-0.5.2 → secator-0.7.0}/secator/runners/command.py +364 -211
  51. {secator-0.5.2 → secator-0.7.0}/secator/runners/scan.py +8 -24
  52. secator-0.7.0/secator/runners/task.py +74 -0
  53. {secator-0.5.2 → secator-0.7.0}/secator/runners/workflow.py +41 -40
  54. secator-0.7.0/secator/scans/__init__.py +28 -0
  55. {secator-0.5.2 → secator-0.7.0}/secator/serializers/dataclass.py +6 -0
  56. secator-0.7.0/secator/serializers/json.py +20 -0
  57. secator-0.7.0/secator/serializers/regex.py +25 -0
  58. {secator-0.5.2 → secator-0.7.0}/secator/tasks/_categories.py +6 -3
  59. secator-0.7.0/secator/tasks/bbot.py +293 -0
  60. secator-0.7.0/secator/tasks/bup.py +98 -0
  61. {secator-0.5.2 → secator-0.7.0}/secator/tasks/cariddi.py +38 -49
  62. {secator-0.5.2 → secator-0.7.0}/secator/tasks/dalfox.py +3 -0
  63. {secator-0.5.2 → secator-0.7.0}/secator/tasks/dirsearch.py +12 -23
  64. secator-0.7.0/secator/tasks/dnsx.py +76 -0
  65. {secator-0.5.2 → secator-0.7.0}/secator/tasks/dnsxbrute.py +2 -0
  66. {secator-0.5.2 → secator-0.7.0}/secator/tasks/feroxbuster.py +8 -17
  67. {secator-0.5.2 → secator-0.7.0}/secator/tasks/ffuf.py +3 -2
  68. {secator-0.5.2 → secator-0.7.0}/secator/tasks/fping.py +3 -3
  69. {secator-0.5.2 → secator-0.7.0}/secator/tasks/gau.py +5 -0
  70. {secator-0.5.2 → secator-0.7.0}/secator/tasks/gf.py +2 -2
  71. {secator-0.5.2 → secator-0.7.0}/secator/tasks/gospider.py +4 -0
  72. {secator-0.5.2 → secator-0.7.0}/secator/tasks/grype.py +9 -9
  73. secator-0.7.0/secator/tasks/h8mail.py +70 -0
  74. {secator-0.5.2 → secator-0.7.0}/secator/tasks/httpx.py +58 -21
  75. {secator-0.5.2 → secator-0.7.0}/secator/tasks/katana.py +18 -22
  76. {secator-0.5.2 → secator-0.7.0}/secator/tasks/maigret.py +26 -24
  77. {secator-0.5.2 → secator-0.7.0}/secator/tasks/mapcidr.py +2 -3
  78. {secator-0.5.2 → secator-0.7.0}/secator/tasks/msfconsole.py +4 -16
  79. {secator-0.5.2 → secator-0.7.0}/secator/tasks/naabu.py +3 -1
  80. {secator-0.5.2 → secator-0.7.0}/secator/tasks/nmap.py +50 -35
  81. {secator-0.5.2 → secator-0.7.0}/secator/tasks/nuclei.py +9 -2
  82. {secator-0.5.2 → secator-0.7.0}/secator/tasks/searchsploit.py +17 -9
  83. {secator-0.5.2 → secator-0.7.0}/secator/tasks/subfinder.py +5 -1
  84. {secator-0.5.2 → secator-0.7.0}/secator/tasks/wpscan.py +79 -93
  85. {secator-0.5.2 → secator-0.7.0}/secator/template.py +61 -45
  86. secator-0.7.0/secator/thread.py +24 -0
  87. secator-0.7.0/secator/utils.py +691 -0
  88. {secator-0.5.2 → secator-0.7.0}/secator/utils_test.py +48 -23
  89. secator-0.7.0/secator/workflows/__init__.py +28 -0
  90. {secator-0.5.2 → secator-0.7.0}/tests/fixtures/ls.py +1 -1
  91. {secator-0.5.2 → secator-0.7.0}/tests/integration/inputs.py +5 -4
  92. {secator-0.5.2 → secator-0.7.0}/tests/integration/outputs.py +40 -23
  93. {secator-0.5.2 → secator-0.7.0}/tests/integration/setup.sh +1 -0
  94. secator-0.7.0/tests/integration/test_addons.py +23 -0
  95. secator-0.7.0/tests/integration/test_celery.py +195 -0
  96. {secator-0.5.2 → secator-0.7.0}/tests/integration/test_scans.py +5 -26
  97. {secator-0.5.2 → secator-0.7.0}/tests/integration/test_tasks.py +11 -40
  98. {secator-0.5.2 → secator-0.7.0}/tests/integration/test_worker.py +20 -10
  99. {secator-0.5.2 → secator-0.7.0}/tests/integration/test_workflows.py +24 -29
  100. {secator-0.5.2 → secator-0.7.0}/tests/integration/wordlist.txt +2 -1
  101. secator-0.7.0/tests/performance/loadtester.py +77 -0
  102. secator-0.7.0/tests/performance/test_worker.py +31 -0
  103. secator-0.7.0/tests/unit/test_celery.py +117 -0
  104. secator-0.7.0/tests/unit/test_config.py +156 -0
  105. {secator-0.5.2 → secator-0.7.0}/tests/unit/test_offline.py +18 -10
  106. secator-0.7.0/tests/unit/test_runners.py +435 -0
  107. {secator-0.5.2 → secator-0.7.0}/tests/unit/test_tasks.py +68 -113
  108. secator-0.7.0/tests/unit/test_template.py +126 -0
  109. secator-0.7.0/tests/unit/test_utils.py +40 -0
  110. secator-0.5.2/pyproject.toml +0 -89
  111. secator-0.5.2/secator/celery.py +0 -369
  112. secator-0.5.2/secator/exporters/csv.py +0 -29
  113. secator-0.5.2/secator/exporters/table.py +0 -7
  114. secator-0.5.2/secator/exporters/txt.py +0 -24
  115. secator-0.5.2/secator/output_types/__init__.py +0 -24
  116. secator-0.5.2/secator/report.py +0 -95
  117. secator-0.5.2/secator/runners/_base.py +0 -910
  118. secator-0.5.2/secator/runners/_helpers.py +0 -172
  119. secator-0.5.2/secator/runners/task.py +0 -108
  120. secator-0.5.2/secator/serializers/json.py +0 -15
  121. secator-0.5.2/secator/serializers/regex.py +0 -17
  122. secator-0.5.2/secator/tasks/dnsx.py +0 -57
  123. secator-0.5.2/secator/tasks/h8mail.py +0 -80
  124. secator-0.5.2/secator/utils.py +0 -441
  125. secator-0.5.2/tests/performance/loadtester.py +0 -55
  126. secator-0.5.2/tests/unit/test_celery.py +0 -39
  127. secator-0.5.2/tests/unit/test_config.py +0 -71
  128. secator-0.5.2/tests/unit/test_template.py +0 -53
  129. secator-0.5.2/tests/unit/test_workflows.py +0 -75
  130. {secator-0.5.2 → secator-0.7.0}/.flake8 +0 -0
  131. {secator-0.5.2 → secator-0.7.0}/.gitignore +0 -0
  132. {secator-0.5.2 → secator-0.7.0}/CONTRIBUTING.md +0 -0
  133. {secator-0.5.2 → secator-0.7.0}/LICENSE +0 -0
  134. {secator-0.5.2 → secator-0.7.0}/README.md +0 -0
  135. {secator-0.5.2 → secator-0.7.0}/SECURITY.md +0 -0
  136. {secator-0.5.2 → secator-0.7.0}/cloudbuild.yaml +0 -0
  137. {secator-0.5.2 → secator-0.7.0}/images/aliases.cast +0 -0
  138. {secator-0.5.2 → secator-0.7.0}/images/aliases.gif +0 -0
  139. {secator-0.5.2 → secator-0.7.0}/images/demo.gif +0 -0
  140. {secator-0.5.2 → secator-0.7.0}/images/demo.tap +0 -0
  141. {secator-0.5.2 → secator-0.7.0}/images/fmt.cast +0 -0
  142. {secator-0.5.2 → secator-0.7.0}/images/fmt.gif +0 -0
  143. {secator-0.5.2 → secator-0.7.0}/images/help.png +0 -0
  144. {secator-0.5.2 → secator-0.7.0}/images/input.cast +0 -0
  145. {secator-0.5.2 → secator-0.7.0}/images/input.gif +0 -0
  146. {secator-0.5.2 → secator-0.7.0}/images/pipe.cast +0 -0
  147. {secator-0.5.2 → secator-0.7.0}/images/pipe.gif +0 -0
  148. {secator-0.5.2 → secator-0.7.0}/images/short_demo.cast +0 -0
  149. {secator-0.5.2 → secator-0.7.0}/images/short_demo.gif +0 -0
  150. {secator-0.5.2 → secator-0.7.0}/scripts/download_cves.sh +0 -0
  151. {secator-0.5.2 → secator-0.7.0}/scripts/install.sh +0 -0
  152. {secator-0.5.2 → secator-0.7.0}/scripts/install_asciinema.sh +0 -0
  153. {secator-0.5.2 → secator-0.7.0}/scripts/install_go.sh +0 -0
  154. {secator-0.5.2 → secator-0.7.0}/scripts/install_ruby.sh +0 -0
  155. {secator-0.5.2 → secator-0.7.0}/scripts/msf/exploit_cve.rc +0 -0
  156. {secator-0.5.2 → secator-0.7.0}/scripts/msf/ftp_anonymous.rc +0 -0
  157. {secator-0.5.2 → secator-0.7.0}/scripts/msf/ftp_version.rc +0 -0
  158. {secator-0.5.2 → secator-0.7.0}/scripts/msf/ftp_vsftpd_234_backdoor.rc +0 -0
  159. {secator-0.5.2 → secator-0.7.0}/scripts/msf/redis.rc +0 -0
  160. {secator-0.5.2 → secator-0.7.0}/scripts/msfinstall.sh +0 -0
  161. {secator-0.5.2 → secator-0.7.0}/scripts/stories/STORY.md +0 -0
  162. {secator-0.5.2 → secator-0.7.0}/scripts/stories/aliases.sh +0 -0
  163. {secator-0.5.2 → secator-0.7.0}/scripts/stories/demo.sh +0 -0
  164. {secator-0.5.2 → secator-0.7.0}/scripts/stories/fmt.sh +0 -0
  165. {secator-0.5.2 → secator-0.7.0}/scripts/stories/input.sh +0 -0
  166. {secator-0.5.2 → secator-0.7.0}/scripts/stories/pipe.sh +0 -0
  167. {secator-0.5.2 → secator-0.7.0}/scripts/stories/short_demo.sh +0 -0
  168. {secator-0.5.2 → secator-0.7.0}/secator/.gitignore +0 -0
  169. {secator-0.5.2 → secator-0.7.0}/secator/__init__.py +0 -0
  170. {secator-0.5.2 → secator-0.7.0}/secator/configs/__init__.py +0 -0
  171. {secator-0.5.2 → secator-0.7.0}/secator/configs/profiles/__init__.py +0 -0
  172. {secator-0.5.2 → secator-0.7.0}/secator/configs/profiles/aggressive.yaml +0 -0
  173. {secator-0.5.2 → secator-0.7.0}/secator/configs/profiles/default.yaml +0 -0
  174. {secator-0.5.2 → secator-0.7.0}/secator/configs/profiles/stealth.yaml +0 -0
  175. {secator-0.5.2 → secator-0.7.0}/secator/configs/scans/__init__.py +0 -0
  176. {secator-0.5.2 → secator-0.7.0}/secator/configs/scans/domain.yaml +0 -0
  177. {secator-0.5.2 → secator-0.7.0}/secator/configs/scans/host.yaml +0 -0
  178. {secator-0.5.2 → secator-0.7.0}/secator/configs/scans/network.yaml +0 -0
  179. {secator-0.5.2 → secator-0.7.0}/secator/configs/scans/subdomain.yaml +0 -0
  180. {secator-0.5.2 → secator-0.7.0}/secator/configs/scans/url.yaml +0 -0
  181. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/__init__.py +0 -0
  182. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/cidr_recon.yaml +0 -0
  183. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/code_scan.yaml +0 -0
  184. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/subdomain_recon.yaml +0 -0
  185. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/url_crawl.yaml +0 -0
  186. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/url_dirsearch.yaml +0 -0
  187. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/url_fuzz.yaml +0 -0
  188. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/url_nuclei.yaml +0 -0
  189. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/user_hunt.yaml +0 -0
  190. {secator-0.5.2 → secator-0.7.0}/secator/configs/workflows/wordpress.yaml +0 -0
  191. {secator-0.5.2 → secator-0.7.0}/secator/exporters/_base.py +0 -0
  192. {secator-0.5.2 → secator-0.7.0}/secator/hooks/__init__.py +0 -0
  193. {secator-0.5.2 → secator-0.7.0}/secator/installer.py +0 -0
  194. {secator-0.5.2 → secator-0.7.0}/secator/output_types/subdomain.py +0 -0
  195. {secator-0.5.2 → secator-0.7.0}/secator/output_types/target.py +0 -0
  196. {secator-0.5.2 → secator-0.7.0}/secator/output_types/user_account.py +0 -0
  197. {secator-0.5.2 → secator-0.7.0}/secator/runners/__init__.py +0 -0
  198. {secator-0.5.2 → secator-0.7.0}/secator/serializers/__init__.py +0 -0
  199. {secator-0.5.2 → secator-0.7.0}/secator/tasks/__init__.py +0 -0
  200. {secator-0.5.2 → secator-0.7.0}/tests/__init__.py +0 -0
  201. {secator-0.5.2 → secator-0.7.0}/tests/fixtures/h8mail_breach.txt +0 -0
  202. {secator-0.5.2 → secator-0.7.0}/tests/fixtures/msfconsole_input.rc +0 -0
  203. {secator-0.5.2 → secator-0.7.0}/tests/fixtures/nmap_output.xml +0 -0
  204. {secator-0.5.2 → secator-0.7.0}/tests/integration/__init__.py +0 -0
  205. {secator-0.5.2 → secator-0.7.0}/tests/integration/teardown.sh +0 -0
  206. {secator-0.5.2 → secator-0.7.0}/tests/integration/wordlist_dns.txt +0 -0
  207. {secator-0.5.2 → secator-0.7.0}/tests/integration/wordpress_toolbox/Dockerfile +0 -0
  208. {secator-0.5.2 → secator-0.7.0}/tests/integration/wordpress_toolbox/Makefile +0 -0
  209. {secator-0.5.2 → secator-0.7.0}/tests/performance/__init__.py +0 -0
  210. {secator-0.5.2 → secator-0.7.0}/tests/unit/__init__.py +0 -0
  211. {secator-0.5.2 → secator-0.7.0}/tests/unit/test_scans.py +0 -0
  212. {secator-0.5.2 → secator-0.7.0}/tests/unit/test_serializers.py +0 -0
@@ -1,5 +1,66 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.7.0](https://github.com/freelabz/secator/compare/v0.6.0...v0.7.0) (2024-11-13)
4
+
5
+
6
+ ### Features
7
+
8
+ * **`bup`:** add proxy option and progress indicator ([#444](https://github.com/freelabz/secator/issues/444)) ([d5c63c8](https://github.com/freelabz/secator/commit/d5c63c81c6465a142ce70e4800effc02d526a243))
9
+ * **`dnsx`:** add IP output type on dnsx A record ([#426](https://github.com/freelabz/secator/issues/426)) ([629439e](https://github.com/freelabz/secator/commit/629439e459a6eefd5cbe68e9fc3a317371ba7987))
10
+ * **`naabu`/`nmap`:** help for defaults and change workflow opts ([#438](https://github.com/freelabz/secator/issues/438)) ([4dd0055](https://github.com/freelabz/secator/commit/4dd00556648e691a093887d294325b00409ac04a))
11
+ * **`nmap`:** add udp scan (`-sU`) and change default scan opts ([#418](https://github.com/freelabz/secator/issues/418)) ([36c6ff3](https://github.com/freelabz/secator/commit/36c6ff3766f88ac311c1bfea86a1b5e8686dd94e))
12
+ * add url_bypass workflow based on bup ([e96b1bc](https://github.com/freelabz/secator/commit/e96b1bc9906cd2f9aa3eb5b3770594811f242abd))
13
+ * chunk dalfox input by 1 ([#443](https://github.com/freelabz/secator/issues/443)) ([26c38d7](https://github.com/freelabz/secator/commit/26c38d79e89be3d35f464e89c6973b7beadb6ac4))
14
+ * **cli:** misc bug fixes and features ([#445](https://github.com/freelabz/secator/issues/445)) ([fccfdb8](https://github.com/freelabz/secator/commit/fccfdb8ca38dcd3a2c559429a7d58d46ecac49a6))
15
+ * **hooks:** explicit output type yield in static hooks ([#439](https://github.com/freelabz/secator/issues/439)) ([2d1f8e6](https://github.com/freelabz/secator/commit/2d1f8e6b7b77210028efe2c2c56866efbd6b0152))
16
+ * **katana:** add form_fill option ([#419](https://github.com/freelabz/secator/issues/419)) ([bebddb1](https://github.com/freelabz/secator/commit/bebddb1e2fae460403adda2d84b9ae515ca977aa))
17
+ * **refactor:** improve performance, add on_interval hook, rework CLI opts ([#473](https://github.com/freelabz/secator/issues/473)) ([4a22a70](https://github.com/freelabz/secator/commit/4a22a7082fe1edf50644034cfc54b11653b47aa4))
18
+ * **runner:** add GCS driver and secator threads ([#476](https://github.com/freelabz/secator/issues/476)) ([cae475a](https://github.com/freelabz/secator/commit/cae475a2fe15742ccd80d40c28ad41aa1ffc5348))
19
+ * **runner:** add skip_if_no_inputs to workflows ([#482](https://github.com/freelabz/secator/issues/482)) ([5546b82](https://github.com/freelabz/secator/commit/5546b82756d6aad0d227072d5a3b1149c44306e8))
20
+ * **runner:** on serialized hooks ([#424](https://github.com/freelabz/secator/issues/424)) ([fde6cd7](https://github.com/freelabz/secator/commit/fde6cd7f6cba015b08b370bfd14b0aca3f4a4018))
21
+ * **runner:** rework Celery core and mix fixes ([#450](https://github.com/freelabz/secator/issues/450)) ([b72f152](https://github.com/freelabz/secator/commit/b72f15286bb29ae60568309907d4dad41d4fbacb))
22
+ * sudo prompt check test ([#432](https://github.com/freelabz/secator/issues/432)) ([f45b123](https://github.com/freelabz/secator/commit/f45b1230fd6313342ebdda5a359c1285f2d80aa8))
23
+ * sudo prompts in non-tty mode ([#431](https://github.com/freelabz/secator/issues/431)) ([0e26b55](https://github.com/freelabz/secator/commit/0e26b55c168bfd69c212bc7667ef1b97e89e6bd5))
24
+ * **tasks:** bbot integration ([#375](https://github.com/freelabz/secator/issues/375)) ([2f0dea4](https://github.com/freelabz/secator/commit/2f0dea4f4cac3370129d0adf0000c8d0efa54361))
25
+ * **tasks:** bup integration ([#398](https://github.com/freelabz/secator/issues/398)) ([ed636aa](https://github.com/freelabz/secator/commit/ed636aad7d90baa7b3b73baebc8f5be002dd796a))
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * **cli:** proper opts override for workflows ([#436](https://github.com/freelabz/secator/issues/436)) ([1d1eaa3](https://github.com/freelabz/secator/commit/1d1eaa3283b3d5e9650b452e3865476e6a60a086))
31
+ * **dalfox:** restore input_chunk_size to default ([8f0a3b4](https://github.com/freelabz/secator/commit/8f0a3b4976e20afc2fb708483c7f8885b2b9f3d9))
32
+ * dnsx parsing output loading error ([#422](https://github.com/freelabz/secator/issues/422)) ([b9e98da](https://github.com/freelabz/secator/commit/b9e98da2b5378957076e1d8f0afd3948d5bcb5f6))
33
+ * empty CVE should pass ([#478](https://github.com/freelabz/secator/issues/478)) ([0644d68](https://github.com/freelabz/secator/commit/0644d68ccb92a4c38e8210e39f14f0850d84348d))
34
+ * gcs bug with empty paths ([549ac4c](https://github.com/freelabz/secator/commit/549ac4c8e7391a829cf1a6c5a43ad291bec1b34a))
35
+ * gcs bug with empty paths ([2d57e1a](https://github.com/freelabz/secator/commit/2d57e1ad4669587cf0abb0a59b0918cf72107d72))
36
+ * get_opt_value default value and reorg hooks ([#429](https://github.com/freelabz/secator/issues/429)) ([a44a36d](https://github.com/freelabz/secator/commit/a44a36d37f888787927ec6dfc891e86dab071aa4))
37
+ * mix bugfixes for stable release ([b743925](https://github.com/freelabz/secator/commit/b7439258c9cdadc7bd14a0a0b49e2db2d0f5b537))
38
+ * nmap defaults ([396f68a](https://github.com/freelabz/secator/commit/396f68a325a5a8f1a9379d314979dbf85a9c95c7))
39
+ * **nmap:** undefined service name ([#437](https://github.com/freelabz/secator/issues/437)) ([596f1af](https://github.com/freelabz/secator/commit/596f1aff53e9add73e1587497aee82465d212300))
40
+ * runner opts processing ([#477](https://github.com/freelabz/secator/issues/477)) ([d788e9d](https://github.com/freelabz/secator/commit/d788e9d3e508a849119d418bcc5ce371c6c53c6c))
41
+ * runner toDict() errors ([#475](https://github.com/freelabz/secator/issues/475)) ([b43c866](https://github.com/freelabz/secator/commit/b43c8669808651368536fa121be2ce79de7556aa))
42
+ * **runner:** bug with no inputs ([#483](https://github.com/freelabz/secator/issues/483)) ([4db7b46](https://github.com/freelabz/secator/commit/4db7b460a949e6b74b5837f0f1e3b5ca51b39094))
43
+ * **url_vuln:** repair bad condition ([214c8ab](https://github.com/freelabz/secator/commit/214c8abf7cad4916c8301ff056d894cc0bc26b28))
44
+
45
+
46
+ ### Documentation
47
+
48
+ * add package json ([#415](https://github.com/freelabz/secator/issues/415)) ([f9a7c2f](https://github.com/freelabz/secator/commit/f9a7c2fc5df11506cce0d81babf1f7790b80465a))
49
+
50
+ ## [0.6.0](https://github.com/freelabz/secator/compare/v0.5.2...v0.6.0) (2024-07-25)
51
+
52
+
53
+ ### Features
54
+
55
+ * add duplicate finder to mongodb hooks ([#409](https://github.com/freelabz/secator/issues/409)) ([fb0e11c](https://github.com/freelabz/secator/commit/fb0e11cd2b64bf51bc862f47243c8c0602d3d5e9))
56
+ * basic helm chart ([#408](https://github.com/freelabz/secator/issues/408)) ([6b2f84f](https://github.com/freelabz/secator/commit/6b2f84f61bd8eccf2cdd61b6ffdc2eb4489240bc))
57
+
58
+
59
+ ### Bug Fixes
60
+
61
+ * Dockerfile broken apt install ([#407](https://github.com/freelabz/secator/issues/407)) ([c023279](https://github.com/freelabz/secator/commit/c02327968ecea816004636801684b336735df439))
62
+ * **tasks:** duplicate meta opt entry ([#401](https://github.com/freelabz/secator/issues/401)) ([ae56aa6](https://github.com/freelabz/secator/commit/ae56aa62f5a18936a1787547e37bbe636e6e43c3))
63
+
3
64
  ## [0.5.2](https://github.com/freelabz/secator/compare/v0.5.1...v0.5.2) (2024-05-07)
4
65
 
5
66
 
@@ -22,8 +22,7 @@ RUN apt update -y && \
22
22
  jq \
23
23
  openssl \
24
24
  proxychains \
25
- proxychains-ng \
26
- && rm -rf /var/lib/apt/lists/*
25
+ proxychains-ng
27
26
 
28
27
  # Install Metasploit framework
29
28
  RUN curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
@@ -38,10 +37,14 @@ COPY . /code/
38
37
  RUN pipx install .
39
38
  RUN secator install tools
40
39
  RUN secator install addons worker
41
- RUN secator install addons google
40
+ RUN secator install addons gdrive
41
+ RUN secator install addons gcs
42
42
  RUN secator install addons mongodb
43
43
  RUN secator install addons redis
44
44
  RUN secator install addons dev
45
45
 
46
+ # Cleanup
47
+ RUN rm -rf /var/lib/apt/lists/*
48
+
46
49
  # Set entrypoint
47
50
  ENTRYPOINT ["secator"]
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: secator
3
- Version: 0.5.2
3
+ Version: 0.7.0
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
7
7
  Author-email: FreeLabz <sales@freelabz.com>
8
- License-File: LICENSE
9
8
  Keywords: automation,cybersecurity,pentest,recon,vulnerability
10
9
  Classifier: Development Status :: 3 - Alpha
11
10
  Classifier: Intended Audience :: Developers
@@ -19,22 +18,26 @@ Classifier: Programming Language :: Python :: 3.9
19
18
  Classifier: Programming Language :: Python :: 3.10
20
19
  Classifier: Programming Language :: Python :: 3.11
21
20
  Requires-Python: >=3.8
22
- Requires-Dist: bs4<1
21
+ Requires-Dist: beautifulsoup4<=5
23
22
  Requires-Dist: celery<6
24
23
  Requires-Dist: cpe<2
25
24
  Requires-Dist: dotmap<2
26
25
  Requires-Dist: free-proxy<2
27
26
  Requires-Dist: furl<3
27
+ Requires-Dist: greenlet<4
28
28
  Requires-Dist: humanize<5
29
29
  Requires-Dist: ifaddr<1
30
30
  Requires-Dist: jinja2<4
31
31
  Requires-Dist: packaging<25
32
+ Requires-Dist: psutil<7
32
33
  Requires-Dist: pydantic<3
33
34
  Requires-Dist: python-dotenv<2
34
35
  Requires-Dist: pyyaml<7
35
36
  Requires-Dist: requests<3
37
+ Requires-Dist: retry<1
36
38
  Requires-Dist: rich-click<1.7
37
39
  Requires-Dist: rich<14
40
+ Requires-Dist: tldextract<6
38
41
  Requires-Dist: typing-extensions<5
39
42
  Requires-Dist: validators<1
40
43
  Requires-Dist: xmltodict<1
@@ -44,10 +47,13 @@ Provides-Extra: dev
44
47
  Requires-Dist: asciinema-automation<1; extra == 'dev'
45
48
  Requires-Dist: coverage<8; extra == 'dev'
46
49
  Requires-Dist: flake8<8; extra == 'dev'
50
+ Requires-Dist: pytest<9; extra == 'dev'
47
51
  Requires-Dist: watchdog<3; extra == 'dev'
48
- Provides-Extra: google
49
- Requires-Dist: google-api-python-client<3; extra == 'google'
50
- Requires-Dist: gspread<7; extra == 'google'
52
+ Provides-Extra: gcs
53
+ Requires-Dist: google-cloud-storage<3; extra == 'gcs'
54
+ Provides-Extra: gdrive
55
+ Requires-Dist: google-api-python-client<3; extra == 'gdrive'
56
+ Requires-Dist: gspread<7; extra == 'gdrive'
51
57
  Provides-Extra: mongodb
52
58
  Requires-Dist: pymongo<5; extra == 'mongodb'
53
59
  Provides-Extra: redis
@@ -0,0 +1,23 @@
1
+ # Patterns to ignore when building packages.
2
+ # This supports shell glob matching, relative path matching, and
3
+ # negation (prefixed with !). Only one pattern per line.
4
+ .DS_Store
5
+ # Common VCS dirs
6
+ .git/
7
+ .gitignore
8
+ .bzr/
9
+ .bzrignore
10
+ .hg/
11
+ .hgignore
12
+ .svn/
13
+ # Common backup files
14
+ *.swp
15
+ *.bak
16
+ *.tmp
17
+ *.orig
18
+ *~
19
+ # Various IDEs
20
+ .project
21
+ .idea/
22
+ *.tmproj
23
+ .vscode/
@@ -0,0 +1,7 @@
1
+ apiVersion: v2
2
+ name: Secator
3
+ description: A Secator Helm chart for Kubernetes
4
+
5
+ type: application
6
+ version: 0.1.0
7
+ appVersion: "0.5.2"
@@ -0,0 +1,12 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: {{ .Values.redis.name }}
5
+ namespace: {{ .Values.namespace }}
6
+ spec:
7
+ type: ClusterIP
8
+ ports:
9
+ - port: {{ .Values.redis.port }}
10
+ name: client
11
+ selector:
12
+ app: redis
@@ -0,0 +1,22 @@
1
+ apiVersion: apps/v1
2
+ kind: StatefulSet
3
+ metadata:
4
+ name: {{ .Values.redis.name }}
5
+ namespace: {{ .Values.namespace }}
6
+ spec:
7
+ selector:
8
+ matchLabels:
9
+ app: redis
10
+ serviceName: {{ .Values.redis.name }}
11
+ replicas: {{ .Values.redis.replicas }}
12
+ template:
13
+ metadata:
14
+ labels:
15
+ app: redis
16
+ spec:
17
+ containers:
18
+ - name: {{ .Values.redis.name }}
19
+ image: {{ .Values.redis.image }}
20
+ ports:
21
+ - containerPort: {{ .Values.redis.port }}
22
+ name: client
@@ -0,0 +1,18 @@
1
+ apiVersion: v1
2
+ kind: Pod
3
+ metadata:
4
+ name: {{ .Values.secatorManager.name }}
5
+ namespace: {{ .Values.namespace }}
6
+ labels:
7
+ name: secator-manager
8
+ spec:
9
+ containers:
10
+ - name: secator-manager
11
+ image: {{ .Values.secatorManager.image }}
12
+ command: ["tail"]
13
+ args: ["-F", "anything"]
14
+ env:
15
+ - name: SECATOR_CELERY_BROKER_URL
16
+ value: "redis://{{ .Values.redis.name }}:6379/0"
17
+ - name: SECATOR_CELERY_RESULT_BACKEND
18
+ value: "redis://{{ .Values.redis.name }}:6379/0"
@@ -0,0 +1,24 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: {{ .Values.secatorWorker.name }}
5
+ namespace: {{ .Values.namespace }}
6
+ spec:
7
+ selector:
8
+ matchLabels:
9
+ app: secator-worker
10
+ template:
11
+ metadata:
12
+ labels:
13
+ app: secator-worker
14
+ spec:
15
+ containers:
16
+ - name: {{ .Values.secatorWorker.name }}
17
+ image: {{ .Values.secatorWorker.image }}
18
+ command: ["secator"]
19
+ args: ["worker"]
20
+ env:
21
+ - name: SECATOR_CELERY_BROKER_URL
22
+ value: "redis://{{ .Values.redis.name }}:6379/0"
23
+ - name: SECATOR_CELERY_RESULT_BACKEND
24
+ value: "redis://{{ .Values.redis.name }}:6379/0"
@@ -0,0 +1,34 @@
1
+ # Default values for Secator
2
+ # This is a YAML-formatted file.
3
+ # Declare variables to be passed into your templates.
4
+
5
+ namespace: secator
6
+
7
+ secatorManager:
8
+ name: secator-manager
9
+ image: "freelabz/secator"
10
+
11
+ # Empty if using default repository
12
+ repository:
13
+ # Empty if using tag "latest"
14
+ tag:
15
+
16
+ secatorWorker:
17
+ name: secator-worker
18
+ image: "freelabz/secator"
19
+
20
+ # Empty if using default repository
21
+ repository:
22
+ # Empty if using tag "latest"
23
+ tag:
24
+
25
+ redis:
26
+ name: redis
27
+ image: "redis"
28
+
29
+ # Empty if using default repository
30
+ repository:
31
+ # Empty if using tag "latest"
32
+ tag:
33
+ replicas: 1
34
+ port: 6379
@@ -0,0 +1,97 @@
1
+ [build-system]
2
+ requires = ['hatchling']
3
+ build-backend = 'hatchling.build'
4
+
5
+ [project]
6
+ name = 'secator'
7
+ version = "0.7.0"
8
+ authors = [{ name = 'FreeLabz', email = 'sales@freelabz.com' }]
9
+ readme = 'README.md'
10
+ description = "The pentester's swiss knife."
11
+ requires-python = '>=3.8'
12
+ keywords = [
13
+ 'cybersecurity',
14
+ 'recon',
15
+ 'vulnerability',
16
+ 'pentest',
17
+ 'automation'
18
+ ]
19
+ classifiers = [
20
+ 'Development Status :: 3 - Alpha',
21
+ 'Intended Audience :: Developers',
22
+ 'Intended Audience :: Information Technology',
23
+ 'License :: Free for non-commercial use',
24
+ 'Operating System :: Unix',
25
+ 'Programming Language :: Python',
26
+ 'Programming Language :: Python :: 3',
27
+ 'Programming Language :: Python :: 3.8',
28
+ 'Programming Language :: Python :: 3.9',
29
+ 'Programming Language :: Python :: 3.10',
30
+ 'Programming Language :: Python :: 3.11',
31
+ ]
32
+ dependencies = [
33
+ 'beautifulsoup4 <= 5',
34
+ 'celery < 6',
35
+ 'cpe < 2',
36
+ 'dotmap < 2',
37
+ 'free-proxy < 2',
38
+ 'furl < 3',
39
+ 'greenlet < 4',
40
+ 'humanize < 5',
41
+ 'ifaddr < 1',
42
+ 'jinja2 < 4',
43
+ 'packaging < 25',
44
+ 'python-dotenv < 2',
45
+ 'pyyaml < 7',
46
+ 'pydantic < 3',
47
+ 'requests < 3',
48
+ 'rich < 14',
49
+ 'rich-click < 1.7',
50
+ 'psutil < 7',
51
+ 'retry < 1',
52
+ 'tldextract < 6',
53
+ 'typing_extensions < 5',
54
+ 'validators < 1',
55
+ 'xmltodict < 1'
56
+ ]
57
+
58
+ [project.optional-dependencies]
59
+ dev = [
60
+ 'coverage < 8',
61
+ 'flake8 < 8',
62
+ 'pytest < 9',
63
+ 'watchdog < 3',
64
+ 'asciinema-automation < 1',
65
+ ]
66
+ build = [
67
+ 'hatch < 2',
68
+ ]
69
+ trace = [
70
+ 'memray < 2',
71
+ 'pyinstrument < 5',
72
+ ]
73
+ worker = [
74
+ 'gevent < 25',
75
+ 'eventlet < 1',
76
+ 'flower < 3',
77
+ ]
78
+ redis = [
79
+ 'redis < 6',
80
+ ]
81
+ mongodb = [
82
+ 'pymongo < 5',
83
+ ]
84
+ gdrive = [
85
+ 'google-api-python-client < 3',
86
+ 'gspread < 7'
87
+ ]
88
+ gcs = [
89
+ 'google-cloud-storage < 3'
90
+ ]
91
+
92
+ [project.scripts]
93
+ secator = 'secator.cli:cli'
94
+
95
+ [project.urls]
96
+ Homepage = 'https://github.com/freelabz/secator'
97
+ Issues = 'https://github.com/freelabz/secator/issues'