An all-in-one scanning tool for bug bounty hunters.
-
Subdomain Discovery
- crt.sh scanning
- Subfinder integration
- Common name variations
- DNS resolution
-
URL Discovery & Processing
- Waybackurls / GAU integration
- URL optimization with uro
- Live URL checking with httpx
- Parameter discovery with arjun
-
Content Discovery
- Directory bruteforcing (ffuf)
- Sensitive file checking
- Multiple wordlist support
- Custom patterns
-
Information Gathering
- GitHub dorking
- Google dork generation
- Parameter discovery
- Sensitive file detection
- Clone the repository
git clone https://github.com/mirzaaghazadeh/surface-scanner
cd surface-scanner- Run installation script
chmod +x install.sh
./install.sh- Authenticate with GitHub
gh auth login- Create domain list
echo "example.com" > main-domains.txt- Run scan
python3 surface_scanner.py -d main-domains.txtpython3 surface_scanner.py -d main-domains.txt# Only GitHub dorking
python3 surface_scanner.py -d main-domains.txt --github-dork
# Only subdomain discovery
python3 surface_scanner.py -d main-domains.txt --subdomain
# Only URL discovery
python3 surface_scanner.py -d main-domains.txt --urls
# Only parameter discovery
python3 surface_scanner.py -d main-domains.txt --params
# Only directory bruteforcing
python3 surface_scanner.py -d main-domains.txt --dirs# Continue from specific step
python3 surface_scanner.py -d main-domains.txt --from-step 3
# Custom output directory
python3 surface_scanner.py -d main-domains.txt --output-dir my_resultsscan_results_[timestamp]/
├── subdomains/ # Subdomain enumeration results
│ ├── crtsh_subdomains.txt
│ ├── subfinder_results.txt
│ ├── name_variations.txt
│ └── resolved_domains.txt
├── urls/ # URL discovery results
│ ├── waybackurls.txt
│ ├── gau_urls.txt
│ ├── all_urls.txt
│ └── live_urls.txt
├── dorks/ # GitHub and Google dorks
│ ├── github_dorks.txt
│ └── google_dorks.txt
├── parameters/ # Parameter discovery
│ └── discovered_params.txt
├── directories/ # Directory bruteforce results
│ └── [domain]/
│ ├── ffuf_common.txt
│ ├── ffuf_big.txt
│ └── ffuf_api.txt
└── sensitive_files/ # Sensitive file check results
└── sensitive_files.txt
- Python 3.7+
- Go 1.16+
- Git
- GitHub CLI (gh)
Required tools (auto-installed):
- subfinder
- waybackurls
- gau
- httpx
- ffuf
- dnsx
- arjun
- uro
The tool uses various configuration files and wordlists:
- SecLists for directory bruteforcing
- Custom patterns for sensitive files
- Pre-configured dorks for GitHub scanning
- Parameter wordlists for discovery
- Always ensure you have proper authorization before scanning
- Respect rate limits and robots.txt
- Be mindful of aggressive scanning patterns
- Handle sensitive information appropriately
- Follow responsible disclosure practices
The tool implements rate limiting for:
- GitHub API requests
- DNS queries
- HTTP requests
- Directory bruteforcing
Common issues and solutions:
- GitHub Authentication
gh auth login
# Follow the prompts- Tool Installation Issues
# Reinstall tools
./install.sh --force- Permission Issues
chmod +x install.sh
sudo ./install.sh # If needed- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a pull request
git pull origin main
./install.sh --updateThis tool is for security research purposes only. Always ensure you have proper authorization before scanning any systems or networks.