A bash script that discovers, resolves, and analyzes subdomains of a target domain. It performs subdomain enumeration from Certificate Transparency logs, DNS resolution, HTTP probing, and generates a comprehensive CSV report.
The tool performs a complete subdomain analysis in four steps:
- Discovery: Fetches subdomains from crt.sh Certificate Transparency logs
- DNS Resolution: Resolves A, AAAA, and CNAME records for all discovered subdomains
- HTTP Probing: Probes HTTP/HTTPS endpoints to gather status codes, redirects, page titles, and technology stack
- Reporting: Generates a CSV report with all findings, including live subdomains, dead domains, and those that resolve but have no HTTP service
# macOS
brew install jq
brew install projectdiscovery/tap/dnsx
brew install projectdiscovery/tap/httpx
# Linux
sudo apt-get install jq # or: sudo yum install jq
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest./analyse_subdomains.sh <domain>Example:
./analyse_subdomains.sh epidemicsound.comThe script creates a timestamped directory (e.g., analysis-20251126-1437/) containing:
report.csv- Main analysis report (see format below)subdomains.txt- List of all discovered subdomainsdns.json- DNS resolution resultshttp.json- HTTP probe resultsresolved.txt- Subdomain-to-IP mapping
The CSV report includes all discovered subdomains with the following columns:
| Column | Description |
|---|---|
subdomain |
Subdomain name |
ip |
Resolved IP address (IPv4/IPv6) or "-" |
cname |
CNAME record or "-" |
status |
HTTP status code or "-" |
redirect |
Redirect location or "-" |
title |
Page title or "-" |
tech |
Detected technologies (semicolon-separated) or "-" |
The report includes:
- Live subdomains with full HTTP data
- Resolved subdomains that have DNS but no HTTP service
- Dead subdomains that don't resolve to any IP