SubMap is an advanced subdomain enumeration and asset discovery tool designed for security professionals and penetration testers. It combines passive and active reconnaissance techniques to discover subdomains, probe services, detect vulnerabilities, and generate comprehensive reports.
- Multiple Data Sources: Integrates with crt.sh, HackerTarget, and VirusTotal
- Certificate Transparency: Discovers subdomains from SSL/TLS certificates
- DNS Record Analysis: Comprehensive DNS resolution (A, AAAA, CNAME, MX, NS, TXT records)
- Wildcard Detection: Identifies domains with wildcard DNS configurations
- Subdomain Bruteforce: Efficient wordlist-based discovery with custom wordlist support
- Recursive Discovery: Attempts to find additional levels of subdomains
- Port Scanning: Identifies open ports and running services
- Banner Grabbing: Extracts service version information
- HTTP Probing: Tests HTTP/HTTPS connectivity with redirects
- Status Code Detection: Identifies working web services
- Technology Detection: Identifies web technologies and frameworks
- Subdomain Takeover Detection: Checks for vulnerable configurations
- SQLite Database: Persistent storage of all scan data
- Multiple Export Formats: JSON (detailed), CSV (spreadsheet), HTML (dashboard)
- Organized Output: Domain-specific report directories with timestamps
- Python 3.7+
- Internet connection (for passive enumeration)
- Authorization for the target domain (REQUIRED)
customtkinter
Pillow
aiohttp
aiohttp-retry
dnspython
tqdm
- Clone the repository:
git clone https://github.com/umyo-ukz/SubMap.git
cd SubMap- Install dependencies:
pip install -r requirements.txt- Verify installation:
python -m submap.cli --helppython -m submap.cli --domain example.com --authorizedThis performs a safe, passive-only scan using public data sources.
python -m submap.cli --domain example.com --authorized --active --modules bruteforcepython -m submap.cli --domain example.com --authorized --active --modules bruteforce,portscan,recursive --tech-detectpython -m submap.cli --domain example.com --authorized --active --modules bruteforce --wordlist /path/to/wordlist.txtpython -m submap.cli --domain example.com --authorized --vt-api-key YOUR_VT_API_KEY--domain: Target domain (e.g., example.com)--authorized: Confirmation that you have authorization (REQUIRED)
--db: SQLite database path (default:submap_pro.db)
--concurrency: Number of concurrent tasks (default: 20)--verbose, -v: Enable verbose logging
--active: Enable active scanning (requires additional confirmation)--modules: Comma-separated list of active modulesbruteforce: Wordlist-based subdomain discoveryportscan: Port scanning on discovered hostsrecursive: Recursive subdomain enumeration
--wordlist: Path to custom subdomain wordlist file
--vt-api-key: VirusTotal API key for additional data
--tech-detect: Enable web technology detection
-
Authorization Required: You MUST have explicit authorization to scan the target domain. Unauthorized scanning may be illegal.
-
Active Mode Confirmation: When using
--activemode, you will be prompted to typeYES I AM AUTHORIZEDbefore the scan begins. -
Ethical Use: This tool is designed for:
- Security professionals conducting authorized assessments
- Bug bounty hunters within program scope
- System administrators testing their own infrastructure
All reports are saved in the reports/ directory, organized by domain and timestamp:
reports/
βββ example.com/
βββ scan_20250107_170000/
βββ report.json # Detailed scan data
βββ subdomains.csv # Spreadsheet format
βββ dashboard.html # Visual dashboard
JSON Report: Complete scan data including:
- Subdomain list with DNS records
- HTTP probe results
- Port scan results (if enabled)
- Takeover vulnerabilities
- Technology fingerprints
CSV Report: Simplified tabular format for:
- Subdomain enumeration lists
- Quick analysis in Excel/Google Sheets
HTML Dashboard: Interactive web interface showing:
- Summary statistics
- Subdomain overview
- Service distribution
- Vulnerability highlights
SubMap executes scans in organized phases:
-
Phase 1: Passive Enumeration
- Queries public data sources
- No direct contact with target
-
Phase 2: Active Enumeration (if enabled)
- Wordlist bruteforcing
- Recursive discovery
-
Phase 3: DNS Resolution & HTTP Probing
- Resolves all discovered subdomains
- Tests HTTP/HTTPS connectivity
- Checks for takeover vulnerabilities
-
Phase 4: Report Generation
- Exports data in multiple formats
- Creates organized report directories
python -m submap.cli --domain target.com --authorizedpython -m submap.cli \
--domain target.com \
--authorized \
--active \
--modules bruteforce,portscan,recursive \
--wordlist wordlists/subdomains-10000.txt \
--vt-api-key YOUR_API_KEY \
--tech-detect \
--concurrency 30 \
--verbosepython -m submap.cli \
--domain target.com \
--authorized \
--active \
--modules bruteforce \
--wordlist custom-wordlist.txtSubMap uses SQLite to store all scan data persistently. The database includes tables for:
- Subdomains and their metadata
- DNS resolution records
- HTTP probe results
- Port scan findings
- Takeover vulnerability checks
"You must pass --authorized to proceed"
- Solution: Add the
--authorizedflag to confirm authorization
Rate limiting or timeouts
- Solution: Reduce
--concurrencyvalue (try 10-15) - Solution: Some passive sources may have rate limits
Port scanning hangs
- Solution: Press CTRL+C to skip to next phase
- Solution: Reduce the number of ports or timeout values
No results from passive sources
- Solution: Check internet connection
- Solution: Some domains may have limited public exposure
This tool is provided for educational and authorized security testing purposes only. Users are solely responsible for ensuring they have proper authorization before scanning any target. Unauthorized access to computer systems is illegal under various laws including the Computer Fraud and Abuse Act (CFAA) in the United States and similar laws in other jurisdictions.
The authors and contributors of SubMap:
- Do NOT endorse illegal activities
- Are NOT responsible for misuse of this tool
- Assume NO liability for damages resulting from use
USE AT YOUR OWN RISK AND ONLY WITH PROPER AUTHORIZATION
Developed by umyo-ukz
Version: 3.0
Last Updated: November 2025