secator 0.9.0__tar.gz → 0.9.2__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 (189) hide show
  1. secator-0.9.2/.docker/Dockerfile.alpine +33 -0
  2. secator-0.9.2/.docker/Dockerfile.arch +36 -0
  3. secator-0.9.2/.docker/Dockerfile.debian +38 -0
  4. secator-0.9.2/.docker/Dockerfile.kali +37 -0
  5. secator-0.9.2/.docker/Dockerfile.osx +40 -0
  6. secator-0.9.2/.docker/Dockerfile.ubuntu +37 -0
  7. secator-0.9.2/.docker/build_all.sh +30 -0
  8. {secator-0.9.0 → secator-0.9.2}/.gitignore +0 -1
  9. {secator-0.9.0 → secator-0.9.2}/CHANGELOG.md +20 -0
  10. {secator-0.9.0 → secator-0.9.2}/PKG-INFO +14 -11
  11. {secator-0.9.0 → secator-0.9.2}/README.md +13 -10
  12. {secator-0.9.0 → secator-0.9.2}/pyproject.toml +1 -1
  13. {secator-0.9.0 → secator-0.9.2}/secator/celery.py +7 -6
  14. {secator-0.9.0 → secator-0.9.2}/secator/cli.py +1 -1
  15. {secator-0.9.0 → secator-0.9.2}/secator/config.py +6 -0
  16. {secator-0.9.0 → secator-0.9.2}/secator/runners/command.py +1 -1
  17. {secator-0.9.0 → secator-0.9.2}/secator/tasks/bbot.py +1 -1
  18. {secator-0.9.0 → secator-0.9.2}/secator/tasks/wpscan.py +2 -0
  19. {secator-0.9.0 → secator-0.9.2}/.dockerignore +0 -0
  20. {secator-0.9.0 → secator-0.9.2}/.flake8 +0 -0
  21. {secator-0.9.0 → secator-0.9.2}/CONTRIBUTING.md +0 -0
  22. {secator-0.9.0 → secator-0.9.2}/Dockerfile +0 -0
  23. {secator-0.9.0 → secator-0.9.2}/LICENSE +0 -0
  24. {secator-0.9.0 → secator-0.9.2}/SECURITY.md +0 -0
  25. {secator-0.9.0 → secator-0.9.2}/cloudbuild.yaml +0 -0
  26. {secator-0.9.0 → secator-0.9.2}/helm/.helmignore +0 -0
  27. {secator-0.9.0 → secator-0.9.2}/helm/Chart.yaml +0 -0
  28. {secator-0.9.0 → secator-0.9.2}/helm/templates/redis-service.yaml +0 -0
  29. {secator-0.9.0 → secator-0.9.2}/helm/templates/redis.yaml +0 -0
  30. {secator-0.9.0 → secator-0.9.2}/helm/templates/secator-manager.yaml +0 -0
  31. {secator-0.9.0 → secator-0.9.2}/helm/templates/secator-worker.yaml +0 -0
  32. {secator-0.9.0 → secator-0.9.2}/helm/values.yaml +0 -0
  33. {secator-0.9.0 → secator-0.9.2}/scripts/download_cves.sh +0 -0
  34. {secator-0.9.0 → secator-0.9.2}/scripts/install.sh +0 -0
  35. {secator-0.9.0 → secator-0.9.2}/scripts/install_asciinema.sh +0 -0
  36. {secator-0.9.0 → secator-0.9.2}/scripts/install_go.sh +0 -0
  37. {secator-0.9.0 → secator-0.9.2}/scripts/install_ruby.sh +0 -0
  38. {secator-0.9.0 → secator-0.9.2}/scripts/msf/exploit_cve.rc +0 -0
  39. {secator-0.9.0 → secator-0.9.2}/scripts/msf/ftp_anonymous.rc +0 -0
  40. {secator-0.9.0 → secator-0.9.2}/scripts/msf/ftp_version.rc +0 -0
  41. {secator-0.9.0 → secator-0.9.2}/scripts/msf/ftp_vsftpd_234_backdoor.rc +0 -0
  42. {secator-0.9.0 → secator-0.9.2}/scripts/msf/redis.rc +0 -0
  43. {secator-0.9.0 → secator-0.9.2}/scripts/stories/STORY.md +0 -0
  44. {secator-0.9.0 → secator-0.9.2}/scripts/stories/aliases.sh +0 -0
  45. {secator-0.9.0 → secator-0.9.2}/scripts/stories/demo.sh +0 -0
  46. {secator-0.9.0 → secator-0.9.2}/scripts/stories/fmt.sh +0 -0
  47. {secator-0.9.0 → secator-0.9.2}/scripts/stories/input.sh +0 -0
  48. {secator-0.9.0 → secator-0.9.2}/scripts/stories/pipe.sh +0 -0
  49. {secator-0.9.0 → secator-0.9.2}/scripts/stories/short_demo.sh +0 -0
  50. {secator-0.9.0 → secator-0.9.2}/secator/.gitignore +0 -0
  51. {secator-0.9.0 → secator-0.9.2}/secator/__init__.py +0 -0
  52. {secator-0.9.0 → secator-0.9.2}/secator/celery_utils.py +0 -0
  53. {secator-0.9.0 → secator-0.9.2}/secator/configs/__init__.py +0 -0
  54. {secator-0.9.0 → secator-0.9.2}/secator/configs/profiles/__init__.py +0 -0
  55. {secator-0.9.0 → secator-0.9.2}/secator/configs/profiles/aggressive.yaml +0 -0
  56. {secator-0.9.0 → secator-0.9.2}/secator/configs/profiles/default.yaml +0 -0
  57. {secator-0.9.0 → secator-0.9.2}/secator/configs/profiles/stealth.yaml +0 -0
  58. {secator-0.9.0 → secator-0.9.2}/secator/configs/scans/__init__.py +0 -0
  59. {secator-0.9.0 → secator-0.9.2}/secator/configs/scans/domain.yaml +0 -0
  60. {secator-0.9.0 → secator-0.9.2}/secator/configs/scans/host.yaml +0 -0
  61. {secator-0.9.0 → secator-0.9.2}/secator/configs/scans/network.yaml +0 -0
  62. {secator-0.9.0 → secator-0.9.2}/secator/configs/scans/subdomain.yaml +0 -0
  63. {secator-0.9.0 → secator-0.9.2}/secator/configs/scans/url.yaml +0 -0
  64. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/__init__.py +0 -0
  65. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/cidr_recon.yaml +0 -0
  66. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/code_scan.yaml +0 -0
  67. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/host_recon.yaml +0 -0
  68. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/port_scan.yaml +0 -0
  69. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/subdomain_recon.yaml +0 -0
  70. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/url_bypass.yaml +0 -0
  71. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/url_crawl.yaml +0 -0
  72. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/url_dirsearch.yaml +0 -0
  73. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/url_fuzz.yaml +0 -0
  74. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/url_nuclei.yaml +0 -0
  75. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/url_vuln.yaml +0 -0
  76. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/user_hunt.yaml +0 -0
  77. {secator-0.9.0 → secator-0.9.2}/secator/configs/workflows/wordpress.yaml +0 -0
  78. {secator-0.9.0 → secator-0.9.2}/secator/decorators.py +0 -0
  79. {secator-0.9.0 → secator-0.9.2}/secator/definitions.py +0 -0
  80. {secator-0.9.0 → secator-0.9.2}/secator/exporters/__init__.py +0 -0
  81. {secator-0.9.0 → secator-0.9.2}/secator/exporters/_base.py +0 -0
  82. {secator-0.9.0 → secator-0.9.2}/secator/exporters/console.py +0 -0
  83. {secator-0.9.0 → secator-0.9.2}/secator/exporters/csv.py +0 -0
  84. {secator-0.9.0 → secator-0.9.2}/secator/exporters/gdrive.py +0 -0
  85. {secator-0.9.0 → secator-0.9.2}/secator/exporters/json.py +0 -0
  86. {secator-0.9.0 → secator-0.9.2}/secator/exporters/table.py +0 -0
  87. {secator-0.9.0 → secator-0.9.2}/secator/exporters/txt.py +0 -0
  88. {secator-0.9.0 → secator-0.9.2}/secator/hooks/__init__.py +0 -0
  89. {secator-0.9.0 → secator-0.9.2}/secator/hooks/gcs.py +0 -0
  90. {secator-0.9.0 → secator-0.9.2}/secator/hooks/mongodb.py +0 -0
  91. {secator-0.9.0 → secator-0.9.2}/secator/installer.py +0 -0
  92. {secator-0.9.0 → secator-0.9.2}/secator/output_types/__init__.py +0 -0
  93. {secator-0.9.0 → secator-0.9.2}/secator/output_types/_base.py +0 -0
  94. {secator-0.9.0 → secator-0.9.2}/secator/output_types/error.py +0 -0
  95. {secator-0.9.0 → secator-0.9.2}/secator/output_types/exploit.py +0 -0
  96. {secator-0.9.0 → secator-0.9.2}/secator/output_types/info.py +0 -0
  97. {secator-0.9.0 → secator-0.9.2}/secator/output_types/ip.py +0 -0
  98. {secator-0.9.0 → secator-0.9.2}/secator/output_types/port.py +0 -0
  99. {secator-0.9.0 → secator-0.9.2}/secator/output_types/progress.py +0 -0
  100. {secator-0.9.0 → secator-0.9.2}/secator/output_types/record.py +0 -0
  101. {secator-0.9.0 → secator-0.9.2}/secator/output_types/stat.py +0 -0
  102. {secator-0.9.0 → secator-0.9.2}/secator/output_types/subdomain.py +0 -0
  103. {secator-0.9.0 → secator-0.9.2}/secator/output_types/tag.py +0 -0
  104. {secator-0.9.0 → secator-0.9.2}/secator/output_types/target.py +0 -0
  105. {secator-0.9.0 → secator-0.9.2}/secator/output_types/url.py +0 -0
  106. {secator-0.9.0 → secator-0.9.2}/secator/output_types/user_account.py +0 -0
  107. {secator-0.9.0 → secator-0.9.2}/secator/output_types/vulnerability.py +0 -0
  108. {secator-0.9.0 → secator-0.9.2}/secator/output_types/warning.py +0 -0
  109. {secator-0.9.0 → secator-0.9.2}/secator/report.py +0 -0
  110. {secator-0.9.0 → secator-0.9.2}/secator/rich.py +0 -0
  111. {secator-0.9.0 → secator-0.9.2}/secator/runners/__init__.py +0 -0
  112. {secator-0.9.0 → secator-0.9.2}/secator/runners/_base.py +0 -0
  113. {secator-0.9.0 → secator-0.9.2}/secator/runners/_helpers.py +0 -0
  114. {secator-0.9.0 → secator-0.9.2}/secator/runners/celery.py +0 -0
  115. {secator-0.9.0 → secator-0.9.2}/secator/runners/scan.py +0 -0
  116. {secator-0.9.0 → secator-0.9.2}/secator/runners/task.py +0 -0
  117. {secator-0.9.0 → secator-0.9.2}/secator/runners/workflow.py +0 -0
  118. {secator-0.9.0 → secator-0.9.2}/secator/scans/__init__.py +0 -0
  119. {secator-0.9.0 → secator-0.9.2}/secator/serializers/__init__.py +0 -0
  120. {secator-0.9.0 → secator-0.9.2}/secator/serializers/dataclass.py +0 -0
  121. {secator-0.9.0 → secator-0.9.2}/secator/serializers/json.py +0 -0
  122. {secator-0.9.0 → secator-0.9.2}/secator/serializers/regex.py +0 -0
  123. {secator-0.9.0 → secator-0.9.2}/secator/tasks/__init__.py +0 -0
  124. {secator-0.9.0 → secator-0.9.2}/secator/tasks/_categories.py +0 -0
  125. {secator-0.9.0 → secator-0.9.2}/secator/tasks/bup.py +0 -0
  126. {secator-0.9.0 → secator-0.9.2}/secator/tasks/cariddi.py +0 -0
  127. {secator-0.9.0 → secator-0.9.2}/secator/tasks/dalfox.py +0 -0
  128. {secator-0.9.0 → secator-0.9.2}/secator/tasks/dirsearch.py +0 -0
  129. {secator-0.9.0 → secator-0.9.2}/secator/tasks/dnsx.py +0 -0
  130. {secator-0.9.0 → secator-0.9.2}/secator/tasks/dnsxbrute.py +0 -0
  131. {secator-0.9.0 → secator-0.9.2}/secator/tasks/feroxbuster.py +0 -0
  132. {secator-0.9.0 → secator-0.9.2}/secator/tasks/ffuf.py +0 -0
  133. {secator-0.9.0 → secator-0.9.2}/secator/tasks/fping.py +0 -0
  134. {secator-0.9.0 → secator-0.9.2}/secator/tasks/gau.py +0 -0
  135. {secator-0.9.0 → secator-0.9.2}/secator/tasks/gf.py +0 -0
  136. {secator-0.9.0 → secator-0.9.2}/secator/tasks/gospider.py +0 -0
  137. {secator-0.9.0 → secator-0.9.2}/secator/tasks/grype.py +0 -0
  138. {secator-0.9.0 → secator-0.9.2}/secator/tasks/h8mail.py +0 -0
  139. {secator-0.9.0 → secator-0.9.2}/secator/tasks/httpx.py +0 -0
  140. {secator-0.9.0 → secator-0.9.2}/secator/tasks/katana.py +0 -0
  141. {secator-0.9.0 → secator-0.9.2}/secator/tasks/maigret.py +0 -0
  142. {secator-0.9.0 → secator-0.9.2}/secator/tasks/mapcidr.py +0 -0
  143. {secator-0.9.0 → secator-0.9.2}/secator/tasks/msfconsole.py +0 -0
  144. {secator-0.9.0 → secator-0.9.2}/secator/tasks/naabu.py +0 -0
  145. {secator-0.9.0 → secator-0.9.2}/secator/tasks/nmap.py +0 -0
  146. {secator-0.9.0 → secator-0.9.2}/secator/tasks/nuclei.py +0 -0
  147. {secator-0.9.0 → secator-0.9.2}/secator/tasks/searchsploit.py +0 -0
  148. {secator-0.9.0 → secator-0.9.2}/secator/tasks/subfinder.py +0 -0
  149. {secator-0.9.0 → secator-0.9.2}/secator/template.py +0 -0
  150. {secator-0.9.0 → secator-0.9.2}/secator/thread.py +0 -0
  151. {secator-0.9.0 → secator-0.9.2}/secator/utils.py +0 -0
  152. {secator-0.9.0 → secator-0.9.2}/secator/utils_test.py +0 -0
  153. {secator-0.9.0 → secator-0.9.2}/secator/workflows/__init__.py +0 -0
  154. {secator-0.9.0 → secator-0.9.2}/tests/__init__.py +0 -0
  155. {secator-0.9.0 → secator-0.9.2}/tests/fixtures/h8mail_breach.txt +0 -0
  156. {secator-0.9.0 → secator-0.9.2}/tests/fixtures/ls.py +0 -0
  157. {secator-0.9.0 → secator-0.9.2}/tests/fixtures/msfconsole_input.rc +0 -0
  158. {secator-0.9.0 → secator-0.9.2}/tests/fixtures/nmap_output.xml +0 -0
  159. {secator-0.9.0 → secator-0.9.2}/tests/integration/__init__.py +0 -0
  160. {secator-0.9.0 → secator-0.9.2}/tests/integration/inputs.py +0 -0
  161. {secator-0.9.0 → secator-0.9.2}/tests/integration/outputs.py +0 -0
  162. {secator-0.9.0 → secator-0.9.2}/tests/integration/setup.sh +0 -0
  163. {secator-0.9.0 → secator-0.9.2}/tests/integration/teardown.sh +0 -0
  164. {secator-0.9.0 → secator-0.9.2}/tests/integration/test_addons.py +0 -0
  165. {secator-0.9.0 → secator-0.9.2}/tests/integration/test_celery.py +0 -0
  166. {secator-0.9.0 → secator-0.9.2}/tests/integration/test_scans.py +0 -0
  167. {secator-0.9.0 → secator-0.9.2}/tests/integration/test_tasks.py +0 -0
  168. {secator-0.9.0 → secator-0.9.2}/tests/integration/test_tasks_categories.py +0 -0
  169. {secator-0.9.0 → secator-0.9.2}/tests/integration/test_worker.py +0 -0
  170. {secator-0.9.0 → secator-0.9.2}/tests/integration/test_workflows.py +0 -0
  171. {secator-0.9.0 → secator-0.9.2}/tests/integration/wordlist.txt +0 -0
  172. {secator-0.9.0 → secator-0.9.2}/tests/integration/wordlist_dns.txt +0 -0
  173. {secator-0.9.0 → secator-0.9.2}/tests/integration/wordpress_toolbox/Dockerfile +0 -0
  174. {secator-0.9.0 → secator-0.9.2}/tests/integration/wordpress_toolbox/Makefile +0 -0
  175. {secator-0.9.0 → secator-0.9.2}/tests/performance/__init__.py +0 -0
  176. {secator-0.9.0 → secator-0.9.2}/tests/performance/loadtester.py +0 -0
  177. {secator-0.9.0 → secator-0.9.2}/tests/performance/test_worker.py +0 -0
  178. {secator-0.9.0 → secator-0.9.2}/tests/unit/__init__.py +0 -0
  179. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_celery.py +0 -0
  180. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_cli.py +0 -0
  181. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_config.py +0 -0
  182. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_offline.py +0 -0
  183. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_runners.py +0 -0
  184. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_scans.py +0 -0
  185. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_serializers.py +0 -0
  186. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_tasks.py +0 -0
  187. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_tasks_categories.py +0 -0
  188. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_template.py +0 -0
  189. {secator-0.9.0 → secator-0.9.2}/tests/unit/test_utils.py +0 -0
