SubzyX is a production-oriented Go CLI for identifying subdomain takeover risks by chaining:
- Subdomain enumeration (via
subfinderbinary) - DNS resolution (
A,AAAA,CNAMEviamiekg/dns) - Dangling CNAME candidate selection
- Fingerprint-driven service matching
- HTTP probing with retries (
retryablehttp) - Confirmed vs potential verdicting
- Concurrent worker pool scanning (
--threads) - Fingerprint database loaded from
fingerprints.json - Wildcard DNS detection and false-positive reduction
- Rate limiting (
--rate-limit) to reduce bans - Timeout control (
--timeout) - Colored output and JSON mode
- Silent mode and verbose logging
- File output (
-o) - Basic unit tests for detection logic
- Go 1.21+
subfinderinstalled and available inPATH
Install subfinder quickly:
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latestsubzyx/
├── main.go
├── cmd/
│ └── root.go
├── internal/
│ ├── enum/
│ ├── resolver/
│ ├── scanner/
│ ├── fingerprints/
│ ├── output/
│ └── utils/
├── go.mod
└── fingerprints.json
go mod init subzyx
go mod tidy
go build -o subzyxIf go.mod already exists (as in this repository), run:
go mod tidy
go build -o subzyx./subzyx -d example.com
./subzyx -d example.com -t 100 -o results.txt
./subzyx -d example.com --json -o results.json-d, --domaintarget domain (required)-t, --threadsconcurrent workers (default50)-o, --outputoutput file path--timeoutHTTP timeout seconds (default10)--silentprint only findings--jsonoutput structured JSON--verboseverbose logs--rate-limitHTTP request rate per second (default20)--fingerprintspath to fingerprints file (defaultfingerprints.json)
[CONFIRMED] app-old.example.com -> AWS S3 (CNAME and HTTP fingerprint matched)
[POTENTIAL] dev.example.com -> Heroku (CNAME matched known takeover-prone service)
[SAFE] www.example.com -> Unknown (No takeover indicators)
Summary: total=120 confirmed=1 potential=4 safe=115 wildcard_dns=false
- Confirmed: CNAME service match + HTTP fingerprint match
- Potential: partial match (CNAME only, body only, or dangling DNS without definitive signature)
- Safe: no takeover indicators
- This tool assists security testing and triage; always manually validate before reporting critical findings.
- Fingerprints can be extended by editing
fingerprints.json.