DNS (Domain Name System)
DNS (Domain Name System)

Domain Name System (DNS), internetin GPS’i gibi çalışır. İnsanların okuyabildiği alan adlarını (örneğin www.example.com ) bilgisayarların iletişim kurabilmesi için gerekli olan IP adreslerine (örneğin 192.0.2.1) çevirir.
DNS olmasaydı her siteye IP adresi yazarak erişmemiz gerekirdi. Bu da hem zor hem de verimsiz olurdu.
DNS Nasıl Çalışır
Bir kullanıcı tarayıcıya www.example.com yazdığında süreç şu şekilde ilerler:
- DNS Sorgusu (DNS Query) Bilgisayar önce kendi önbelleğini (cache) kontrol eder. Eğer IP daha önce çözülmüşse buradan alır.
- DNS Resolver Eğer cache’de yoksa, genellikle internet servis sağlayıcısının (ISP) DNS çözümleyicisine istek gönderilir.
- Root Name Server Resolver kök ad sunucusuna sorar. Root sunucu ilgili üst düzey alan adı (TLD) sunucusunu gösterir (.com, .org gibi).
- TLD Name Server TLD sunucusu, ilgili domain için yetkili (authoritative) ad sunucusunu gösterir.
- Yetkili Ad Sunucusu Gerçek IP adresini döner.
- Resolver Caching Resolver IP’yi cache’ler ve istemciye iletir.
- Bağlantı Bilgisayar IP adresini kullanarak web sunucuya bağlanır.
Bu süreç bayrak yarışı gibi çalışır. İstek zincir halinde ilerler ve IP adresi bulunduğunda geriye iletilir.
Hosts Dosyası
Tanım
Hosts dosyası, ana bilgisayar adlarını IP adresleriyle eşlemek için kullanılan basit bir metin dosyasıdır ve DNS sürecini atlayarak manuel çözümleme yapılmasını sağlar.
DNS otomatik çözümleme yaparken, hosts dosyası yerel olarak bu çözümlemeyi override edebilir.
Konumu
Windows: C:\Windows\System32\drivers\etc\hosts
Linux / MacOS: /etc/hosts
Format
<IP Adresi> <Ana Bilgisayar Adı> [Takma Ad]
Örnek:
127.0.0.1 localhost 192.168.1.10 devserver.local
Kullanım Alanları
- Geliştirme ortamında domain’i lokal sunucuya yönlendirme 127.0.0.1 myapp.local
- Belirli IP’ye bağlantı testi 192.168.1.20 testserver.local
- Web sitesi engelleme 0.0.0.0 unwanted-site.com
Değişiklikler sistemi yeniden başlatmadan aktif olur.
DNS Temel Kavramlar
Zone (Bölge)
DNS’te zone, bir yönetici veya kurum tarafından kontrol edilen alan adı uzayının belirli bir bölümüdür.
Örneğin example.com ve tüm alt alan adları (mail.example.com, blog.example.com) genellikle aynı DNS zone’a aittir.
Zone Dosyası
Zone dosyası, DNS sunucusunda bulunan ve ilgili zone içindeki kaynak kayıtlarını tanımlayan metin dosyasıdır.
Örnek:
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024060401
3600
900
604800
86400 )
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN MX 10 mail.example.com.
www IN A 192.0.2.1
mail IN A 198.51.100.1
ftp IN CNAME www.example.com.DNS Kavramları
Alan Adı Bir web sitesi veya internet kaynağı için insan tarafından okunabilir isimdir.
IP Adresi Ağa bağlı her cihaza atanan benzersiz sayısal kimliktir.
DNS Resolver Alan adlarını IP adreslerine çeviren sunucudur.
Root Name Server DNS hiyerarşisinin en üst seviyesindeki sunuculardır.
TLD Name Server Belirli üst düzey alan adlarından (.com, .org) sorumlu sunuculardır.
Yetkili Ad Sunucusu (Authoritative) Bir domain’in gerçek IP bilgisini tutan sunucudur.
DNS Kayıt Türleri
A Kaydı Bir ana bilgisayar adını IPv4 adresine eşler. www.example.com IN A 192.0.2.1
AAAA Kaydı Bir ana bilgisayar adını IPv6 adresine eşler.
CNAME Kaydı Bir alan adını başka bir alan adına yönlendiren takma ad oluşturur.
MX Kaydı Domain için e-posta trafiğini yöneten mail sunucusunu belirtir.
NS Kaydı Bir DNS zone’u yetkili ad sunucusuna devreder.
TXT Kaydı Serbest metin bilgisi tutar. Genellikle SPF, DKIM, doğrulama kayıtları için kullanılır.
SOA Kaydı Zone’un yönetim bilgilerini içerir (birincil sunucu, seri numarası, zaman aralıkları).
SRV Kaydı Belirli servisler için host ve port bilgisi tanımlar.
PTR Kaydı Ters DNS çözümlemesi için kullanılır (IP → alan adı).
“IN” Nedir?
DNS kayıtlarında görülen “IN”, Internet sınıfını ifade eder. Kayıtların internet protokol ailesine ait olduğunu gösterir. Günümüzde en yaygın kullanılan sınıftır.
Web Recon İçin DNS Neden Önemlidir
DNS sadece çözümleme mekanizması değildir. Aynı zamanda bilgi toplama sürecinde kritik rol oynar.
Varlık Keşfi Alt domainler, mail sunucuları ve name server kayıtları tespit edilebilir.
Altyapı Haritalama NS ve A kayıtları üzerinden hosting sağlayıcı, CDN, load balancer gibi yapılar anlaşılabilir.
Değişiklik İzleme Yeni subdomain’ler veya TXT kayıtları yeni servislerin devreye alındığını gösterebilir.
Digging DNS
DNS’in temel mantığını öğrendikten sonra sıra pratikte kullanmaya gelir. Bu bölümde DNS’i web reconnaissance (keşif) sürecinde nasıl kullanacağımızı ve hangi araçlarla bilgi toplayabileceğimizi inceliyoruz.
DNS Araçları
DNS reconnaissance, DNS sunucularını sorgulayarak bilgi çıkarmaya dayanır. Aşağıda en yaygın kullanılan araçlar ve kullanım amaçları yer alır.
dig
Çok yönlü DNS sorgulama aracıdır. A, MX, NS, TXT gibi birçok kayıt türünü destekler ve detaylı çıktı verir.
Kullanım alanları:
- Manuel DNS sorguları
- Zone transfer testi
- DNS sorun giderme
- Derinlemesine DNS analizi
nslookup
Daha basit bir DNS sorgulama aracıdır.
Kullanım alanları:
- Temel A, AAAA, MX sorguları
- Domain çözümleme kontrolü
host
Kısa ve sade çıktı veren DNS aracıdır.
Kullanım alanları:
- Hızlı A, AAAA, MX kontrolü
dnsenum
Otomatik DNS enumeration aracıdır.
Kullanım alanları:
- Subdomain keşfi
- Dictionary saldırıları
- Brute force
- Zone transfer denemeleri
fierce
Recursive arama ve wildcard tespiti yapabilen DNS keşif aracıdır.
Kullanım alanları:
- Subdomain tespiti
- Hedef genişletme
dnsrecon
Birden fazla DNS tekniğini birleştirir ve farklı çıktı formatlarını destekler.
Kullanım alanları:
- Kapsamlı DNS enumeration
- Subdomain keşfi
- Kayıt toplama
theHarvester
OSINT aracıdır. DNS ve diğer kaynaklardan bilgi toplar.
Kullanım alanları:
- Email adresleri
- Çalışan bilgileri
- Domain ile ilişkili açık kaynak veriler
Online DNS Lookup Servisleri
Web arayüzlü DNS sorgulama araçlarıdır.
Kullanım alanları:
- Hızlı kontrol
- Komut satırı yokken sorgulama
- Domain durumu kontrolü
dig (Domain Information Groper)
dig, DNS sorgulamak için en güçlü araçlardan biridir. Çıktısı detaylıdır ve özelleştirilebilir.
Yaygın dig Komutları
dig domain.com Varsayılan olarak A kaydı sorgular.
dig domain.com A IPv4 adresini getirir.
dig domain.com AAAA IPv6 adresini getirir.
dig domain.com MX Mail sunucularını getirir.
dig domain.com NS Yetkili ad sunucularını getirir.
dig domain.com TXT TXT kayıtlarını getirir.
dig domain.com CNAME CNAME kaydını getirir.
dig domain.com SOA SOA kaydını getirir.
dig @1.1.1.1 domain.com Belirtilen DNS sunucusuna sorgu gönderir.
dig +trace domain.com DNS çözümleme yolunu adım adım gösterir.
dig -x 192.168.1.1 Reverse lookup yapar (IP → hostname) ptr taraması yani.
dig +short domain.com Sadece kısa cevap verir.
dig +noall +answer domain.com Sadece cevap bölümünü gösterir.
dig domain.com ANY Tüm DNS kayıtlarını ister (çoğu sunucu ANY sorgularını engeller).
Önemli Uyarı
Bazı DNS sunucuları aşırı sorgu gönderimini tespit edip engelleyebilir.
Rate limitlere dikkat edilmeli ve izin alınmadan geniş kapsamlı DNS reconnaissance yapılmamalıdır.
dig Çıktı Analizi
Örnek:
dig google.com
Çıktı dört ana bölümden oluşur.
1. Header (Başlık)
opcode: QUERY Sorgu tipi.
status: NOERROR Sorgu başarılı.
id: 16449 Bu sorguya ait benzersiz kimlik.
flags:
qr → Response olduğunu belirtir rd → Recursion istendiğini gösterir ad → Veri doğrulanmış olarak işaretlenmiş
QUERY: 1 ANSWER: 1 AUTHORITY: 0 ADDITIONAL: 0
Sorgu ve cevap sayısını gösterir.
WARNING: recursion requested but not available Sunucunun recursive çözümleme desteklemediğini gösterir.
2. Question Section
google.com. IN A
Soru şudur: google.com’un IPv4 adresi nedir?
3. Answer Section
google.com. 0 IN A 142.251.47.142
Bu cevap kısmıdır.
142.251.47.142 IP adresidir.
Buradaki 0 TTL değeridir (Time To Live). TTL, kaydın ne kadar süre cache’de tutulacağını belirtir.
4. Footer
Query time Sorgunun ne kadar sürdüğü.
SERVER Cevabı veren DNS sunucusu.
WHEN Sorgu zamanı.
MSG SIZE Gelen DNS paketinin boyutu.
EDNS ve OPT Bölümü
Bazen dig çıktısında “OPT PSEUDOSECTION” bulunur.
Bu, EDNS (Extension Mechanisms for DNS) mekanizmasından kaynaklanır.
EDNS:
- Daha büyük DNS mesaj boyutları
- DNSSEC desteği gibi ek özellikler sağlar.
Sadece Cevabı Görmek
Eğer yalnızca IP’yi görmek istiyorsak:
dig +short domain.com
Bu komut gereksiz tüm detayları kaldırır ve yalnızca sonucu gösterir.
Subdomains (Alt Alan Adları)
DNS kayıtlarını incelerken genelde ana domain’e (örneğin example.com) odaklanırız. Ancak bu ana domain’in altında çok sayıda alt alan adı (subdomain) bulunabilir.
Subdomain, ana domain’in uzantısıdır ve genellikle farklı servisleri veya bölümleri ayırmak için kullanılır.
Örnekler:
- blog.example.com
- shop.example.com
- mail.example.com
Web Recon İçin Neden Önemli?
Subdomain’ler genellikle ana sitede linklenmeyen, ancak kritik bilgiler barındıran sistemlerdir.
Aşağıdaki riskleri barındırabilirler:
1. Geliştirme ve Test Ortamları
- dev.example.com
- staging.example.com
Bu ortamlar genellikle daha zayıf güvenlik ayarlarına sahiptir. Hata ayıklama modları açık olabilir. Hassas bilgiler sızabilir.
2. Gizli Giriş Panelleri
- admin.example.com
- panel.example.com
Public erişime açık olmaması gereken login sayfaları bulunabilir.
3. Eski Uygulamalar
- old.example.com
- legacy.example.com
Güncellenmemiş yazılımlar bilinen zafiyetler içerebilir.
4. Hassas Bilgi Sızıntısı
- Konfigürasyon dosyaları
- Internal dokümanlar
- Backup dosyaları
Subdomain’ler çoğu zaman ana siteye göre daha az izlenir.
Subdomain Enumeration (Alt Alan Keşfi)
Subdomain enumeration, sistematik olarak alt alan adlarını bulma sürecidir.
DNS perspektifinden bakıldığında:
- A kayıtları → IPv4 eşlemesi
- AAAA kayıtları → IPv6 eşlemesi
- CNAME kayıtları → Takma ad yönlendirmesi
Subdomain keşfi iki ana yöntemle yapılır:
1. Aktif Subdomain Enumeration
Hedefin DNS sunucularına doğrudan sorgu gönderilir.
Yöntemler
Zone Transfer Denemesi
Yanlış yapılandırılmış DNS sunucusu tüm zone’u sızdırabilir.
Örnek:
dig axfr example.com @ns1.example.com
Ancak modern sistemlerde nadiren başarılı olur.
Brute Force Enumeration
Wordlist kullanarak subdomain tahmini yapılır.
Örnek araçlar:
- dnsenum
- ffuf
- gobuster
Mantık:
dev.example.com test.example.com vpn.example.com
gibi olası isimler denenir.
2. Pasif Subdomain Enumeration
Hedef DNS sunucusuna doğrudan sorgu yapılmaz. Dış kaynaklardan bilgi toplanır.
Daha stealth bir yöntemdir.
Certificate Transparency (CT Logs)
SSL/TLS sertifikaları public olarak loglanır.
Sertifika içindeki SAN (Subject Alternative Name) alanında subdomain’ler bulunabilir.
Bu yöntem çok güçlüdür çünkü:
Birçok kurum wildcard sertifika kullanır ve tüm subdomain’ler listelenmiş olabilir.
Arama Motorları
Özel arama operatörleri kullanılır:
site:example.com
Google veya DuckDuckGo üzerinden subdomain filtrelenebilir.
Online Veri Tabanları
Bazı servisler DNS verilerini toplar ve arşivler.
Bu kaynaklar kullanılarak hedefe doğrudan sorgu atmadan subdomain listesi elde edilebilir.
Aktif vs Pasif Enumeration Karşılaştırması
Aktif Enumeration
- Daha kapsamlı olabilir
- Daha fazla kontrol sağlar
- Tespit edilme ihtimali yüksektir
Pasif Enumeration
- Daha gizlidir
- Tespit edilmesi zordur
- Tüm subdomain’leri bulamayabilir
En iyi strateji: Her iki yöntemi birlikte kullanmaktır.
Subdomain Bruteforcing
Subdomain brute-force enumeration, aktif bir alt alan keşif yöntemidir. Önceden hazırlanmış bir kelime listesi (wordlist) kullanılarak potansiyel alt alan adları sistematik şekilde test edilir.
Amaç: Geçerli (resolve olan) subdomain’leri bulmak.
Süreç Nasıl İşler?
Brute-force enumeration dört adımdan oluşur:
1. Wordlist Seçimi
İlk adım uygun bir wordlist seçmektir.
Wordlist türleri:
Genel Amaçlı (General-Purpose)
En yaygın subdomain isimlerini içerir:
- dev
- staging
- blog
- admin
- test
Hedef hakkında bilgi yoksa kullanılır.
Hedefe Özel (Targeted)
Belirli sektör, teknoloji veya isimlendirme kalıplarına odaklanır.
Daha az false positive üretir. Daha verimlidir.
Özel (Custom)
Toplanan istihbarata göre hazırlanır.
Örneğin:
- Şirket ürün isimleri
- İç sistem isimleri
- Teknoloji stack bilgileri
En etkili yöntem genelde budur.
2. Iteration (Tek Tek Deneme)
Araç wordlist içindeki her kelimeyi ana domain’e ekler:
dev.example.com test.example.com vpn.example.com
3. DNS Sorgusu
Her oluşturulan subdomain için DNS sorgusu yapılır.
Genellikle:
A kaydı (IPv4) AAAA kaydı (IPv6)
Eğer IP dönüyorsa subdomain geçerlidir.
4. Filtreleme ve Doğrulama
Resolve olan subdomain’ler listeye eklenir.
Ek doğrulama yapılabilir:
- HTTP isteği gönderme
- Web sayfası açma
- Servis analizi
Subdomain Bruteforce Araçları
dnsenum
Dictionary ve brute-force destekler. Zone transfer dener. DNS kayıtlarını listeler.
fierce
Recursive keşif yapar. Wildcard tespiti vardır.
dnsrecon
Birden fazla DNS tekniğini birleştirir. Çıktı formatı özelleştirilebilir.
amass
Aktif olarak geliştirilen güçlü bir araçtır. Birçok veri kaynağı ile entegredir.
assetfinder
Hafif ve hızlıdır. Basit subdomain keşfi için idealdir.
puredns
Yüksek performanslı brute-force aracıdır. Filtreleme yetenekleri güçlüdür.
dnsenum Detaylı İnceleme
dnsenum, Perl ile yazılmış kapsamlı bir DNS reconnaissance aracıdır.
Temel özellikleri:
DNS Record Enumeration A, AAAA, NS, MX, TXT gibi kayıtları çeker.
Zone Transfer Denemesi Yetkisiz AXFR denemesi yapar.
Subdomain Bruteforcing Wordlist ile alt alan keşfi yapar.
Google Scraping Google sonuçlarını tarayarak subdomain bulabilir.
Reverse Lookup IP → domain eşlemesi yapar.
WHOIS Lookup Domain sahiplik bilgilerini toplar.
Örnek Kullanım
dnsenum — enum inlanefreight.com -f /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt -r
Parametre açıklamaları:
— enum Varsayılan enumeration seçeneklerini aktif eder.
-f Kullanılacak wordlist dosyası.
-r Recursive brute-force. Bulunan subdomain’in altındaki subdomain’leri de dener.
Örnek Çıktı Analizi
Host’s addresses:
inlanefreight.com. IN A 134.209.24.248
Bu ana domain’in IP’sidir.
Brute forcing section:
www.inlanefreight.com IN A 134.209.24.248 support.inlanefreight.com IN A 134.209.24.248
Bu subdomain’lerin resolve olduğunu gösterir.
Yani geçerli alt alanlardır.
Pentest Perspektifi
Brute-force enumeration ile şunlar bulunabilir:
- Dev ortamları
- API endpoint’leri
- Admin panelleri
- Backup sistemleri
- VPN giriş noktaları
Gerçek dünyada en çok açık bulunan alanlar genellikle subdomain’lerdir, ana site değil.
Kritik Not
Wildcard DNS varsa (örneğin *.example.com aynı IP’ye dönüyorsa), brute-force sonuçları false positive üretebilir.
Bu yüzden:
- Wildcard tespiti yapılmalı
- HTTP response kontrol edilmeli
- Aynı IP dönen subdomain’ler analiz edilmeli







