Kenapa Subdomain Enumeration?
Subdomain yang terlupakan adalah salah satu tempat paling subur untuk menemukan bug. Dev server, staging, panel admin lama, dan microservice yang tidak ter-maintain sering mengandung celah serius.
Tools Utama
1. Subfinder
# Install
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
# Basic usage
subfinder -d target.com -o subdomains.txt
# Dengan semua sources
subfinder -d target.com -all -o subdomains.txt
2. Amass
# Passive (tidak menyentuh target)
amass enum -passive -d target.com
# Active (DNS brute force)
amass enum -active -d target.com -brute
3. crt.sh — Certificate Transparency
Semua SSL certificate yang pernah diterbitkan tersimpan di log publik. crt.sh memudahkan pencarian.
# Di browser
https://crt.sh/?q=%.target.com
# Via curl + jq
curl -s "https://crt.sh/?q=%.target.com&output=json" \
| jq -r '.[].name_value' \
| sort -u
4. dnsx — Validasi Subdomain Aktif
# Cek subdomain mana yang resolve
cat subdomains.txt | dnsx -silent -o live_subs.txt
# Cek status HTTP
cat live_subs.txt | httpx -status-code -title -o alive.txt
Workflow Lengkap
#!/bin/bash
TARGET="target.com"
# 1. Kumpulkan subdomain dari berbagai sumber
subfinder -d $TARGET -silent >> all_subs.txt
amass enum -passive -d $TARGET -silent >> all_subs.txt
curl -s "https://crt.sh/?q=%.$TARGET&output=json" | jq -r '.[].name_value' >> all_subs.txt
# 2. Deduplikasi
sort -u all_subs.txt -o all_subs.txt
# 3. Validasi yang aktif
cat all_subs.txt | dnsx -silent | httpx -status-code -title -o alive.txt
echo "Done! Check alive.txt"
Subdomain Takeover — Jackpot Recon
Terjadi ketika subdomain mengarah ke layanan eksternal yang sudah dihapus. Gunakan nuclei untuk deteksi otomatis:
nuclei -l subdomains.txt -t takeovers/ -o takeover_results.txt
Target prioritas: Cari subdomain seperti dev., staging., test., admin., beta., internal. — ini sering punya proteksi lebih lemah dari production.
// CEK PEMAHAMAN
Apa yang dimaksud dengan "passive" subdomain enumeration?
AMencari subdomain dengan kecepatan lambat
BMenggunakan sumber publik tanpa menyentuh server target langsung
CBrute force semua kemungkinan nama subdomain
DMencari subdomain tanpa menggunakan tools