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.
# 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