top of page

DNS (Domain Name System)

Yazarın fotoğrafı: Songül ÖZÜGÜRLER
Songül ÖZÜGÜRLER
28 Nis
8 dakikada okunur

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

- mail

- 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

 
 
bottom of page