@@ -0,0 +1,33 @@
1
+ FROM alpine:latest AS builder
2
+
3
+ ENV PATH="${PATH}:/root/.local/bin"
4
+ RUN apk add --no-cache \
5
+ flock \
6
+ gcc \
7
+ musl-dev \
8
+ linux-headers \
9
+ pipx \
10
+ python3-dev
11
+ COPY . /code
12
+ WORKDIR /code
13
+
14
+ RUN pipx install --pip-args="--no-cache-dir" . && \
15
+ secator install addons worker && \
16
+ secator install addons gdrive && \
17
+ secator install addons gcs && \
18
+ secator install addons mongodb && \
19
+ secator install addons redis && \
20
+ secator install addons dev
21
+
22
+ FROM python:3.12-alpine
23
+ ARG flavor=full
24
+ ENV TERM="xterm-256color"
25
+ ENV PATH="${PATH}:/root/.local/bin"
26
+ ENV GOBIN="/root/.local/bin"
27
+ COPY --from=builder /root/.local /root/.local
28
+ RUN apk add --no-cache \
29
+ flock \
30
+ pipx \
31
+ sudo
32
+ RUN if [ "$flavor" != "lite" ]; then secator install tools --cleanup; fi
33
+ ENTRYPOINT ["secator"]
@@ -0,0 +1,36 @@
1
+ FROM archlinux:latest
2
+
3
+ ENV PATH="${PATH}:/root/.local/bin"
4
+ ENV GOBIN="/root/.local/bin"
5
+ RUN pacman -Syu --noconfirm && \
6
+ pacman -S --noconfirm \
7
+ base-devel \
8
+ bash \
9
+ curl \
10
+ git \
11
+ go \
12
+ jq \
13
+ openssl \
14
+ proxychains \
15
+ proxychains-ng \
16
+ python \
17
+ python-pip \
18
+ python-pipx \
19
+ ruby \
20
+ rubygems \
21
+ sudo \
22
+ unzip \
23
+ vim \
24
+ wget
25
+ COPY . /code
26
+ WORKDIR /code
27
+ RUN pipx install . && \
28
+ secator install addons worker && \
29
+ secator install addons gdrive && \
30
+ secator install addons gcs && \
31
+ secator install addons mongodb && \
32
+ secator install addons redis && \
33
+ secator install addons dev
34
+ RUN secator config set security.force_source_install true
35
+ RUN secator install tools --cleanup
36
+ ENTRYPOINT ["secator"]
@@ -0,0 +1,38 @@
1
+ FROM debian:latest
2
+
3
+ ENV PATH="${PATH}:/root/.local/bin"
4
+ ENV GOBIN="/root/.local/bin"
5
+ RUN apt update -y && \
6
+ apt install -y \
7
+ bash \
8
+ build-essential \
9
+ curl \
10
+ git \
11
+ golang-go \
12
+ jq \
13
+ openssl \
14
+ pipx \
15
+ python3 \
16
+ python3-pip \
17
+ python3-venv \
18
+ proxychains \
19
+ proxychains-ng \
20
+ ruby-full \
21
+ rubygems \
22
+ sudo \
23
+ unzip \
24
+ vim \
25
+ wget
26
+ COPY . /code
27
+ WORKDIR /code
28
+ RUN pipx install . && \
29
+ secator install addons worker && \
30
+ secator install addons gdrive && \
31
+ secator install addons gcs && \
32
+ secator install addons mongodb && \
33
+ secator install addons redis && \
34
+ secator install addons dev
35
+ RUN secator install langs go
36
+ RUN secator config set security.force_source_install true
37
+ RUN secator install tools --cleanup
38
+ ENTRYPOINT ["secator"]
@@ -0,0 +1,37 @@
1
+ FROM kalilinux/kali-rolling:latest
2
+
3
+ ENV PATH="${PATH}:/root/.local/bin"
4
+ ENV GOBIN="/root/.local/bin"
5
+ RUN apt update -y && \
6
+ apt install -y \
7
+ bash \
8
+ build-essential \
9
+ curl \
10
+ git \
11
+ golang-go \
12
+ jq \
13
+ openssl \
14
+ pipx \
15
+ python3 \
16
+ python3-pip \
17
+ python3-venv \
18
+ proxychains \
19
+ proxychains-ng \
20
+ ruby-full \
21
+ rubygems \
22
+ sudo \
23
+ unzip \
24
+ vim \
25
+ wget
26
+ COPY . /code
27
+ WORKDIR /code
28
+ RUN pipx install . && \
29
+ secator install addons worker && \
30
+ secator install addons gdrive && \
31
+ secator install addons gcs && \
32
+ secator install addons mongodb && \
33
+ secator install addons redis && \
34
+ secator install addons dev
35
+ RUN secator config set security.force_source_install true
36
+ RUN secator install tools --cleanup
37
+ ENTRYPOINT ["secator"]
@@ -0,0 +1,40 @@
1
+ FROM sickcodes/docker-osx:latest
2
+
3
+ ENV PATH="${PATH}:/home/arch/.local/bin"
4
+ ENV GOBIN="/home/arch/.local/bin"
5
+ RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
6
+ RUN echo >> /home/arch/.bashrc
7
+ RUN echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/arch/.bashrc
8
+ RUN sudo pacman -Syu --noconfirm && \
9
+ sudo pacman -S --noconfirm -y \
10
+ base-devel \
11
+ bash \
12
+ curl \
13
+ git \
14
+ go \
15
+ jq \
16
+ openssl \
17
+ proxychains \
18
+ proxychains-ng \
19
+ python \
20
+ python-pip \
21
+ python-pipx \
22
+ ruby \
23
+ rubygems \
24
+ sudo \
25
+ unzip \
26
+ vim \
27
+ wget
28
+ COPY . /code
29
+ WORKDIR /code
30
+ USER arch
31
+ RUN pipx install . && \
32
+ secator install addons worker && \
33
+ secator install addons gdrive && \
34
+ secator install addons gcs && \
35
+ secator install addons mongodb && \
36
+ secator install addons redis && \
37
+ secator install addons dev
38
+ RUN secator config set security.force_source_install true
39
+ RUN secator install tools --cleanup
40
+ ENTRYPOINT ["secator"]
@@ -0,0 +1,37 @@
1
+ FROM ubuntu:latest
2
+
3
+ ENV PATH="${PATH}:/root/.local/bin"
4
+ ENV GOBIN="/root/.local/bin"
5
+ RUN apt update -y && \
6
+ apt install -y \
7
+ bash \
8
+ build-essential \
9
+ curl \
10
+ git \
11
+ golang-go \
12
+ jq \
13
+ openssl \
14
+ pipx \
15
+ python3 \
16
+ python3-pip \
17
+ python3-venv \
18
+ proxychains \
19
+ proxychains-ng \
20
+ ruby-full \
21
+ rubygems \
22
+ sudo \
23
+ unzip \
24
+ vim \
25
+ wget
26
+ COPY . /code
27
+ WORKDIR /code
28
+ RUN pipx install . && \
29
+ secator install addons worker && \
30
+ secator install addons gdrive && \
31
+ secator install addons gcs && \
32
+ secator install addons mongodb && \
33
+ secator install addons redis && \
34
+ secator install addons dev
35
+ RUN secator config set security.force_source_install true
36
+ RUN secator install tools --cleanup
37
+ ENTRYPOINT ["secator"]
@@ -0,0 +1,30 @@
1
+ #!/bin/bash
2
+
3
+ # Define an array of distributions
4
+ DISTROS=("alpine" "arch" "debian" "kali" "osx" "ubuntu")
5
+
6
+ # Function to build an image
7
+ build_image() {
8
+ local DISTRO=$1
9
+ local DOCKERFILE=".docker/Dockerfile.${DISTRO}"
10
+ local IMAGE_NAME="secator-${DISTRO}"
11
+
12
+ if [ -f "$DOCKERFILE" ]; then
13
+ echo "🚀 Building $IMAGE_NAME using $DOCKERFILE..."
14
+ docker build -t "$IMAGE_NAME" -f "$DOCKERFILE" . && \
15
+ echo "✅ Successfully built $IMAGE_NAME" || \
16
+ echo "❌ Failed to build $IMAGE_NAME"
17
+ else
18
+ echo "⚠️ Dockerfile $DOCKERFILE not found, skipping..."
19
+ fi
20
+ }
21
+
22
+ # Iterate through the distributions and build in parallel
23
+ for DISTRO in "${DISTROS[@]}"; do
24
+ build_image "$DISTRO" &
25
+ done
26
+
27
+ # Wait for all background jobs to finish
28
+ wait
29
+
30
+ echo "🎉 All parallel builds completed!"
@@ -137,5 +137,4 @@ dmypy.json
137
137
 
