DNS¶
Her makinada nameserver, dhcp veya elle atatanmış olduğu için oradaki domain sunucularına sorar (Recursive). TLD(TopLevelDomain)'e sorar o sunucuda .com
kaydı tutan sunuculara sordurur burdan com.tr
domainlerini tutan sunucuya yönlendirir burdan da mertcangokgoz.com.tr
sunucusunun ip adresini cachler ve bundan sonraki isteklerde bu yapılan işlem tekrardan gerçekleşmez.
DNS(Domain Name System) website adreslerini ip adreslerine çevirmek için kurulmuştur. 2003 yıllından sonra websitelerinin sayısı ip adreslerini geçmeye başlayacağı için tek bir makinada birden fazla site bulunmaya başlamıştır.
İşletim sistemi ilk olarak gelen DNS kaydını /etc/hosts
veya /system32/drivers/etc/hosts
dosyasına bakar varsa zaten direk ip adresini kullanır. Eğer herhangi bir kayıt yoksa, DHCP serverin bize atadığı nameserver olan 1.1.1.1 olan sunucuya dns protokolü üzerinden "mertcangokgoz.com.tr" domaninini sorar eğer onun üzerinde de bu kayıt yoksa. 1.1.1.1'de ki sunucu kaydı bilmese de *.tr
kayıtlarını tutan nic.tr
sunucusuna "mertcangokgoz.com.tr" sorar. En son mertcangokgoz.com.tr'nin geriye doğru sunuculara ip adresi eklenir ve 1.1.1.1 bize istediğimiz domainin ip adresini döndürür ve bizden biraz sonra 1.1.1.1'e biri mertcangokgoz.com.tr'yi sorarsa bu işlemler tekrardan yaşanmaz. Artık 1.1.1.1'in kendi içinde "mertcangokgoz.com.tr" kaydı olduğu için daha sonraki dns isteklerine cevap verebilir hale gelmiştir. Yapılan son aşamadaki işlem DNS isteklerini hızlandırır.
Hostname: Makinaya verilen kimlik bilgisi.
Domain: Bir grup bilgisayarın oluşturduğu ağa verilen kimlik bilgisi.
mertcangokgoz.com.tr içinde mail ve web siteleri olabileceği için DNS kayıt tipleri vardır:
- A: Website kayıtları için.
- MX: Mail atmak istenildiğinde sorulan DNS kaydıdır.
- TXT: Text, validation için kullanılabilir.
- CNAME: Yönlendirme yapmak istenildiği zaman kullanılır mesela
wiki.mertcangokgoz.com.tr
domaininidata.mertcangokgoz.com.tr
'ye linkleyebiliriz. - AAAA: IPv6 kayıtları için.
$ nslookup
> server
Default server: X.X.X.X
Address: X.X.X.X#53
$ dig mertcangokgoz.com.tr
...
mertcangokgoz.com.tr. 2846 IN A 139.179.179.3
...
$ dig MX mertcangokgoz.com.tr # MAIL Server
mertcangokgoz.com.tr. 7200 IN MX 10 mail.mertcangokgoz.com.tr.
$ nslookup postaci.mertcangokgoz.com.tr
...
Server: 192.168.42.129
Address: 192.168.42.129#53
...
$ dig NS mertcangokgoz.com.tr # DNS Serverleri
...
mertcangokgoz.com.tr. 7199 IN NS venus.mertcangokgoz.com.tr.
mertcangokgoz.com.tr. 7199 IN NS tor.mertcangokgoz.com.tr.
...
$ dig . ns # TopLevelDomain listesi
...
. 94359 IN NS c.root-servers.net.
. 94359 IN NS f.root-servers.net.
. 94359 IN NS j.root-servers.net.
. 94359 IN NS d.root-servers.net.
. 94359 IN NS e.root-servers.net.
. 94359 IN NS a.root-servers.net.
. 94359 IN NS l.root-servers.net.
. 94359 IN NS h.root-servers.net.
. 94359 IN NS k.root-servers.net.
. 94359 IN NS m.root-servers.net.
. 94359 IN NS g.root-servers.net.
. 94359 IN NS i.root-servers.net.
. 94359 IN NS b.root-servers.net.
...
$ dig mertcangokgoz.com.tr a @a.root-servers.net
...
;; AUTHORITY SECTION:
tr. 172800 IN NS ns21.nic.tr.
tr. 172800 IN NS ns22.nic.tr.
tr. 172800 IN NS ns31.nic.tr.
tr. 172800 IN NS ns41.nic.tr.
tr. 172800 IN NS ns42.nic.tr.
tr. 172800 IN NS ns91.nic.tr.
tr. 172800 IN NS ns92.nic.tr.
...
$ dig mertcangokgoz.com.tr a @ns21.nic.tr.
; <<>> DiG 9.10.3-P4-Debian <<>> mertcangokgoz.com.tr a @ns21.nic.tr.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32917
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mertcangokgoz.com.tr. IN A
;; AUTHORITY SECTION:
mertcangokgoz.com.tr. 43200 IN NS venus.mertcangokgoz.com.tr.
mertcangokgoz.com.tr. 43200 IN NS tor.mertcangokgoz.com.tr.
$ dig mertcangokgoz.com.tr a @mail.mertcangokgoz.com.tr
Bu sunucular recursive olmayan isteklere yanıt vermez.
$ dig mertcangokgoz.com.tr @
; <<>> DiG 9.10.3-P4-Debian <<>> mertcangokgoz.com.tr @
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14270
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mertcangokgoz.com.tr. IN A
;; ANSWER SECTION:
mertcangokgoz.com.tr. 86400 IN CNAME mertcangokgoz.com.tr.
mertcangokgoz.com.tr. 86400 IN A
;; AUTHORITY SECTION:
mertcangokgoz.com.tr. 86400 IN NS venus.mertcangokgoz.com.tr.
mertcangokgoz.com.tr. 86400 IN NS tor.mertcangokgoz.com.tr.
;; ADDITIONAL SECTION:
ns1.mertcangokgoz.com.tr. 86400 IN A
ns2.mertcangokgoz.com.tr. 86400 IN A
;; Query time: 8 msec
;; SERVER: #53()
;; WHEN: Mon Jul 23 11:22:12 +03 2018
;; MSG SIZE rcvd: 145
$ dig mertcangokgoz.com.tr @8.8.8.8
; <<>> DiG 9.10.3-P4-Debian <<>> mertcangokgoz.com.tr @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15285
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mertcangokgoz.com.tr. IN A
;; ANSWER SECTION:
mertcangokgoz.com.tr. 21599 IN CNAME mertcangokgoz.com.tr.
mertcangokgoz.com.tr. 21599 IN A 188.166.45.9
Warning
İlk sorguda 86400 iken google sunucusunda 21599 olmasının nedeni google'ın dns sunucusunun önbelleğinde bu domainin kaydının olmasıdır.
Scapy¶
$ scapy
>>> ip = IP(dst="192.168.42.129",version=4)
>>> ud = UDP(sport=61,dport=53)
>>> dn = DNS(rd=1,qd=DNSQR(qname="linux.org.tr"))
>>> send(ip/ud/dn)
Warning
Wireshark üzerinden dönen dns sorgusu incelenebilir.
$ hping3 # Paket üretmek için kullanılabilir
$ hping3 --udp --destport 53 --rand-source <NSServer> --flood