dig

Bilgi toplama safhasında en önemli araçlardan biri olan dig ile DNS sorgulamalarını nasıl yapabileceğimizi göreceğiz.

# Tipik kullanım 

dig gokhankesici.com
; <<>> DiG 9.10.3-P4-Debian <<>> gokhankesici.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42789
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;gokhankesici.com. IN A
;; ANSWER SECTION:
gokhankesici.com. 86399 IN A 192.155.91.32
;; Query time: 115 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Dec 26 11:23:19 +03 2016
;; MSG SIZE rcvd: 61

gokhankesici.com için parametre girmeden yani dns a sorgusu yaptık. Neyi sorguladığımızı Question Section kısmında görebilirsiniz.

Answer Section kısmında gokhankesici.com için DNS A kaydımızın yani domaine karşılık ip değerimizi gördük. 86399 değeri ise DNS kaydına ait saniye cinsinden TTL değeri. Örneğin bu sorgu için tekrar tekrar gelip bize sorgulama yapmasın diye bilgisayarımızın dns cache’inde ilgili A kaydı 1 gün boyunca tutulacaktır.

DNS sunucusu olarak bilgisayarımda ön tanımlı olan 8.8.8.8 Google dns sunucusuna sordum. MSG SIZE kısmı ise dns sorgusu sonucu dönen paketin boyutudur. Bu örnek için 61 byte imiş. Sorgulamam ise 115 milisaniye sürmüş.

# Çıktı Alanlarını Filtreleme

Sorgu sonrası çıktı da +[no]alanadı diyerek ilgili alanı çıktıda gösterebilir veya gizleyebilirsiniz. Bir nevi alanları filtreleyebilirsiniz.

dig gokhankesici.com +nostats
dig gokhankesici.com +noanswer
dig gokhankesici.com +noall +answer
dig gokhankesici.com +noquestion
dig gokhankesici.com +authority
dig gokhankesici.com +nocomment
dig gokhankesici.com +additional

# Kayıt Alanı Sorgulama

Bir DNS kaydında olan kayıt alanlarını spesifik olarak aşağıdaki gibi sorgulayabilirsiniz.

dig gokhankesici.com A
dig gokhankesici.com MX
dig gokhankesici.com NS
dig gokhankesici.com SOA
dig gokhankesici.com ANY

Özellikle ANY diyerek tüm kayıtları görebilirsiniz. Tabi doğal olarak alınan cevabın boyutu da büyümüş olacaktır.

# Kısa gösterim (short)

dig ile birlikte en sıklıkla kullanacağınız parametrelerden biri +short dur.

dig gokhankesici.com A +short
192.155.91.32

# Server Belirleme

DNS sunucusu sizin yerinize gidip dns isteği gerçekleştirip sonucusu size döner. Örneğin Google DNS (8.8.8.8)’i yazarsanız dns sunucusunuz olarak o gidip sorar cevabı size döner. Eğer network paketinizi dump ederseniz 8.8.8.8 ile iletişime geçtiğinizi görürsünüz. Gidip gokhankesici.com ile hiç ama hiç muhattap olmazsınız.  İstek yapılacak dns sunucuyu belirlemek için dns ayarınızı değiştirirsiniz ya da on the fly olarak @ işareti vererek gerçekleştirebilirsiniz.

dig @ns4.linode.com gokhankesici.com +short
192.155.91.32

# SOA kayıtlarını okunabilir yapmak

Varsayılan bir SOA kaydı sorgulaması tek bir satırda gelmektedir. Okurken hangi alan neydi diye düşünmek zaman kaybı olabilir. +multiline parametresi ile birlikte SOA çıktısını daha okunabilir yapabilirsiniz.

dig gokhankesici.com SOA +multiline +noall +answer
; <<>> DiG 9.10.3-P4-Debian <<>> gokhankesici.com SOA +multiline +noall +answer
;; global options: +cmd
gokhankesici.com. 86399 IN SOA ns1.linode.com. gokhankesici.outlook.com. (
 2016082822 ; serial
 14400 ; refresh (4 hours)
 14400 ; retry (4 hours)
 1209600 ; expire (2 weeks)
 86400 ; minimum (1 day)
 )

# Reverse DNS (PTR) Sorgulama

A kaydı bir etki alanı için ip bilgisini taşırdı. PTR kaydı ise tam tersi ip için etki alanını kaydını tutar.  -x parametresi ile reverse dns kaydını sorgulayabilirsiniz.

dig -x 192.155.91.32 +short
li586-32.members.linode.com.

# Birden fazla host sorgulama

Örneklerimiz hep 1 adet host içindi. Birden fazla sorgulama için yanyana domainleri yazabilirsiniz. Ya da belirli bir dosya içerisindeki satır bazındaki hostları -f parametresiyle belirterek sorgulayabilirsiniz.

dig gokhankesici.com google.com +short
192.155.91.32
216.58.201.78

dig -f siteler.txt +short
192.155.91.32
216.58.201.78

# Dig ile Trace

traceroute gibi dns sorguları içinde +trace parametresi ile yol haritası görülebilir. Aslında bir nevi dns ‘in çalışma mantığını görmüş olursunuz.

dig gokhankesici.com +trace

Bu komutun çıktısında göreceksiniz ki dns sunucunuz ilk olarak dns kök sunucularına gidecek. Daha sonra buradan .com sunucularına. Buradan gokhankesici.com ns sunucularına buradan da gokhankesici.com’a ulaşacaktır.

# Zone transfer

dig @nsztm1.digi.ninja zonetransfer.me axfr

AXFR kayıt sorgusuyla hedef sunucunun name server’ından zone transfer gerçekleştirebiliriz.

# TCP ile Sorgulama

UDP yerine tcp ile sorgulama istediğiniz durumlarda +tcp parametresini kullanabilirsiniz.

dig gokhankesici.com @8.8.8.8 +tcp

Ağı dinlediğinizde paketlerin tcp üzerinden taşındığını görebilirsiniz.

tcp - dig

# Standart olmayan port ile sorgulama

Diyelim ki olur da 53 portundan değilde başka bir porttan DNS sorgusu yapmak istiyorsunuz. Bunun için -p parametresini kullanabilirsiniz.

dig gokhankesici.com @8.8.8.8 -p 53