138
138
  # Project
139
139
  .git/
140
- .docker/
141
140
  images/
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.2](https://github.com/freelabz/secator/compare/v0.9.1...v0.9.2) (2025-02-23)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * warning bug ([#550](https://github.com/freelabz/secator/issues/550)) ([3853d47](https://github.com/freelabz/secator/commit/3853d4781f4b135ddbf5eab8ccaf5bbf02feb2e0))
9
+
10
+ ## [0.9.1](https://github.com/freelabz/secator/compare/v0.9.0...v0.9.1) (2025-02-22)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * add celery broker transport options ([#547](https://github.com/freelabz/secator/issues/547)) ([3703d1e](https://github.com/freelabz/secator/commit/3703d1e10dd605b9c631ff6084713beb36bda469))
16
+ * add celery opts required for remote ([#544](https://github.com/freelabz/secator/issues/544)) ([36d1f2d](https://github.com/freelabz/secator/commit/36d1f2dadbd601ad8866e0b4ada485e3d26ec1b6))
17
+ * bbot port not cast as int ([#542](https://github.com/freelabz/secator/issues/542)) ([744553c](https://github.com/freelabz/secator/commit/744553c597869e0c4811214a00ead740b4dcd2e9))
18
+ * change main dockerfile path ([#546](https://github.com/freelabz/secator/issues/546)) ([6a2faf6](https://github.com/freelabz/secator/commit/6a2faf6966db2bf340311815a46ff4c347c8c136))
19
+ * cli bug warning ([#543](https://github.com/freelabz/secator/issues/543)) ([ca44b12](https://github.com/freelabz/secator/commit/ca44b12dcc5e4869753dc1d186adabd77825ee7e))
20
+ * update Dockerfile symlink ([#549](https://github.com/freelabz/secator/issues/549)) ([1b2bdcf](https://github.com/freelabz/secator/commit/1b2bdcf37eabad7150420a8893bb064a9f9c41cb))
21
+ * **wpscan:** set vuln confidence ([#548](https://github.com/freelabz/secator/issues/548)) ([0d8f13d](https://github.com/freelabz/secator/commit/0d8f13d7830906654778910c3e0e259962e31276))
22
+
3
23
  ## [0.9.0](https://github.com/freelabz/secator/compare/v0.8.2...v0.9.0) (2025-02-21)
4
24
 
5
25
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: secator
3
- Version: 0.9.0
3
+ Version: 0.9.2
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
@@ -295,12 +295,23 @@ secator install addons worker
295
295
 
296
296
 
297
297
  <details>
298
- <summary>google</summary>
298
+ <summary>gdrive</summary>
299
299
 
300
300
  Add support for Google Drive exporter (`-o gdrive`).
301
301
 
302
302
  ```sh
303
- secator install addons google
303
+ secator install addons gdrive
304
+ ```
305
+
306
+ </details>
307
+
308
+ <details>
309
+ <summary>gcs</summary>
310
+
311
+ Add support for Google Cloud Storage driver (`-driver gcs`).
312
+
313
+ ```sh
314
+ secator install addons gcs
304
315
  ```
305
316
 
306
317
  </details>
@@ -360,14 +371,6 @@ secator install addons build
360
371
  </details>
361
372
 
362
373
 
363
- ### Install CVEs
364
-
365
- `secator` makes remote API calls to https://cve.circl.lu/ to get in-depth information about the CVEs it encounters.
366
- We provide a subcommand to download all known CVEs locally so that future lookups are made from disk instead:
367
- ```sh
368
- secator install cves
369
- ```
370
-
371
374
  ### Checking installation health
372
375
 
373
376
  To figure out which languages or tools are installed on your system (along with their version):
@@ -225,12 +225,23 @@ secator install addons worker
225
225
 
226
226
 
227
227
  <details>
228
- <summary>google</summary>
228
+ <summary>gdrive</summary>
229
229
 
230
230
  Add support for Google Drive exporter (`-o gdrive`).
231
231
 
232
232
  ```sh
233
- secator install addons google
233
+ secator install addons gdrive
234
+ ```
235
+
236
+ </details>
237
+
238
+ <details>
239
+ <summary>gcs</summary>
240
+
241
+ Add support for Google Cloud Storage driver (`-driver gcs`).
242
+
243
+ ```sh
244
+ secator install addons gcs
234
245
  ```
235
246
 
236
247
  </details>
@@ -290,14 +301,6 @@ secator install addons build
290
301
  </details>
291
302
 
292
303
 
293
- ### Install CVEs
294
-
295
- `secator` makes remote API calls to https://cve.circl.lu/ to get in-depth information about the CVEs it encounters.
296
- We provide a subcommand to download all known CVEs locally so that future lookups are made from disk instead:
297
- ```sh
298
- secator install cves
299
- ```
300
-
301
304
  ### Checking installation health
302
305
 
303
306
  To figure out which languages or tools are installed on your system (along with their version):
@@ -4,7 +4,7 @@ build-backend = 'hatchling.build'
4
4
 
5
5
  [project]
6
6
  name = 'secator'
7
- version = "0.9.0"
7
+ version = "0.9.2"
8
8
  authors = [{ name = 'FreeLabz', email = 'sales@freelabz.com' }]
9
9
  readme = 'README.md'
10
10
  description = "The pentester's swiss knife."
@@ -1,4 +1,5 @@
1
1
  import gc
2
+ import json
2
3
  import logging
3
4
  import sys
4
5
  import uuid
@@ -49,7 +50,7 @@ app.conf.update({
49
50
 
50
51
  # Broker config
51
52
  'broker_url': CONFIG.celery.broker_url,
52
- 'broker_transport_options': {
53
+ 'broker_transport_options': json.loads(CONFIG.celery.broker_transport_options) if CONFIG.celery.broker_transport_options else { # noqa: E501
53
54
  'data_folder_in': CONFIG.dirs.celery_data,
54
55
  'data_folder_out': CONFIG.dirs.celery_data,
55
56
  'control_folder': CONFIG.dirs.celery_data,
@@ -62,17 +63,17 @@ app.conf.update({
62
63
  # Result backend config
63
64
  'result_backend': CONFIG.celery.result_backend,
64
65
  'result_expires': CONFIG.celery.result_expires,
66
+ 'result_backend_transport_options': json.loads(CONFIG.celery.result_backend_transport_options) if CONFIG.celery.result_backend_transport_options else {}, # noqa: E501
65
67
  'result_extended': True,
66
68
  'result_backend_thread_safe': True,
67
69
  'result_serializer': 'pickle',
68
- # 'result_backend_transport_options': {'master_name': 'mymaster'}, # for Redis HA backend
69
70
 
70
71
  # Task config
71
- 'task_acks_late': False,
72
+ 'task_acks_late': CONFIG.celery.task_acks_late,
72
73
  'task_compression': 'gzip',
73
74
  'task_create_missing_queues': True,
74
75
  'task_eager_propagates': False,
75
- 'task_reject_on_worker_lost': False,
76
+ 'task_reject_on_worker_lost': CONFIG.celery.task_reject_on_worker_lost,
76
77
  'task_routes': {
77
78
  'secator.celery.run_workflow': {'queue': 'celery'},
78
79
  'secator.celery.run_scan': {'queue': 'celery'},
@@ -85,10 +86,10 @@ app.conf.update({
85
86
 
86
87
  # Worker config
87
88
  # 'worker_direct': True, # TODO: consider enabling this to allow routing to specific workers
88
- 'worker_max_tasks_per_child': 10,
89
+ 'worker_max_tasks_per_child': CONFIG.celery.worker_max_tasks_per_child,
89
90
  # 'worker_max_memory_per_child': 100000 # TODO: consider enabling this
90
91
  'worker_pool_restarts': True,
91
- 'worker_prefetch_multiplier': 1,
92
+ 'worker_prefetch_multiplier': CONFIG.celery.worker_prefetch_multiplier,
92
93
  # 'worker_send_task_events': True, # TODO: consider enabling this for Flower monitoring
93
94
  })
94
95
  app.autodiscover_tasks(['secator.hooks.mongodb'], related_name=None)
@@ -20,7 +20,7 @@ from secator.config import CONFIG, ROOT_FOLDER, Config, default_config, config_p
20
20
  from secator.decorators import OrderedGroup, register_runner
21
21
  from secator.definitions import ADDONS_ENABLED, ASCII, DEV_PACKAGE, OPT_NOT_SUPPORTED, VERSION, STATE_COLORS
22
22
  from secator.installer import ToolInstaller, fmt_health_table_row, get_health_table, get_version_info, get_distro_config
23
- from secator.output_types import FINDING_TYPES, Info, Error
23
+ from secator.output_types import FINDING_TYPES, Info, Warning, Error
24
24
  from secator.report import Report
25
25
  from secator.rich import console
26
26
  from secator.runners import Command, Runner
@@ -62,9 +62,15 @@ class Celery(StrictModel):
62
62
  broker_pool_limit: int = 10
63
63
  broker_connection_timeout: float = 4.0
64
64
  broker_visibility_timeout: int = 3600
65
+ broker_transport_options: str = ""
65
66
  override_default_logging: bool = True
66
67
  result_backend: StrExpandHome = ''
68
+ result_backend_transport_options: str = ""
67
69
  result_expires: int = 86400 # 1 day
70
+ task_acks_late: bool = False
71
+ task_reject_on_worker_lost: bool = False
72
+ worker_max_tasks_per_child: int = 20
73
+ worker_prefetch_multiplier: int = 1
68
74
 
69
75
 
70
76
  class Cli(StrictModel):
@@ -16,7 +16,7 @@ from fp.fp import FreeProxy
16
16
 
17
17
  from secator.definitions import OPT_NOT_SUPPORTED, OPT_PIPE_INPUT
18
18
  from secator.config import CONFIG
19
- from secator.output_types import Info, Error, Target, Stat
19
+ from secator.output_types import Info, Warning, Error, Target, Stat
20
20
  from secator.runners import Runner
21
21
  from secator.template import TemplateLoader
22
22
  from secator.utils import debug, rich_escape as _s
@@ -194,7 +194,7 @@ class bbot(Command):
194
194
  '_source': lambda x: 'bbot-' + x['module']
195
195
  },
196
196
  Port: {
197
- 'port': lambda x: int(x['data']['port']) if 'port' in x['data'] else x['data'].split(':')[-1],
197
+ 'port': lambda x: int(x['data']['port']) if 'port' in x['data'] else int(x['data'].split(':')[-1]),
198
198
  'ip': lambda x: [_ for _ in x['resolved_hosts'] if not _.startswith('::')][0],
199
199
  'state': lambda x: 'OPEN',
200
200
  'service_name': lambda x: x['data']['protocol'] if 'protocol' in x['data'] else '',
@@ -142,6 +142,7 @@ class wpscan(VulnHttp):
142
142
  yield Vulnerability(
143
143
  matched_at=target,
144
144
  name=f'Wordpress theme - {slug} {number} outdated',
145
+ confidence='high',
145
146
  severity='info'
146
147
  )
147
148
 
@@ -171,5 +172,6 @@ class wpscan(VulnHttp):
171
172
  yield Vulnerability(
172
173
  matched_at=target,
173
174
  name=f'Wordpress plugin - {slug} {number} outdated',
175
+ confidence='high',
174
176
  severity='info'
175
177
  )
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