secator 0.22.0__py3-none-any.whl

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.
Files changed (150) hide show
  1. secator/.gitignore +162 -0
  2. secator/__init__.py +0 -0
  3. secator/celery.py +453 -0
  4. secator/celery_signals.py +138 -0
  5. secator/celery_utils.py +320 -0
  6. secator/cli.py +2035 -0
  7. secator/cli_helper.py +395 -0
  8. secator/click.py +87 -0
  9. secator/config.py +670 -0
  10. secator/configs/__init__.py +0 -0
  11. secator/configs/profiles/__init__.py +0 -0
  12. secator/configs/profiles/aggressive.yaml +8 -0
  13. secator/configs/profiles/all_ports.yaml +7 -0
  14. secator/configs/profiles/full.yaml +31 -0
  15. secator/configs/profiles/http_headless.yaml +7 -0
  16. secator/configs/profiles/http_record.yaml +8 -0
  17. secator/configs/profiles/insane.yaml +8 -0
  18. secator/configs/profiles/paranoid.yaml +8 -0
  19. secator/configs/profiles/passive.yaml +11 -0
  20. secator/configs/profiles/polite.yaml +8 -0
  21. secator/configs/profiles/sneaky.yaml +8 -0
  22. secator/configs/profiles/tor.yaml +5 -0
  23. secator/configs/scans/__init__.py +0 -0
  24. secator/configs/scans/domain.yaml +31 -0
  25. secator/configs/scans/host.yaml +23 -0
  26. secator/configs/scans/network.yaml +30 -0
  27. secator/configs/scans/subdomain.yaml +27 -0
  28. secator/configs/scans/url.yaml +19 -0
  29. secator/configs/workflows/__init__.py +0 -0
  30. secator/configs/workflows/cidr_recon.yaml +48 -0
  31. secator/configs/workflows/code_scan.yaml +29 -0
  32. secator/configs/workflows/domain_recon.yaml +46 -0
  33. secator/configs/workflows/host_recon.yaml +95 -0
  34. secator/configs/workflows/subdomain_recon.yaml +120 -0
  35. secator/configs/workflows/url_bypass.yaml +15 -0
  36. secator/configs/workflows/url_crawl.yaml +98 -0
  37. secator/configs/workflows/url_dirsearch.yaml +62 -0
  38. secator/configs/workflows/url_fuzz.yaml +68 -0
  39. secator/configs/workflows/url_params_fuzz.yaml +66 -0
  40. secator/configs/workflows/url_secrets_hunt.yaml +23 -0
  41. secator/configs/workflows/url_vuln.yaml +91 -0
  42. secator/configs/workflows/user_hunt.yaml +29 -0
  43. secator/configs/workflows/wordpress.yaml +38 -0
  44. secator/cve.py +718 -0
  45. secator/decorators.py +7 -0
  46. secator/definitions.py +168 -0
  47. secator/exporters/__init__.py +14 -0
  48. secator/exporters/_base.py +3 -0
  49. secator/exporters/console.py +10 -0
  50. secator/exporters/csv.py +37 -0
  51. secator/exporters/gdrive.py +123 -0
  52. secator/exporters/json.py +16 -0
  53. secator/exporters/table.py +36 -0
  54. secator/exporters/txt.py +28 -0
  55. secator/hooks/__init__.py +0 -0
  56. secator/hooks/gcs.py +80 -0
  57. secator/hooks/mongodb.py +281 -0
  58. secator/installer.py +694 -0
  59. secator/loader.py +128 -0
  60. secator/output_types/__init__.py +49 -0
  61. secator/output_types/_base.py +108 -0
  62. secator/output_types/certificate.py +78 -0
  63. secator/output_types/domain.py +50 -0
  64. secator/output_types/error.py +42 -0
  65. secator/output_types/exploit.py +58 -0
  66. secator/output_types/info.py +24 -0
  67. secator/output_types/ip.py +47 -0
  68. secator/output_types/port.py +55 -0
  69. secator/output_types/progress.py +36 -0
  70. secator/output_types/record.py +36 -0
  71. secator/output_types/stat.py +41 -0
  72. secator/output_types/state.py +29 -0
  73. secator/output_types/subdomain.py +45 -0
  74. secator/output_types/tag.py +69 -0
  75. secator/output_types/target.py +38 -0
  76. secator/output_types/url.py +112 -0
  77. secator/output_types/user_account.py +41 -0
  78. secator/output_types/vulnerability.py +101 -0
  79. secator/output_types/warning.py +30 -0
  80. secator/report.py +140 -0
  81. secator/rich.py +130 -0
  82. secator/runners/__init__.py +14 -0
  83. secator/runners/_base.py +1240 -0
  84. secator/runners/_helpers.py +218 -0
  85. secator/runners/celery.py +18 -0
  86. secator/runners/command.py +1178 -0
  87. secator/runners/python.py +126 -0
  88. secator/runners/scan.py +87 -0
  89. secator/runners/task.py +81 -0
  90. secator/runners/workflow.py +168 -0
  91. secator/scans/__init__.py +29 -0
  92. secator/serializers/__init__.py +8 -0
  93. secator/serializers/dataclass.py +39 -0
  94. secator/serializers/json.py +45 -0
  95. secator/serializers/regex.py +25 -0
  96. secator/tasks/__init__.py +8 -0
  97. secator/tasks/_categories.py +487 -0
  98. secator/tasks/arjun.py +113 -0
  99. secator/tasks/arp.py +53 -0
  100. secator/tasks/arpscan.py +70 -0
  101. secator/tasks/bbot.py +372 -0
  102. secator/tasks/bup.py +118 -0
  103. secator/tasks/cariddi.py +193 -0
  104. secator/tasks/dalfox.py +87 -0
  105. secator/tasks/dirsearch.py +84 -0
  106. secator/tasks/dnsx.py +186 -0
  107. secator/tasks/feroxbuster.py +93 -0
  108. secator/tasks/ffuf.py +135 -0
  109. secator/tasks/fping.py +85 -0
  110. secator/tasks/gau.py +102 -0
  111. secator/tasks/getasn.py +60 -0
  112. secator/tasks/gf.py +36 -0
  113. secator/tasks/gitleaks.py +96 -0
  114. secator/tasks/gospider.py +84 -0
  115. secator/tasks/grype.py +109 -0
  116. secator/tasks/h8mail.py +75 -0
  117. secator/tasks/httpx.py +167 -0
  118. secator/tasks/jswhois.py +36 -0
  119. secator/tasks/katana.py +203 -0
  120. secator/tasks/maigret.py +87 -0
  121. secator/tasks/mapcidr.py +42 -0
  122. secator/tasks/msfconsole.py +179 -0
  123. secator/tasks/naabu.py +85 -0
  124. secator/tasks/nmap.py +487 -0
  125. secator/tasks/nuclei.py +151 -0
  126. secator/tasks/search_vulns.py +225 -0
  127. secator/tasks/searchsploit.py +109 -0
  128. secator/tasks/sshaudit.py +299 -0
  129. secator/tasks/subfinder.py +48 -0
  130. secator/tasks/testssl.py +283 -0
  131. secator/tasks/trivy.py +130 -0
  132. secator/tasks/trufflehog.py +240 -0
  133. secator/tasks/urlfinder.py +100 -0
  134. secator/tasks/wafw00f.py +106 -0
  135. secator/tasks/whois.py +34 -0
  136. secator/tasks/wpprobe.py +116 -0
  137. secator/tasks/wpscan.py +202 -0
  138. secator/tasks/x8.py +94 -0
  139. secator/tasks/xurlfind3r.py +83 -0
  140. secator/template.py +294 -0
  141. secator/thread.py +24 -0
  142. secator/tree.py +196 -0
  143. secator/utils.py +922 -0
  144. secator/utils_test.py +297 -0
  145. secator/workflows/__init__.py +29 -0
  146. secator-0.22.0.dist-info/METADATA +447 -0
  147. secator-0.22.0.dist-info/RECORD +150 -0
  148. secator-0.22.0.dist-info/WHEEL +4 -0
  149. secator-0.22.0.dist-info/entry_points.txt +2 -0
  150. secator-0.22.0.dist-info/licenses/LICENSE +60 -0
