Subdomain Takeover
OWASP A05 difficulty: kolay-orta
Subdomain Takeover, bir alt alan adının DNS kaydının (genelde CNAME) artık yok olmuş/terk edilmiş bir üçüncü taraf servise işaret etmesiyle oluşur. Saldırgan o servisteki kaynağı kendi hesabında oluşturursa, alt alan adını ele geçirir — kimlik avı, çerez çalma (parent domain scope dikkat), OAuth redirect ve marka istismarı için güçlü bir zemin.
Nasıl oluşur
Section titled “Nasıl oluşur”1) blog.hedef.com CNAME hedef.github.io2) GitHub Pages repo silinir / yeniden adlandırılır3) DNS kaydı kalır → "dangling CNAME"4) Saldırgan aynı GitHub Pages adını claim eder5) blog.hedef.com artık saldırgan içeriğini sunarSık provider’lar: AWS S3, CloudFront, ELB, Heroku, Azure App/Traffic Manager, Shopify, Fastly, Pantheon, Tumblr, WordPress.com, Surge, Netlify, Fly.io…
Tespit
Section titled “Tespit”-
Alt alan adlarını topla :
Terminal window subfinder -d hedef.com -all | tee subs.txtTerminal window amass enum -passive -d hedef.comTerminal window assetfinder --subs-only hedef.com -
CNAME / NXDOMAIN çözümle :
Terminal window dnsx -l subs.txt -cname -resp -o cnames.txtTerminal window dnsx -l subs.txt -a -resp -o alive.txtTerminal window dig CNAME blog.hedef.com +shortTerminal window dig NS staging.hedef.com +short -
Fingerprint / claim edilebilir hata ara :
Terminal window subzy run --targets subs.txtTerminal window nuclei -l subs.txt -t http/takeovers/Terminal window httpx -l subs.txt -title -tech-detect -status-code -
Manuel fingerprint örnekleri — HTTP gövde / başlık:
NoSuchBucket / The specified bucket does not existThere isn't a GitHub Pages site hereHeroku | No such appFastly error: unknown domainNoSuchDistribution / ERROR: The request could not be satisfiedAzure: 404 Web Site not foundShopify: Sorry, this shop is currently unavailable -
can-i-take-over-xyz — servisin hâlâ claim edilebilir olup olmadığını doğrula (birçok sağlayıcı engelledi; liste güncel tut).
-
Claim + PoC — ilgili bulut/SaaS’ta kaynağı oluştur; DNS’in sana çözüldüğünü kanıtla. Yetkili testte zararlı içerik koyma; beacon/PoC HTML yeter.
Provider’a göre claim ipuçları
Section titled “Provider’a göre claim ipuçları”echo blog.hedef.com > CNAMEaws s3 mb s3://blog.hedef.comheroku create dangling-nameClaim sonrası:
dig +short blog.hedef.comcurl -sI https://blog.hedef.com | headEtki senaryoları
Section titled “Etki senaryoları”□ Phishing — gerçek subdomain, geçerli TLS (Let's Encrypt / provider cert)□ Cookie theft — Domain=.hedef.com çerezleri (Secure/HttpOnly/path'e bağlı)□ CORS / CSP trusted subdomain ise XSS veya API okuma zinciri□ OAuth redirect_uri allow-list'te subdomain → token çalma□ Service Worker / PWA scope kötüye kullanımı□ E-posta — sarkan MX/TXT nadiren; SPF/DKIM spoof yüzeyiEdge / NS takeover
Section titled “Edge / NS takeover”NS kaydı saldırgan nameserver'ına gidiyorsa → tüm zone kontrolü (kritik)Elastic Beanstalk / Azure TM CNAME'leri sık dangling adayUnregistered delegated NS (expired registrar) → domain hijack varyantıdig NS orphan.hedef.com +shortwhois $(dig NS orphan.hedef.com +short | head -1)False positive’ler
Section titled “False positive’ler”□ Generic 404 ama bucket/app başkasına ait (claim reddedilir)□ Provider "domain already claimed" / verification zorunlu□ Cloudflare proxy (turuncu bulut) — origin dangling ama edge hâlâ cevap□ Internal-only CNAME (çözülmez / NXDOMAIN farklı sebep)Komut üreteci
Section titled “Komut üreteci”subfinder + httpx
embedded toolsubfinder -d hedef.com -all -silent | httpx -silent -title -tech-detectsubfinder + httpx
Section titled “subfinder + httpx”Saldırı zinciri
Section titled “Saldırı zinciri”subfinder → dnsx -cname → nuclei takeovers → can-i-take-over-xyz doğrula → claim → PoC sayfa → OAuth redirect / cookie impact not et