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.
- secator/.gitignore +162 -0
- secator/__init__.py +0 -0
- secator/celery.py +453 -0
- secator/celery_signals.py +138 -0
- secator/celery_utils.py +320 -0
- secator/cli.py +2035 -0
- secator/cli_helper.py +395 -0
- secator/click.py +87 -0
- secator/config.py +670 -0
- secator/configs/__init__.py +0 -0
- secator/configs/profiles/__init__.py +0 -0
- secator/configs/profiles/aggressive.yaml +8 -0
- secator/configs/profiles/all_ports.yaml +7 -0
- secator/configs/profiles/full.yaml +31 -0
- secator/configs/profiles/http_headless.yaml +7 -0
- secator/configs/profiles/http_record.yaml +8 -0
- secator/configs/profiles/insane.yaml +8 -0
- secator/configs/profiles/paranoid.yaml +8 -0
- secator/configs/profiles/passive.yaml +11 -0
- secator/configs/profiles/polite.yaml +8 -0
- secator/configs/profiles/sneaky.yaml +8 -0
- secator/configs/profiles/tor.yaml +5 -0
- secator/configs/scans/__init__.py +0 -0
- secator/configs/scans/domain.yaml +31 -0
- secator/configs/scans/host.yaml +23 -0
- secator/configs/scans/network.yaml +30 -0
- secator/configs/scans/subdomain.yaml +27 -0
- secator/configs/scans/url.yaml +19 -0
- secator/configs/workflows/__init__.py +0 -0
- secator/configs/workflows/cidr_recon.yaml +48 -0
- secator/configs/workflows/code_scan.yaml +29 -0
- secator/configs/workflows/domain_recon.yaml +46 -0
- secator/configs/workflows/host_recon.yaml +95 -0
- secator/configs/workflows/subdomain_recon.yaml +120 -0
- secator/configs/workflows/url_bypass.yaml +15 -0
- secator/configs/workflows/url_crawl.yaml +98 -0
- secator/configs/workflows/url_dirsearch.yaml +62 -0
- secator/configs/workflows/url_fuzz.yaml +68 -0
- secator/configs/workflows/url_params_fuzz.yaml +66 -0
- secator/configs/workflows/url_secrets_hunt.yaml +23 -0
- secator/configs/workflows/url_vuln.yaml +91 -0
- secator/configs/workflows/user_hunt.yaml +29 -0
- secator/configs/workflows/wordpress.yaml +38 -0
- secator/cve.py +718 -0
- secator/decorators.py +7 -0
- secator/definitions.py +168 -0
- secator/exporters/__init__.py +14 -0
- secator/exporters/_base.py +3 -0
- secator/exporters/console.py +10 -0
- secator/exporters/csv.py +37 -0
- secator/exporters/gdrive.py +123 -0
- secator/exporters/json.py +16 -0
- secator/exporters/table.py +36 -0
- secator/exporters/txt.py +28 -0
- secator/hooks/__init__.py +0 -0
- secator/hooks/gcs.py +80 -0
- secator/hooks/mongodb.py +281 -0
- secator/installer.py +694 -0
- secator/loader.py +128 -0
- secator/output_types/__init__.py +49 -0
- secator/output_types/_base.py +108 -0
- secator/output_types/certificate.py +78 -0
- secator/output_types/domain.py +50 -0
- secator/output_types/error.py +42 -0
- secator/output_types/exploit.py +58 -0
- secator/output_types/info.py +24 -0
- secator/output_types/ip.py +47 -0
- secator/output_types/port.py +55 -0
- secator/output_types/progress.py +36 -0
- secator/output_types/record.py +36 -0
- secator/output_types/stat.py +41 -0
- secator/output_types/state.py +29 -0
- secator/output_types/subdomain.py +45 -0
- secator/output_types/tag.py +69 -0
- secator/output_types/target.py +38 -0
- secator/output_types/url.py +112 -0
- secator/output_types/user_account.py +41 -0
- secator/output_types/vulnerability.py +101 -0
- secator/output_types/warning.py +30 -0
- secator/report.py +140 -0
- secator/rich.py +130 -0
- secator/runners/__init__.py +14 -0
- secator/runners/_base.py +1240 -0
- secator/runners/_helpers.py +218 -0
- secator/runners/celery.py +18 -0
- secator/runners/command.py +1178 -0
- secator/runners/python.py +126 -0
- secator/runners/scan.py +87 -0
- secator/runners/task.py +81 -0
- secator/runners/workflow.py +168 -0
- secator/scans/__init__.py +29 -0
- secator/serializers/__init__.py +8 -0
- secator/serializers/dataclass.py +39 -0
- secator/serializers/json.py +45 -0
- secator/serializers/regex.py +25 -0
- secator/tasks/__init__.py +8 -0
- secator/tasks/_categories.py +487 -0
- secator/tasks/arjun.py +113 -0
- secator/tasks/arp.py +53 -0
- secator/tasks/arpscan.py +70 -0
- secator/tasks/bbot.py +372 -0
- secator/tasks/bup.py +118 -0
- secator/tasks/cariddi.py +193 -0
- secator/tasks/dalfox.py +87 -0
- secator/tasks/dirsearch.py +84 -0
- secator/tasks/dnsx.py +186 -0
- secator/tasks/feroxbuster.py +93 -0
- secator/tasks/ffuf.py +135 -0
- secator/tasks/fping.py +85 -0
- secator/tasks/gau.py +102 -0
- secator/tasks/getasn.py +60 -0
- secator/tasks/gf.py +36 -0
- secator/tasks/gitleaks.py +96 -0
- secator/tasks/gospider.py +84 -0
- secator/tasks/grype.py +109 -0
- secator/tasks/h8mail.py +75 -0
- secator/tasks/httpx.py +167 -0
- secator/tasks/jswhois.py +36 -0
- secator/tasks/katana.py +203 -0
- secator/tasks/maigret.py +87 -0
- secator/tasks/mapcidr.py +42 -0
- secator/tasks/msfconsole.py +179 -0
- secator/tasks/naabu.py +85 -0
- secator/tasks/nmap.py +487 -0
- secator/tasks/nuclei.py +151 -0
- secator/tasks/search_vulns.py +225 -0
- secator/tasks/searchsploit.py +109 -0
- secator/tasks/sshaudit.py +299 -0
- secator/tasks/subfinder.py +48 -0
- secator/tasks/testssl.py +283 -0
- secator/tasks/trivy.py +130 -0
- secator/tasks/trufflehog.py +240 -0
- secator/tasks/urlfinder.py +100 -0
- secator/tasks/wafw00f.py +106 -0
- secator/tasks/whois.py +34 -0
- secator/tasks/wpprobe.py +116 -0
- secator/tasks/wpscan.py +202 -0
- secator/tasks/x8.py +94 -0
- secator/tasks/xurlfind3r.py +83 -0
- secator/template.py +294 -0
- secator/thread.py +24 -0
- secator/tree.py +196 -0
- secator/utils.py +922 -0
- secator/utils_test.py +297 -0
- secator/workflows/__init__.py +29 -0
- secator-0.22.0.dist-info/METADATA +447 -0
- secator-0.22.0.dist-info/RECORD +150 -0
- secator-0.22.0.dist-info/WHEEL +4 -0
- secator-0.22.0.dist-info/entry_points.txt +2 -0
- 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,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
|
|
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
|