Subdomain Takeover occurs when a subdomain points to a third-party service that has been removed or unclaimed. Attackers can register the service and serve malicious content on the victim's subdomain, potentially stealing cookies, conducting phishing, or bypassing security controls.
Organizations often create DNS records pointing subdomains to cloud services (S3, Heroku, GitHub Pages, Azure). When the service is deleted but the DNS record remains, attackers can claim the same service endpoint and control the subdomain.
# DNS record exists
blog.company.com CNAME company-blog.herokuapp.com
# But Heroku app was deleted
# Attacker creates new Heroku app: company-blog.herokuapp.com
# Now controls blog.company.com!
# AWS S3
NoSuchBucket: The specified bucket does not exist
# Heroku
No such app
# GitHub Pages
There isn't a GitHub Pages site here
# Azure
NXDOMAIN or "App not found"
# Shopify
Sorry, this shop is currently unavailable
# Check for dangling CNAME
dig subdomain.target.com CNAME
# Enumerate subdomains
subfinder -d target.com
amass enum -d target.com
# Check for takeover fingerprints
nuclei -t takeovers -u subdomain.target.com
subjack -w subdomains.txt -t 100 -timeout 30