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,31 @@
1
+ type: profile
2
+ name: full
3
+ description: "Active all optional features"
4
+ enforce: true
5
+ opts:
6
+ # Task option overrides
7
+ headless: true # katana
8
+ system_chrome: true # katana
9
+ no_sandbox: true # katana
10
+ screenshot: true # httpx
11
+ juicy_extensions: 3 # cariddi
12
+ server_defaults: false # testssl
13
+
14
+ # Workflow options overrides
15
+ ports: "-"
16
+ nuclei: true
17
+ brute_dns: true
18
+ brute_http: true
19
+ hunt_secrets: true
20
+ test_ssl: true
21
+
22
+ # Scan options overrides
23
+ host_recon_nuclei: true
24
+ host_recon_ports: "-"
25
+ domain_recon_testssl_server_defaults: null
26
+ subdomain_recon_hunt_secrets: true
27
+ subdomain_recon_test_ssl: true
28
+ subdomain_recon_testssl_server_defaults: null
29
+ url_crawl_hunt_secrets: true
30
+ url_vuln_nuclei: true
31
+ url_crawl_cariddi_juicy_extensions: 3
@@ -0,0 +1,7 @@
1
+ type: profile
2
+ name: http_headless
3
+ description: "Headless HTTP requests"
4
+ opts:
5
+ headless: true
6
+ system_chrome: true
7
+ no_sandbox: true
@@ -0,0 +1,8 @@
1
+ type: profile
2
+ name: http_record
3
+ description: "Record HTTP requests / responses and take screenshots"
4
+ opts:
5
+ screenshot: true
6
+ store_responses: true
7
+ system_chrome: true
8
+ no_sandbox: true
@@ -0,0 +1,8 @@
1
+ type: profile
2
+ name: insane
3
+ description: "Local LAN scanning or stress scanning"
4
+ opts:
5
+ rate_limit: 100000
6
+ delay: 0
7
+ timeout: 1
8
+ retries: 0
@@ -0,0 +1,8 @@
1
+ type: profile
2
+ name: paranoid
3
+ description: "Maximum stealth"
4
+ opts:
5
+ rate_limit: 5
6
+ delay: 5
7
+ timeout: 15
8
+ retries: 5
@@ -0,0 +1,11 @@
1
+ type: profile
2
+ name: passive
3
+ description: "Passive only (no requests to targets)"
4
+ enforce: true
5
+ opts:
6
+ passive: True
7
+ domain_recon_passive: True
8
+ subdomain_recon_passive: True
9
+ host_recon_passive: True
10
+ url_crawl_passive: True
11
+ url_vuln_passive: True
@@ -0,0 +1,8 @@
1
+ type: profile
2
+ name: polite
3
+ description: "Avoid overloading network"
4
+ opts:
5
+ rate_limit: 100
6
+ delay: 0
7
+ timeout: 10
8
+ retries: 5
@@ -0,0 +1,8 @@
1
+ type: profile
2
+ name: sneaky
3
+ description: "IDS/IPS evasion, sensitive networks"
4
+ opts:
5
+ rate_limit: 10
6
+ delay: 2
7
+ timeout: 15
8
+ retries: 5
@@ -0,0 +1,5 @@
1
+ type: profile
2
+ name: tor
3
+ description: "Anonymous scan using Tor network"
4
+ opts:
5
+ proxy: auto
File without changes
@@ -0,0 +1,31 @@
1
+ type: scan
2
+ name: domain
3
+ description: Domain scan
4
+ long_description: |
5
+ Comprehensive security assessment of a domain, combining multiple workflows for complete coverage.
6
+ Performs domain reconnaissance, subdomain discovery, host reconnaissance, URL crawling, and
7
+ vulnerability scanning. Provides a full picture of the domain's attack surface, infrastructure,
8
+ and potential security issues. Ideal for thorough domain-level security assessments.
9
+ profile: default
10
+ input_types:
11
+ - host
12
+
13
+ workflows:
14
+ domain_recon:
15
+ subdomain_recon:
16
+ host_recon:
17
+ targets_:
18
+ - type: target
19
+ field: name
20
+ condition: target.type == 'host'
21
+ - type: subdomain
22
+ field: host
23
+ condition: subdomain.verified
24
+ url_crawl:
25
+ targets_:
26
+ - url.url
27
+ url_vuln:
28
+ targets_:
29
+ - type: url
30
+ field: url
31
+ condition: url.verified
@@ -0,0 +1,23 @@
1
+ type: scan
2
+ name: host
3
+ description: Host scan
4
+ long_description: |
5
+ In-depth security assessment of a specific host or IP address.
6
+ Combines host reconnaissance with URL crawling and vulnerability scanning to identify
7
+ open ports, running services, web applications, and potential security weaknesses.
8
+ Perfect for targeted host-level security testing and penetration testing.
9
+ profile: default
10
+ input_types:
11
+ - host
12
+ - ip
13
+
14
+ workflows:
15
+ host_recon:
16
+ url_crawl:
17
+ targets_:
18
+ - url.url
19
+ url_vuln:
20
+ targets_:
21
+ - type: url
22
+ field: url
23
+ condition: url.verified
@@ -0,0 +1,30 @@
1
+ type: scan
2
+ name: network
3
+ description: Internal network scan
4
+ long_description: |
5
+ Comprehensive security assessment of an internal network or CIDR range.
6
+ Discovers live hosts, scans for services and vulnerabilities, and performs URL-based
7
+ testing on discovered web applications. Combines CIDR reconnaissance with web application
8
+ security testing. Essential for internal network security assessments and lateral movement testing.
9
+ profile: default
10
+ default_inputs: [discover]
11
+ input_types:
12
+ - cidr_range
13
+ - slug
14
+ workflows:
15
+ cidr_recon:
16
+ host_recon:
17
+ targets_:
18
+ - type: ip
19
+ field: ip
20
+ condition: ip.alive
21
+ url_crawl:
22
+ targets_:
23
+ - type: url
24
+ field: url
25
+ condition: url.verified
26
+ url_vuln:
27
+ targets_:
28
+ - type: url
29
+ field: url
30
+ condition: url.verified
@@ -0,0 +1,27 @@
1
+ type: scan
2
+ name: subdomain
3
+ description: Subdomain scan
4
+ long_description: |
5
+ Complete security assessment focused on subdomain discovery and testing.
6
+ Discovers all subdomains of a target domain, performs reconnaissance on discovered hosts,
7
+ crawls web applications, and scans for vulnerabilities. Identifies the full subdomain
8
+ attack surface and potential security issues. Crucial for comprehensive domain security testing.
9
+ profile: default
10
+ input_types:
11
+ - host
12
+ workflows:
13
+ subdomain_recon:
14
+ host_recon:
15
+ targets_:
16
+ - type: target
17
+ field: name
18
+ condition: target.type == 'host'
19
+ - subdomain.host
20
+ url_crawl:
21
+ targets_:
22
+ - url.url
23
+ url_vuln:
24
+ targets_:
25
+ - type: url
26
+ field: url
27
+ condition: url.verified
@@ -0,0 +1,19 @@
1
+ type: scan
2
+ name: url
3
+ description: URL scan
4
+ long_description: |
5
+ Thorough security assessment of web applications and URLs.
6
+ Combines URL crawling, fuzzing, and vulnerability scanning to discover hidden content,
7
+ identify potential attack vectors, and find security vulnerabilities. Tests for common
8
+ web vulnerabilities including XSS, injection flaws, and misconfigurations. Essential for web application security testing.
9
+ profile: default
10
+ input_types:
11
+ - url
12
+ workflows:
13
+ url_crawl:
14
+ url_fuzz:
15
+ url_vuln:
16
+ targets_:
17
+ - type: url
18
+ field: url
19
+ condition: url.verified
File without changes
@@ -0,0 +1,48 @@
1
+ type: workflow
2
+ name: cidr_recon
3
+ alias: cidrrec
4
+ description: Local network recon
5
+ long_description: |
6
+ Discovers and analyzes hosts within a CIDR range or local network through ARP / ICMP scanning.
7
+ Maps IP addresses and identifies live hosts.
8
+ Useful for local network security assessments and penetration testing.
9
+ tags: [recon, cidr, network]
10
+ input_types:
11
+ - cidr_range
12
+ - ip
13
+ - slug
14
+ default_inputs: [discover]
15
+ # default_inputs:
16
+ # - 127.0.0.1/24 # localhost
17
+ # - 192.168.0.0/24 # local
18
+ # - 192.168.1.0/24 # local
19
+ # - 10.0.0.0/24 # standard subnet
20
+ # - 172.16.0.0/24 # private network
21
+ # - 172.16.0.0/16 # docker
22
+ # - 172.17.0.1/16 # docker #2
23
+ # - 172.18.0.1/16 # docker #3
24
+
25
+ tasks:
26
+ arpscan:
27
+ description: Discover hosts with ARP requests
28
+
29
+ fping:
30
+ description: Discover hosts with ICMP requests
31
+ targets_:
32
+ - type: ip
33
+ field: ip
34
+ condition: ip.alive and 'discover' in targets
35
+ - type: target
36
+ field: name
37
+ condition: target.name not in ['discover']
38
+
39
+ nmap:
40
+ description: Discover hosts and ports with TCP SYN scan
41
+ tcp_syn_stealth: True
42
+ targets_:
43
+ - type: ip
44
+ field: ip
45
+ condition: ip.alive and 'discover' in targets
46
+ - type: target
47
+ field: name
48
+ condition: target.name not in ['discover']
@@ -0,0 +1,29 @@
1
+ type: workflow
2
+ name: code_scan
3
+ alias: codescan
4
+ description: Code vulnerability scan and secret hunt
5
+ long_description: |
6
+ Analyzes source code repositories and filesystems for security vulnerabilities and exposed secrets.
7
+ Scans dependencies for known CVEs, detects hardcoded credentials, API keys, and sensitive data
8
+ in code. Supports multiple input types including local paths, Git repositories, and cloud storage.
9
+ Essential for DevSecOps and identifying security issues before deployment.
10
+ tags: [vuln, secret, code]
11
+ input_types:
12
+ - path
13
+ - url
14
+ - gcs_url
15
+ - string
16
+
17
+ tasks:
18
+ _group:
19
+ grype:
20
+ description: Find vulnerabilities in dependencies
21
+ if: not opts.mode or opts.mode in ['filesystem', 'git']
22
+ trivy:
23
+ description: Find vulnerabilities in codebase
24
+ if: not opts.mode or opts.mode in ['filesystem', 'git']
25
+ gitleaks:
26
+ description: Scan codebase for leaks
27
+ if: not opts.mode or opts.mode in ['filesystem', 'git']
28
+ trufflehog:
29
+ description: Scan codebase for secrets
@@ -0,0 +1,46 @@
1
+ type: workflow
2
+ name: domain_recon
3
+ alias: domrec
4
+ description: Basic domain recon (WHOIS, SSL Certificates, WAF detection...)
5
+ long_description: |
6
+ Performs comprehensive reconnaissance on a domain to gather essential information.
7
+ Collects WHOIS data, probes HTTP services, detects technologies, analyzes SSL/TLS security,
8
+ resolves DNS records, retrieves ASN information, and identifies any Web Application Firewalls (WAF).
9
+ Ideal for understanding a domain's infrastructure and security posture before deeper testing.
10
+ input_types:
11
+ - host
12
+
13
+ options:
14
+ passive:
15
+ is_flag: True
16
+ help: Passive only (no requests to targets)
17
+ default: False
18
+ short: ps
19
+
20
+ tasks:
21
+ _group:
22
+ jswhois:
23
+ description: Get WHOIS information
24
+
25
+ httpx:
26
+ description: Run HTTP probe on domain
27
+ tech_detect: True
28
+ tls_grab: True
29
+ if: not opts.passive
30
+
31
+ getasn:
32
+ description: Get ASN from domain name
33
+
34
+ testssl:
35
+ description: Test SSL/TLS security
36
+ server_defaults: True
37
+ if: not opts.passive
38
+
39
+ dnsx:
40
+ description: Resolve DNS records
41
+
42
+ wafw00f:
43
+ description: Check WAF
44
+ targets_:
45
+ - url.url
46
+ if: not opts.passive
@@ -0,0 +1,95 @@
1
+ type: workflow
2
+ name: host_recon
3
+ alias: hostrec
4
+ description: Host recon
5
+ long_description: |
6
+ Performs comprehensive reconnaissance on a host or IP address to identify open ports and services.
7
+ Combines multiple port scanning techniques, detects service versions, searches for known vulnerabilities,
8
+ audits SSH configurations, and probes HTTP services. Optionally runs nuclei scans for network and
9
+ SSL vulnerabilities. Essential for understanding a host's security posture and attack surface.
10
+ tags: [recon, network, http]
11
+ input_types:
12
+ - ip
13
+ - host
14
+ - cidr_range
15
+
16
+ options:
17
+ nuclei:
18
+ is_flag: True
19
+ default: False
20
+ help: Run nuclei scans (slow)
21
+
22
+ scanners:
23
+ type: list
24
+ required: True
25
+ default: [nmap, naabu]
26
+ help: Port scanners to use (naabu, nmap)
27
+
28
+ tasks:
29
+
30
+ _group:
31
+ naabu:
32
+ description: Find open ports (light)
33
+ if: "'naabu' in opts.scanners"
34
+
35
+ nmap:
36
+ description: Find open ports (light)
37
+ if: "'nmap' in opts.scanners"
38
+
39
+ nmap/vulners:
40
+ description: Search for vulnerabilities on open ports
41
+ version_detection: True
42
+ script: vulners
43
+ targets_:
44
+ - port.host
45
+ ports_:
46
+ - type: port
47
+ field: port
48
+ condition: port.host in targets
49
+ if: "'nmap' in opts.scanners"
50
+
51
+ sshaudit:
52
+ description: Audit SSH port
53
+ targets_:
54
+ - type: port
55
+ field: host
56
+ condition: "port.port == 22 or 'ssh' in port.service_name.lower()"
57
+
58
+ _group/1:
59
+ httpx:
60
+ description: Probe HTTP services on open ports
61
+ tech_detect: True
62
+ targets_:
63
+ - type: port
64
+ field: '{host}:{port}'
65
+
66
+ searchsploit:
67
+ description: Search for related exploits
68
+ targets_:
69
+ - type: port
70
+ field: '{host}:{port}~{service_name}'
71
+ condition: len(item.service_name.split('/')) > 1
72
+
73
+ search_vulns:
74
+ description: Search for related exploits
75
+ targets_:
76
+ - type: port
77
+ field: '{host}:{port}~{service_name}'
78
+ condition: len(item.service_name.split('/')) > 1
79
+ - type: vulnerability
80
+ field: '{matched_at}~{id}'
81
+
82
+ _group/2:
83
+ nuclei/network:
84
+ description: Scan network and SSL vulnerabilities
85
+ tags: [network, ssl]
86
+ if: opts.nuclei
87
+
88
+ nuclei/url:
89
+ description: Search for vulnerabilities on alive HTTP services
90
+ exclude_tags: [network, ssl, file, dns, osint, token-spray, headers]
91
+ targets_:
92
+ - type: url
93
+ field: url
94
+ condition: item.status_code != 0
95
+ if: opts.nuclei
@@ -0,0 +1,120 @@
1
+ type: workflow
2
+ name: subdomain_recon
3
+ alias: subrec
4
+ description: Subdomain discovery
5
+ long_description: |
6
+ Discovers subdomains associated with a target domain using multiple passive and active techniques.
7
+ Combines passive sources, DNS queries, TLS certificate analysis, and optional brute-force methods.
8
+ Verifies discovered subdomains, checks for subdomain takeover vulnerabilities, and can optionally
9
+ test SSL/TLS security or hunt for secrets in HTTP responses. Perfect for mapping attack surface.
10
+ tags: [recon, dns, takeovers]
11
+ input_types:
12
+ - host
13
+
14
+ options:
15
+ passive:
16
+ is_flag: True
17
+ help: Passive only (no requests to targets)
18
+ default: False
19
+ short: ps
20
+
21
+ brute_http:
22
+ is_flag: True
23
+ help: Bruteforce subdomains with HTTP Host header (ffuf)
24
+ short: bhttp
25
+ default: False
26
+
27
+ brute_dns:
28
+ is_flag: True
29
+ help: Bruteforce subdomains with DNS queries (dnsx)
30
+ short: bdns
31
+ default: False
32
+
33
+ test_ssl:
34
+ is_flag: True
35
+ help: Test SSL/TLS security on subdomains
36
+ short: tssl
37
+ default: False
38
+
39
+ hunt_secrets:
40
+ is_flag: True
41
+ help: Hunt secrets in HTTP responses (trufflehog)
42
+ default: False
43
+ short: hs
44
+
45
+ tasks:
46
+ httpx/tls:
47
+ description: Find subdomains through TLS certificates
48
+ tech_detect: True
49
+ tls_grab: True
50
+ targets_:
51
+ - target.name
52
+ if: not opts.passive
53
+
54
+ _group/hunt:
55
+ subfinder:
56
+ description: List subdomains (passive)
57
+
58
+ gau:
59
+ description: List subdomains (passive)
60
+ subs: True
61
+
62
+ dnsx/brute:
63
+ description: Bruteforce subdomains (DNS)
64
+ subdomains_only: True
65
+ wordlist: combined_subdomains
66
+ if: opts.brute_dns and not opts.passive
67
+
68
+ ffuf:
69
+ description: Bruteforce subdomains (Host header)
70
+ fuzz_host_header: True
71
+ auto_calibration: True
72
+ wordlist: combined_subdomains
73
+ stop_on_error: True
74
+ targets_:
75
+ - type: url
76
+ field: url
77
+ condition: item._source.startswith('httpx')
78
+ if: opts.brute_http and not opts.passive
79
+
80
+ _group/probe:
81
+ dnsx/probe:
82
+ description: Verify subdomains by probing DNS records
83
+ subdomains_only: True
84
+ targets_:
85
+ - type: subdomain
86
+ field: host
87
+ condition: not item.verified
88
+
89
+ httpx/probe:
90
+ description: Run HTTP probes on subdomains
91
+ tech_detect: True
92
+ targets_:
93
+ - type: subdomain
94
+ field: host
95
+ if: not opts.passive
96
+
97
+ _group/vuln:
98
+ testssl:
99
+ description: Test SSL/TLS security on subdomains
100
+ server_defaults: True
101
+ targets_:
102
+ - type: subdomain
103
+ field: host
104
+ if: opts.test_ssl
105
+
106
+ nuclei:
107
+ description: Check for subdomain takeovers
108
+ targets_:
109
+ - target.name
110
+ - subdomain.host
111
+ tags: [takeover]
112
+ if: not opts.passive
113
+
114
+ trufflehog:
115
+ description: Find secrets in HTTP responses
116
+ targets_:
117
+ - type: url
118
+ field: stored_response_path
119
+ condition: item.stored_response_path != ''
120
+ if: opts.hunt_secrets and not opts.passive
@@ -0,0 +1,15 @@
1
+ type: workflow
2
+ name: url_bypass
3
+ alias: urlbypass
4
+ description: Try bypass techniques for 4xx URLs
5
+ long_description: |
6
+ Attempts to bypass access restrictions on URLs that return 4xx status codes (forbidden, not found, etc.).
7
+ Uses various HTTP header manipulation and path traversal techniques to potentially gain access
8
+ to protected resources. Useful for finding misconfigured access controls and authorization bypasses.
9
+ tags: [http, crawl]
10
+ input_types:
11
+ - url
12
+
13
+ tasks:
14
+ bup:
15
+ description: Bypass 4xx