@@ -0,0 +1,447 @@
1
+ Metadata-Version: 2.4
2
+ Name: secator
3
+ Version: 0.22.0
4
+ Summary: The pentester's swiss knife.
5
+ Project-URL: Homepage, https://github.com/freelabz/secator
6
+ Project-URL: Issues, https://github.com/freelabz/secator/issues
7
+ Author-email: FreeLabz <sales@freelabz.com>
8
+ License-File: LICENSE
9
+ Keywords: automation,cybersecurity,pentest,recon,vulnerability
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: License :: Free for non-commercial use
14
+ Classifier: Operating System :: Unix
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Requires-Python: >=3.8
22
+ Requires-Dist: beautifulsoup4<=5
23
+ Requires-Dist: celery<6
24
+ Requires-Dist: click<8.2.0
25
+ Requires-Dist: cpe<2
26
+ Requires-Dist: distro<2
27
+ Requires-Dist: dnspython<3
28
+ Requires-Dist: dotmap<2
29
+ Requires-Dist: free-proxy<2
30
+ Requires-Dist: furl<3
31
+ Requires-Dist: greenlet<4
32
+ Requires-Dist: humanize<5
33
+ Requires-Dist: ifaddr<1
34
+ Requires-Dist: jinja2<4
35
+ Requires-Dist: packaging<25
36
+ Requires-Dist: psutil<7
37
+ Requires-Dist: pydantic<3
38
+ Requires-Dist: python-dotenv<2
39
+ Requires-Dist: pyyaml<7
40
+ Requires-Dist: requests<3
41
+ Requires-Dist: retry<1
42
+ Requires-Dist: rich-click<1.7
43
+ Requires-Dist: rich<14
44
+ Requires-Dist: tldextract<6
45
+ Requires-Dist: typing-extensions<5
46
+ Requires-Dist: validators<1
47
+ Requires-Dist: xmltodict<1
48
+ Provides-Extra: build
49
+ Requires-Dist: hatch<2; extra == 'build'
50
+ Provides-Extra: dev
51
+ Requires-Dist: asciinema-automation<1; extra == 'dev'
52
+ Requires-Dist: coverage<8; extra == 'dev'
53
+ Requires-Dist: flake8<8; extra == 'dev'
54
+ Requires-Dist: pytest<9; extra == 'dev'
55
+ Requires-Dist: watchdog<3; extra == 'dev'
56
+ Provides-Extra: gcs
57
+ Requires-Dist: google-cloud-storage<3; extra == 'gcs'
58
+ Provides-Extra: gdrive
59
+ Requires-Dist: google-api-python-client<3; extra == 'gdrive'
60
+ Requires-Dist: gspread<7; extra == 'gdrive'
61
+ Provides-Extra: mongodb
62
+ Requires-Dist: pymongo<5; extra == 'mongodb'
63
+ Provides-Extra: redis
64
+ Requires-Dist: redis<6; extra == 'redis'
65
+ Provides-Extra: trace
66
+ Requires-Dist: memray<2; extra == 'trace'
67
+ Requires-Dist: pyinstrument<5; extra == 'trace'
68
+ Provides-Extra: worker
69
+ Requires-Dist: eventlet<1; extra == 'worker'
70
+ Requires-Dist: flower<3; extra == 'worker'
71
+ Description-Content-Type: text/markdown
72
+
73
+ <h1 align="center">
74
+ <img src="https://github.com/freelabz/secator/assets/9629314/ee203af4-e853-439a-af01-edeabfc4bf07/" width="400">
75
+ </h1>
76
+
77
+ <h4 align="center">The pentester's swiss knife.</h4>
78
+
79
+ <p align="center">
80
+ <!-- <a href="https://goreportcard.com/report/github.com/freelabz/secator"><img src="https://goreportcard.com/badge/github.com/freelabz/secator"></a> -->
81
+ <img src="https://img.shields.io/badge/python-3.6-blue.svg">
82
+ <a href="https://github.com/freelabz/secator/releases"><img src="https://img.shields.io/github/release/freelabz/secator"></a>
83
+ <a href="https://github.com/freelabz/secator/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-BSL%201.1-brightgreen.svg"></a>
84
+ <a href="https://pypi.org/project/secator/"><img src="https://img.shields.io/pypi/dm/secator"></a>
85
+ <a href="https://twitter.com/freelabz"><img src="https://img.shields.io/twitter/follow/freelabz.svg?logo=twitter"></a>
86
+ <a href="https://youtube.com/@FreeLabz"><img src="https://img.shields.io/youtube/channel/subscribers/UCu-F6SpU0h2NP18zBBP04cw?style=social&label=Subscribe%20%40FreeLabz"></a>
87
+ <a href="https://discord.gg/nyHjC2aTrq"><img src="https://img.shields.io/discord/695645237418131507.svg?logo=discord"></a>
88
+ </p>
89
+
90
+
91
+ <p align="center">
92
+ <a href="#features">Features</a> •
93
+ <a href="#supported-commands">Supported commands</a> •
94
+ <a href="#install-secator">Installation</a> •
95
+ <a href="#usage">Usage</a> •
96
+ <a href="https://docs.freelabz.com">Documentation</a> •
97
+ <a href="https://discord.gg/nyHjC2aTrq">Join us on Discord !</a>
98
+ </p>
99
+
100
+ `secator` is a task and workflow runner used for security assessments. It supports dozens of well-known security tools
101
+ and it is designed to improve productivity for pentesters and security researchers.
102
+
103
+ # Features
104
+
105
+ ![](images/demo.gif)
106
+
107
+ * **Curated list of commands**
108
+
109
+ * **Unified input options**
110
+
111
+ * **Unified output schema**
112
+
113
+ * **CLI and library usage**
114
+
115
+ * **Distributed options with Celery**
116
+
117
+ * **Complexity from simple tasks to complex workflows**
118
+
119
+ * **Customizable**
120
+
121
+
122
+ ## Supported tools
123
+
124
+ `secator` integrates the following tools:
125
+
126
+ <!-- START_TOOLS_TABLE -->
127
+ | Name | Description | Category |
128
+ |-----------------------------------------------------------------|----------------------------------------------------------------------------------|-------------------|
129
+ | [arjun](https://github.com/s0md3v/Arjun) | HTTP Parameter Discovery Suite. | `url/fuzz/params` |
130
+ | [bbot](https://github.com/blacklanternsecurity/bbot) | Multipurpose scanner. | `vuln/scan` |
131
+ | [bup](https://github.com/laluka/bypass-url-parser) | 40X bypasser. | `url/bypass` |
132
+ | [cariddi](https://github.com/edoardottt/cariddi) | Crawl endpoints, secrets, api keys, extensions, tokens... | `url/crawl` |
133
+ | [dalfox](https://github.com/hahwul/dalfox) | Powerful open source XSS scanning tool. | `url/fuzz` |
134
+ | [dirsearch](https://github.com/maurosoria/dirsearch) | Advanced web path brute-forcer. | `url/fuzz` |
135
+ | [dnsx](https://github.com/projectdiscovery/dnsx) | dnsx is a fast and multi-purpose DNS toolkit designed for running various retryabledns library. | `dns/fuzz` |
136
+ | [feroxbuster](https://github.com/epi052/feroxbuster) | Simple, fast, recursive content discovery tool written in Rust | `url/fuzz` |
137
+ | [ffuf](https://github.com/ffuf/ffuf) | Fast web fuzzer written in Go. | `url/fuzz` |
138
+ | [fping](https://github.com/schweikert/fping) | Send ICMP echo probes to network hosts, similar to ping, but much better. | `ip/recon` |
139
+ | [gau](https://github.com/lc/gau) | Fetch known URLs from AlienVault's Open Threat Exchange, the Wayback Machine, Common Crawl, and URLScan. | `pattern/scan` |
140
+ | [getasn](None) | Get ASN information from IP address. | `ip/probe` |
141
+ | [gf](https://github.com/tomnomnom/gf) | Wrapper around grep, to help you grep for things. | `pattern/scan` |
142
+ | [gitleaks](https://github.com/gitleaks/gitleaks) | Tool for detecting secrets like passwords, API keys, and tokens in git repos, files, and stdin. | `secret/scan` |
143
+ | [gospider](https://github.com/jaeles-project/gospider) | Fast web spider written in Go. | `url/crawl` |
144
+ | [grype](https://github.com/anchore/grype) | Vulnerability scanner for container images and filesystems. | `vuln/scan` |
145
+ | [h8mail](https://github.com/khast3x/h8mail) | Email information and password lookup tool. | `user/recon/email` |
146
+ | [httpx](https://github.com/projectdiscovery/httpx) | Fast and multi-purpose HTTP toolkit. | `url/probe` |
147
+ | [jswhois](None) | WHOIS in JSON format | `domain/info` |
148
+ | [katana](https://github.com/projectdiscovery/katana) | Next-generation crawling and spidering framework. | `url/crawl` |
149
+ | [maigret](https://github.com/soxoj/maigret) | Collect a dossier on a person by username. | `user/recon/username` |
150
+ | [mapcidr](https://github.com/projectdiscovery/mapcidr) | Utility program to perform multiple operations for a given subnet/cidr ranges. | `ip/recon` |
151
+ | [msfconsole](https://docs.rapid7.com/metasploit/msf-overview/) | CLI to access and work with the Metasploit Framework. | `exploit/attack` |
152
+ | [naabu](https://github.com/projectdiscovery/naabu) | Port scanning tool written in Go. | `port/scan` |
153
+ | [nmap](https://github.com/nmap/nmap) | Network Mapper is a free and open source utility for network discovery and security auditing. | `port/scan` |
154
+ | [nuclei](https://github.com/projectdiscovery/nuclei) | Fast and customisable vulnerability scanner based on simple YAML based DSL. | `vuln/scan` |
155
+ | [searchsploit](https://gitlab.com/exploit-database/exploitdb) | Exploit searcher based on ExploitDB. | `exploit/recon` |
156
+ | [subfinder](https://github.com/projectdiscovery/subfinder) | Fast passive subdomain enumeration tool. | `dns/recon` |
157
+ | [testssl](https://github.com/testssl/testssl.sh) | SSL/TLS security scanner, including ciphers, protocols and cryptographic flaws. | `dns/recon/tls` |
158
+ | [trivy](https://github.com/aquasecurity/trivy) | Comprehensive and versatile security scanner. | `vuln/scan` |
159
+ | [trufflehog](https://github.com/trufflesecurity/trufflehog) | Tool for finding secrets in git repositories and filesystems using TruffleHog. | `secret/scan` |
160
+ | [urlfinder](https://github.com/projectdiscovery/urlfinder) | Find URLs in text. | `pattern/scan` |
161
+ | [wafw00f](https://github.com/EnableSecurity/wafw00f) | Web Application Firewall Fingerprinting tool. | `waf/scan` |
162
+ | [whois](https://github.com/mboot-github/WhoisDomain) | The whois tool retrieves registration information about domain names and IP addresses. | |
163
+ | [wpprobe](https://github.com/Chocapikk/wpprobe) | Fast wordpress plugin enumeration tool. | `vuln/scan/wordpress` |
164
+ | [wpscan](https://github.com/wpscanteam/wpscan) | Wordpress security scanner. | `vuln/scan/wordpress` |
165
+ | [x8](https://github.com/Sh1Yo/x8) | Hidden parameters discovery suite written in Rust. | `url/fuzz/params` |
166
+ | [xurlfind3r](https://github.com/hueristiq/xurlfind3r) | Discover URLs for a given domain in a simple, passive and efficient way | `url/recon` |
167
+ <!-- END_TOOLS_TABLE -->
168
+
169
+ Feel free to request new tools to be added by opening an issue, but please
170
+ check that the tool complies with our selection criterias before doing so. If it doesn't but you still want to integrate it into `secator`, you can plug it in (see the [dev guide](https://docs.freelabz.com/for-developers/writing-custom-tasks)).
171
+
172
+
173
+ ## Installation
174
+
175
+ ### Installing secator
176
+
177
+ <details>
178
+ <summary>Pipx</summary>
179
+
180
+ ```sh
181
+ pipx install secator
182
+ ```
183
+ ***Note:** Make sure to have [pipx](https://pipx.pypa.io/stable/installation/) installed.*
184
+
185
+ </details>
186
+
187
+ <details>
188
+ <summary>Pip</summary>
189
+
190
+ ```sh
191
+ pip install secator
192
+ ```
193
+
194
+ </details>
195
+
196
+ <details>
197
+ <summary>Bash (uses apt)</summary>
198
+
199
+ ```sh
200
+ wget -O - https://raw.githubusercontent.com/freelabz/secator/main/scripts/install.sh | sh
201
+ ```
202
+
203
+ </details>
204
+
205
+ <details>
206
+ <summary>Docker</summary>
207
+
208
+ ```sh
209
+ docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator --help
210
+ ```
211
+
212
+ The volume mount -v is necessary to save all secator reports to your host machine, and--net=host is recommended to grant full access to the host network.
213
+
214
+ You can alias this command to run it easier:
215
+ ```sh
216
+ alias secator="docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator"
217
+ ```
218
+
219
+ Now you can run secator like if it was installed on baremetal:
220
+ ```
221
+ secator --help
222
+ ```
223
+
224
+ </details>
225
+
226
+ <details>
227
+ <summary>Docker Compose</summary>
228
+
229
+ ```sh
230
+ git clone https://github.com/freelabz/secator
231
+ cd secator
232
+ docker-compose up -d
233
+ docker-compose exec secator-client secator --help
234
+ ```
235
+
236
+ </details>
237
+
238
+ ***Note:*** If you chose the Bash, Docker or Docker Compose installation methods, you can skip the next sections and go straight to [Usage](#usage).
239
+
240
+ ### Installing languages
241
+
242
+ `secator` uses external tools, so you might need to install languages used by those tools assuming they are not already installed on your system.
243
+
244
+ We provide utilities to install required languages if you don't manage them externally:
245
+
246
+ <details>
247
+ <summary>Go</summary>
248
+
249
+ ```sh
250
+ secator install langs go
251
+ ```
252
+
253
+ </details>
254
+
255
+ <details>
256
+ <summary>Ruby</summary>
257
+
258
+ ```sh
259
+ secator install langs ruby
260
+ ```
261
+
262
+ </details>
263
+
264
+ ### Installing tools
265
+
266
+ `secator` does not install any of the external tools it supports by default.
267
+
268
+ We provide utilities to install or update each supported tool which should work on all systems supporting `apt`:
269
+
270
+ <details>
271
+ <summary>All tools</summary>
272
+
273
+ ```sh
274
+ secator install tools
275
+ ```
276
+
277
+ </details>
278
+
279
+ <details>
280
+ <summary>Specific tools</summary>
281
+
282
+ ```sh
283
+ secator install tools <TOOL_NAME>
284
+ ```
285
+
286
+ For instance, to install `httpx`, use:
287
+
288
+ ```sh
289
+ secator install tools httpx
290
+ ```
291
+
292
+ </details>
293
+
294
+ Please make sure you are using the latest available versions for each tool before you run secator or you might run into parsing / formatting issues.
295
+
296
+ ### Installing addons
297
+
298
+ `secator` comes installed with the minimum amount of dependencies.
299
+
300
+ There are several addons available for `secator`:
301
+
302
+ <details>
303
+ <summary>worker</summary>
304
+
305
+ Add support for Celery workers (see [Distributed runs with Celery](https://docs.freelabz.com/in-depth/distributed-runs-with-celery)).
306
+ ```sh
307
+ secator install addons worker
308
+ ```
309
+
310
+ </details>
311
+
312
+
313
+ <details>
314
+ <summary>gdrive</summary>
315
+
316
+ Add support for Google Drive exporter (`-o gdrive`).
317
+
318
+ ```sh
319
+ secator install addons gdrive
320
+ ```
321
+
322
+ </details>
323
+
324
+ <details>
325
+ <summary>gcs</summary>
326
+
327
+ Add support for Google Cloud Storage driver (`-driver gcs`).
328
+
329
+ ```sh
330
+ secator install addons gcs
331
+ ```
332
+
333
+ </details>
334
+
335
+ <details>
336
+ <summary>mongodb</summary>
337
+
338
+ Add support for MongoDB driver (`-driver mongodb`).
339
+ ```sh
340
+ secator install addons mongodb
341
+ ```
342
+
343
+ </details>
344
+
345
+ <details>
346
+ <summary>redis</summary>
347
+
348
+ Add support for Redis backend (Celery).
349
+
350
+ ```sh
351
+ secator install addons redis
352
+ ```
353
+
354
+ </details>
355
+
356
+ <details>
357
+ <summary>dev</summary>
358
+
359
+ Add development tools like `coverage` and `flake8` required for running tests.
360
+
361
+ ```sh
362
+ secator install addons dev
363
+ ```
364
+
365
+ </details>
366
+
367
+ <details>
368
+ <summary>trace</summary>
369
+
370
+ Add tracing tools like `memray` and `pyinstrument` required for tracing functions.
371
+
372
+ ```sh
373
+ secator install addons trace
374
+ ```
375
+
376
+ </details>
377
+
378
+ <details>
379
+ <summary>build</summary>
380
+
381
+ Add `hatch` for building and publishing the PyPI package.
382
+
383
+ ```sh
384
+ secator install addons build
385
+ ```
386
+
387
+ </details>
388
+
389
+
390
+ ### Checking installation health
391
+
392
+ To figure out which languages or tools are installed on your system (along with their version):
393
+ ```sh
394
+ secator health
395
+ ```
396
+
397
+ ## Usage
398
+ ```sh
399
+ secator --help
400
+ ```
401
+ ![](images/help.png)
402
+
403
+
404
+ ### Usage examples
405
+
406
+ Run a fuzzing task (`ffuf`):
407
+
408
+ ```sh
409
+ secator x ffuf http://testphp.vulnweb.com/FUZZ
410
+ ```
411
+
412
+ Run a url crawl workflow:
413
+
414
+ ```sh
415
+ secator w url_crawl http://testphp.vulnweb.com
416
+ ```
417
+
418
+ Run a host scan:
419
+
420
+ ```sh
421
+ secator s host mydomain.com
422
+ ```
423
+
424
+ and more... to list all tasks / workflows / scans that you can use:
425
+ ```sh
426
+ secator x --help
427
+ secator w --help
428
+ secator s --help
429
+ ```
430
+
431
+ ## Learn more
432
+
433
+ To go deeper with `secator`, check out:
434
+ * Our complete [documentation](https://docs.freelabz.com)
435
+ * Our getting started [tutorial video](https://youtu.be/-JmUTNWQDTQ?si=qpAClDWMXo2zwUK7)
436
+ * Our [Medium post](https://medium.com/p/09333f3d3682)
437
+ * Follow us on social media: [@freelabz](https://twitter.com/freelabz) on Twitter and [@FreeLabz](https://youtube.com/@FreeLabz) on YouTube
438
+
439
+ ## Stats
440
+
441
+ <a href="https://star-history.com/#freelabz/secator&Date">
442
+ <picture>
443
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=freelabz/secator&type=Date&theme=dark" />
444
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=freelabz/secator&type=Date" />
445
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=freelabz/secator&type=Date" />
446
+ </picture>
447
+ </a>
@@ -0,0 +1,150 @@
1
+ secator/.gitignore,sha256=da8MUc3hdb6Mo0WjZu2upn5uZMbXcBGvhdhTQ1L89HI,3093
2
+ secator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ secator/celery.py,sha256=VmEPhSflQlTYWp3pF7odz2IWtarWIq6CVmW-AL-1yJc,14309
4
+ secator/celery_signals.py,sha256=chWicrTmvh2ioMXRm43r1zN09wrhWnw3Kc4mWDUY55s,4314
5
+ secator/celery_utils.py,sha256=vhL5ZxXDn3ODvyVxMijKyUTJ1dOisMDjF_PhFUyOVSA,9451
6
+ secator/cli.py,sha256=BhtN9H00qp_S9RRQThzJUTAIkemgEzSnEwIzQS8kmng,72086
7
+ secator/cli_helper.py,sha256=K4T1PlSTqYuVepYsudm08HA6m9Da1Tb9NFb9PJs9coA,13797
8
+ secator/click.py,sha256=pg7XPI7-wAhhEhd4aeAC8vHSqKi-H0zeFRlh0T-ayYg,2662
9
+ secator/config.py,sha256=hMglTG3Pn4HIacYWwk4EULaGhK7d4p9bOAghUOXa3uY,21478
10
+ secator/cve.py,sha256=j47VOGyZjOvCY_xwVYS9fiXQPKHL5bPRtCnVAmbQthE,21356
11
+ secator/decorators.py,sha256=uygU8MguxEO0BKXRvF4Nn2QEDnjqdIer8ReBj_j9ALg,88
12
+ secator/definitions.py,sha256=dUU5OH5mzTS8HW5-XxUEWPpkEssB50dlhGQzQ3qkuhI,3357
13
+ secator/installer.py,sha256=1D3K3d6264zaA3W7ZTA216tK2Y0PYFkX7pLZA6Cu0rQ,22754
14
+ secator/loader.py,sha256=2WNCE-wJo1s0tg-1B6v1GgTd82CQwxbRTih-d5Gvb88,4216
15
+ secator/report.py,sha256=4lEjW_GzDgsPBe1eQHX4ntcHWs0nsAMIbrNMw0UfWHc,4025
16
+ secator/rich.py,sha256=jITAXV_Wgj32Q7FfkssDN-DMD8TxK1wwlrIlkaCNc70,3960
17
+ secator/template.py,sha256=v77AFbmZB1HdfLwc9IcP8B3n6LGh2Q6UL2SCImgvBPM,11552
18
+ secator/thread.py,sha256=EqilUiqunUmVLHvZQiPl7GUYXHXVneDpI8crhqKKT_4,562
19
+ secator/tree.py,sha256=zxZ1rXE5jzipyNNUVuTDoeq35qA-7h5yAZ4mE230ZUQ,7000
20
+ secator/utils.py,sha256=tvoFAIAA5M_EJGLfBijzqFQzuHSuBPE0vWW8hhX-8GA,24313
21
+ secator/utils_test.py,sha256=bHDNLvqlwBvE28sSSdhVHZuir6wAVewLVggklUXHSDE,10562
22
+ secator/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ secator/configs/profiles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ secator/configs/profiles/aggressive.yaml,sha256=CXsCD76zrS93Iy47H-SUeEm3Ofl58H12dOr6rhm5sUg,159
25
+ secator/configs/profiles/all_ports.yaml,sha256=53VQ-RPZdtybFHWX5_rU_vepVvF46-JYc42X5rfV_Sc,121
26
+ secator/configs/profiles/full.yaml,sha256=YRGitK5OPBDdaL5tbkFJZYGRxx92xpQpHWRRWL_IPRQ,819
27
+ secator/configs/profiles/http_headless.yaml,sha256=w-CCeH9hsT-Z8pIWijdVJKX7ifDswxujqyndZ2g7Q9U,142
28
+ secator/configs/profiles/http_record.yaml,sha256=KOU_ogAAvQ2tKiKm9xqwY2hO0MHpgqT_HyyNVqh8spY,199
29
+ secator/configs/profiles/insane.yaml,sha256=t3Z0fSy-tJkasMoPPViqxicTo0So5gnF3kfCBWIsR6Q,152
30
+ secator/configs/profiles/paranoid.yaml,sha256=P3jONEyS9qIU5OPhBpEmlzc1AMJVC6ncIBR3GwJIr8Q,128
31
+ secator/configs/profiles/passive.yaml,sha256=xsqIXPXkem9K5ov27MGmvycoScmo_eq5Yb5PFP3YhFE,256
32
+ secator/configs/profiles/polite.yaml,sha256=yZ2rtUMpSf-xMD7ZBFd6QS7XfYPEOSZ0Sn65lVF9M54,138
33
+ secator/configs/profiles/sneaky.yaml,sha256=TOouDi-JQ3ZGZW9t7xbax-UvB-r2IsTr9sONwSRGo88,147
34
+ secator/configs/profiles/tor.yaml,sha256=qQNUqKS236jHp_IuQlWRL6k9w4lMqvaaLmhjVxjgPbY,92
35
+ secator/configs/scans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ secator/configs/scans/domain.yaml,sha256=RQYhIwWVeHrwS_Bj5xa6jBD0rGJhtzxNOXWsjZbT-iQ,845
37
+ secator/configs/scans/host.yaml,sha256=Gd3Q7jc8wWgnJ5vM1XcqTpjjlIOQmHwJzM_Y1ZVX9tY,581
38
+ secator/configs/scans/network.yaml,sha256=P07UuMNAEVgDG-q8Ulr_DISsGcPczQmep5KlSYS7-hw,805
39
+ secator/configs/scans/subdomain.yaml,sha256=ccvHUKjaXsxib2nP2tisd0I8sFaU_qomadmonIwokig,753
40
+ secator/configs/scans/url.yaml,sha256=zSWmQp_JDSsV26MJxXDWFreISTBbXGXK7DEYivDbO8Y,590
41
+ secator/configs/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ secator/configs/workflows/cidr_recon.yaml,sha256=ejdl8qCSCFGbaZWW5EMGFM1Lfw2yQ4SJDM-R2Rs4lPY,1357
43
+ secator/configs/workflows/code_scan.yaml,sha256=7_J11BkmIf1SnOm5HanJA1UwS7tbmXqz9lsrZ8eFkUw,1029
44
+ secator/configs/workflows/domain_recon.yaml,sha256=c9lo7oNHlyexSdztu3QQbgK6_8nF4kKFSoCyAHwM9C8,1173
45
+ secator/configs/workflows/host_recon.yaml,sha256=avmt8lguDHr6BPbxv3wuRxjYX_naQpsyfQvRJZBmxh4,2498
46
+ secator/configs/workflows/subdomain_recon.yaml,sha256=PeatqacsEc2o-06AZM_E63NHwukq0sWnHsWY24hEUYU,3001
47
+ secator/configs/workflows/url_bypass.yaml,sha256=THWNak7nihv2S06Ij07b1wL94415IdYIRquxf69STOk,509
48
+ secator/configs/workflows/url_crawl.yaml,sha256=B0dotZGNX-gLm-b9q1TpaqiLXmTrZ0zpx_NkZ-3Zigg,2665
49
+ secator/configs/workflows/url_dirsearch.yaml,sha256=mUqAX3LeL_2e3sG_ws2zCfum5AQcHSUplFqdHBEGfw0,1537
50
+ secator/configs/workflows/url_fuzz.yaml,sha256=UHTjigZJNtDgtzsLWySO2dj5k7lMx5qJZBB8L4qH5CU,1704
51
+ secator/configs/workflows/url_params_fuzz.yaml,sha256=fxxkNCDuKIQ7Z-ZSyf3a3orzR2AYJ-UIjBIpROnhs0c,1862
52
+ secator/configs/workflows/url_secrets_hunt.yaml,sha256=8gvUpFkrnczaY2vGcWqLlpgrk0KyvHWIJxkxlJadaJY,720
53
+ secator/configs/workflows/url_vuln.yaml,sha256=Of2Pl-mAhboJHl5wNPlFg6mwGWM4ICPTimfK2C_830I,2381
54
+ secator/configs/workflows/user_hunt.yaml,sha256=OAzQja5bzaTNqEp93gcxaeGHy4TTUqChAHM_mG-68Lc,881
55
+ secator/configs/workflows/wordpress.yaml,sha256=aqFsjIjVAkwIIRtV9LelKmbNq4Oqql0L2vKJ9K6m19I,898
56
+ secator/exporters/__init__.py,sha256=PnT9Ra4ArHt9VQTK5Cpc4CPY89XRwLLUGtZ8nUcknm0,415
57
+ secator/exporters/_base.py,sha256=wM1UT1PsSP1gX4gylvpQjBeAsk59F2Q2eFrt7AFU7jM,68
58
+ secator/exporters/console.py,sha256=vbmSln4UrIpzjCQCs6JdZ2VRxjX8qQ1gznCPx89xbX0,263
59
+ secator/exporters/csv.py,sha256=gvwS0dgYhUKjjyNX-jal8SvKQrkjiUEwzDzC4zN8UO4,1068
60
+ secator/exporters/gdrive.py,sha256=6Nj9RTOhraBOalm2H8Fp1tItD2ZrSfgtY4SiXViefcQ,4201
61
+ secator/exporters/json.py,sha256=1ZtDf8RksPO_V0zIvnwDUxMUb630DCElAMM8_RQvyAo,474
62
+ secator/exporters/table.py,sha256=zYNmwNGEyB6dTJ1ATVkrv-AOuPjrW6tvk1_4naLQo8Q,1114
63
+ secator/exporters/txt.py,sha256=t_FykaJOxs4UUlqiH4k6HCccEqYqc8e3iNZndL_CKPg,739
64
+ secator/hooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ secator/hooks/gcs.py,sha256=6dFAyr3f5DYqnz1KXbTbq7kuihYDx2I9nd8E_9T33mI,2370
66
+ secator/hooks/mongodb.py,sha256=PEN0n3YVUTY3kdIkpUxsw2tgyCGUtT0iUKI630keXCQ,8111
67
+ secator/output_types/__init__.py,sha256=wmwR9in_SLMmaabUlq5y3nJQw3iIdRsTPK2KqIjRJyo,1379
68
+ secator/output_types/_base.py,sha256=9iBqPdtlfJBldBiuC729KamHHGbKhwo69P-2UNwz-3Q,2874
69
+ secator/output_types/certificate.py,sha256=Y6Lv1nI73zEIZt13n6yQwArgol3Z-p8sUInbj73Gs3c,3055
70
+ secator/output_types/domain.py,sha256=zVnCBko_Wfa2fnsyTQlLqoX7YMuREZ1LD56TRR2LNz0,1665
71
+ secator/output_types/error.py,sha256=lA7DDNUb8iuw3nbanzMD0BjQjOEwUEQPAMZy_9sRs9o,1540
72
+ secator/output_types/exploit.py,sha256=lYUxLIKUsEOKaE_s1CyYlSaXcDZ6o6T8v6YkGL8GiT0,1820
73
+ secator/output_types/info.py,sha256=HcOwdF4OPw3Qni_X0c8bDSLqq2LZLMjIwwLgtEwBwHE,820
74
+ secator/output_types/ip.py,sha256=2Nb4vgfnGD4DIL6_beFognp_-G32khXVx-m84LluZCo,1453
75
+ secator/output_types/port.py,sha256=ifGyTGUnZDnT4aDeYYFf7nLqrrycEy48Vpjs89uMiME,2121
76
+ secator/output_types/progress.py,sha256=D598UDh4VBcSLetOjcd-DY1H_EVgymQXVgbMK6FE-ZY,1228
77
+ secator/output_types/record.py,sha256=2btivbkjYJIG0qVrOBqyi7VgMP88Lp3-y-wwdgpCtog,1206
78
+ secator/output_types/stat.py,sha256=hb5s8eUs7OQAaxLSo-DAs0HtZcl7CflPxjmzVks1n94,1470
79
+ secator/output_types/state.py,sha256=kY5ArRYpRVfIULj7Qt93Lx8YeeIEMa1Ke7q8vnK0Yzk,996
80
+ secator/output_types/subdomain.py,sha256=X6P-9eynxUz4qsMVR26CR1BpVS5c4-Cm4sQ77KL9mUk,1426
81
+ secator/output_types/tag.py,sha256=20zAUqdXx_CsVnr6YjPxuwo8mt9dD7GGrd5plsa95EQ,2324
82
+ secator/output_types/target.py,sha256=gIrx-IXermWBaPfIS4CBs0PfsrfdtMsYlnduwmZe8BE,1067
83
+ secator/output_types/url.py,sha256=ElwR4gAh3a0pkcc-lOb0cHsucE_DEV3wmOptIWb48OA,4125
84
+ secator/output_types/user_account.py,sha256=B8ssvvDHC_7FBOU06yuBkotJaUvDSf9WLj9QdFPdLW4,1395
85
+ secator/output_types/vulnerability.py,sha256=0QZuEicFn9ETtdVIHzkkhW3OOFrYuMoHUxCdvb3iwX8,2922
86
+ secator/output_types/warning.py,sha256=EyKyK7Ccgdc5hJ95Bvwq8dEgjYDehuKYwJS5dZ6oAzc,1048
87
+ secator/runners/__init__.py,sha256=JTGODmlx0Zq2JNxCePYwcmoVhPPGsyQYGQP3Q7tcHbI,358
88
+ secator/runners/_base.py,sha256=qTctZkZhkI3Ys_G9IG5_yS1A57UlU1KvXiENDUIytXw,41315
89
+ secator/runners/_helpers.py,sha256=tyTDIgUyuzWJDW8HaN3xLbDsjZbRYMJBXEl1xYUl9Xw,6341
90
+ secator/runners/celery.py,sha256=bqvDTTdoHiGRCt0FRvlgFHQ_nsjKMP5P0PzGbwfCj_0,425
91
+ secator/runners/command.py,sha256=bA3gyY_op_MsUammXy1s5Sk2W_3_s-JOlOYWYrY4vKc,36561
92
+ secator/runners/python.py,sha256=vkLZgfYEzXEEhnj3-MsHwqVyfkQ4DTnwicSD2oDi-A4,3576
93
+ secator/runners/scan.py,sha256=axT_OmGhixogCPMUS1OUeMLnFtk8PxY7zL9NYCugFVU,2578
94
+ secator/runners/task.py,sha256=PrkVns8UAGht2JbCmCUWycA6B39Z5oeMmAMq69KtXKI,2199
95
+ secator/runners/workflow.py,sha256=YnpTSdmp54d55vORe4khWLSx2J7gtDFNryKfZXYAWnY,6076
96
+ secator/scans/__init__.py,sha256=Tr-plKBxdv_QNqOGe63-UZwz_-GzGGJrLuPMmjFKwao,654
97
+ secator/serializers/__init__.py,sha256=OP5cmFl77ovgSCW_IDcZ21St2mUt5UK4QHfrsK2KvH8,248
98
+ secator/serializers/dataclass.py,sha256=Fo2ZVsVjSF0KMq81JT8mGZxsKsxyueShlDsh9PgwWHE,896
99
+ secator/serializers/json.py,sha256=2OU1Uj3gLv1YOQb13d66AbtRvnNAQySwC5PbowsULEk,978
100
+ secator/serializers/regex.py,sha256=fh-fE0RGvKSGKByFtwmKsWriRpZR9PXZQsY9JybHBWI,489
101
+ secator/tasks/__init__.py,sha256=Op0O0Aa8c124AfDG-cEB9VLRsXZ1wXTpVrT3g-wxMNg,184
102
+ secator/tasks/_categories.py,sha256=5qVdPdqEUpNDfsVMaBV_rGvrQJSPUMbuV93ut9tWH0s,15292
103
+ secator/tasks/arjun.py,sha256=wAXiv7r0DCNsCxuOMWFGq5s9sijjmI5bFTX4zOKiEDc,3553
104
+ secator/tasks/arp.py,sha256=VaB85kKR0bvxPBnwZZ1uoqYXQqmCucusAHBIgf1BKqU,1237
105
+ secator/tasks/arpscan.py,sha256=r-pyXAwOrdvpwyV8FiaZ3vMDrL6vU58AYAnY82nlNEA,2368
106
+ secator/tasks/bbot.py,sha256=kmWshFhBUhfdFTa_21leK632SC5zZgDxN4qlogzATGo,9284
107
+ secator/tasks/bup.py,sha256=7bUIoU6Zhdr2RoQ910YFq1n5wRlj9zcJWCYi5JjzkO4,3930
108
+ secator/tasks/cariddi.py,sha256=x0ilLolt1tNXULA7hGJpt9GUj63heLh5N1k6miK3yB0,6311
109
+ secator/tasks/dalfox.py,sha256=R36bcomB1omrgnDYVLQU4gTzsb5iDTGLRo-3ZjT2D7w,2499
110
+ secator/tasks/dirsearch.py,sha256=BZ0uixqJycZjkjFi9CXhXqDapUm7DUn5fc24K1yo_xg,2478
111
+ secator/tasks/dnsx.py,sha256=jNn52UHUUk2_JuN6molcYntcgi17Ohgdmxu9rzZ_gko,6205
112
+ secator/tasks/feroxbuster.py,sha256=27n5haJcaRkpO-KBV00BeAl1mxk0YcOUpyszcI7sS8s,3002
113
+ secator/tasks/ffuf.py,sha256=mn6_nHodq1ePZHeLogwj-4O5lemgTvmxmc3erH2HX2o,4543
114
+ secator/tasks/fping.py,sha256=IlWuM4_LoKCMk006beR2oMi6olYd7lUCfRCoFWxPj2I,2625
115
+ secator/tasks/gau.py,sha256=ngrsrlUgUnYrUEZX7IvYzgo_cGRk6TXREY6xEPA-3WU,3670
116
+ secator/tasks/getasn.py,sha256=imwOSsRjx6Pn_iIsWLsxB1yCVBxS3w4VKdqGc4WwOIA,1528
117
+ secator/tasks/gf.py,sha256=plA6I3DCSjdmecQd003T70FFRvP_9oOFMSidK5UtUAw,1057
118
+ secator/tasks/gitleaks.py,sha256=3y8Upa2XGPjL7dl7LSMd0euEPTWg9D1fR0Ho-Qifstc,3142
119
+ secator/tasks/gospider.py,sha256=I08GzY6VVZaihjNvKWlEOv-lF6Kg2jYcoBJthIksBfo,2505
120
+ secator/tasks/grype.py,sha256=e6Kl3rB1tC5Ip-VOR6PTlvgkiR7TOphDhxiaMtwsOlk,3049
121
+ secator/tasks/h8mail.py,sha256=0pkfJw0OWp9KJJdi_vatFN87He7w_E5kEOoRH9GI88U,2102
122
+ secator/tasks/httpx.py,sha256=Ik502GHloFU0x7d46dRWB2RBY-U3ChW1NBQ2L7GghvU,6606
123
+ secator/tasks/jswhois.py,sha256=JsQAxK0_IWhW553-6eVUp6TdboWbHBFz0J4RZ_ot29I,931
124
+ secator/tasks/katana.py,sha256=TaDcxNkrd9WSUrduW1uyuheRAl6x0ygD6GBiMn16iC0,7136
125
+ secator/tasks/maigret.py,sha256=4QSAn3ccHTvM5DMe6IlMQLi3-AV81X_XSEcrdxkbXc0,2270
126
+ secator/tasks/mapcidr.py,sha256=XS9wh-aiSKMkVsKq7VyvNh77OtX7s6aAokdTyKlmK4o,1334
127
+ secator/tasks/msfconsole.py,sha256=X6Lw26_LF1I6DRJATeyDOwuukk3csY-hDKonJU8EJKo,6570
128
+ secator/tasks/naabu.py,sha256=mj6erC2hTnfxQFfsI0AvMvw-DbxX4G4YYutB0hat0aI,2384
129
+ secator/tasks/nmap.py,sha256=zPqSeNYeQxi-TjrqaoPxx3TSzhHr5d39F1SRbBUgVHw,17021
130
+ secator/tasks/nuclei.py,sha256=dQB8uNxZVZ-zRr5KpM0Q6JjPzrVzsXcigomznBHiTCU,5972
131
+ secator/tasks/search_vulns.py,sha256=ZmS0nEYGFLVFLjwQv4NkBNgxR83fiY_Am6Mc2BPphq8,6155
132
+ secator/tasks/searchsploit.py,sha256=Vt1BOQa7kerqEKgX36VoPJVyvfRhFnuRy4esNdTHKhY,3608
133
+ secator/tasks/sshaudit.py,sha256=jBbz-BL6XK6tFeSbpRwdAkaMvmz2bGtzxt-zZQpYhRU,8042
134
+ secator/tasks/subfinder.py,sha256=gY1Nb8PDz7krdcQCQ6QKlYV7FB5h2eKY2xNVSVrP2So,1289
135
+ secator/tasks/testssl.py,sha256=cxOcJrQ95_-fAcytIOYNUIcl0-yVRo4Z22OU5bTjXdE,8937
136
+ secator/tasks/trivy.py,sha256=58HFL1xPMtGv4VZt21HW5bTNEbvxeUxTEVNfk96rKl0,4325
137
+ secator/tasks/trufflehog.py,sha256=Lv380O7PpizJ1zOajOqI4X0A8acclwsXr7LNtSB-w94,10049
138
+ secator/tasks/urlfinder.py,sha256=_ZDj6JBVpjFlvCbOWovPi9js8f42N4ckLleXPYLsMQo,3479
139
+ secator/tasks/wafw00f.py,sha256=ugks0dtHf-tZe8e7soJbg2ErcI2d34xl5bVGRZumpX4,3237
140
+ secator/tasks/whois.py,sha256=aaBL1lzW_SSeii41uat2oLVJe7VzehcoXbsjiSMbaMQ,1004
141
+ secator/tasks/wpprobe.py,sha256=xDo12_5ZelT0DOCC6XKTztyXFkTlwMfUJV0KyLMrYgk,3586
142
+ secator/tasks/wpscan.py,sha256=6MG7Gj3ed6feHCh2MWtRUEmMOF3gjP7P69XlwYQql_c,6793
143
+ secator/tasks/x8.py,sha256=x262r1IESzDuq_6SduT4FJykrp7DALoBWzbSBdpJKPU,3234
144
+ secator/tasks/xurlfind3r.py,sha256=oW3BGnGxkDnxE_gy7KZ93lxgN-l9OPqagqe7t607a1E,3188
145
+ secator/workflows/__init__.py,sha256=XOviyjSylZ4cuVmmQ76yuqZRdmvOEghqAnuw_4cLmfk,702
146
+ secator-0.22.0.dist-info/METADATA,sha256=kbJUEFucmYxJbW3VNGzsWNPA7_tPBRUAQBi2ZosR9d8,18718
147
+ secator-0.22.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
148
+ secator-0.22.0.dist-info/entry_points.txt,sha256=lPgsqqUXWgiuGSfKy-se5gHdQlAXIwS_A46NYq7Acic,44
149
+ secator-0.22.0.dist-info/licenses/LICENSE,sha256=19W5Jsy4WTctNkqmZIqLRV1gTDOp01S3LDj9iSgWaJ0,2867
150
+ secator-0.22.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ secator = secator.cli:cli