Merhaba. Offensive Security tarafında yer alan “PEN-200: Penetration Testing with Kali Linux” sertifika eğitimi yazı serisinin yedinci yazısı olan “DNS Enumeration” konusunu ele alacağım.
DNS Nedir?
Domain Name System (DNS), kullanıcı dostu alan adlarının IP adreslerine dönüştürülmesinden sorumlu dağıtılmış bir veri tabanıdır. İnternetteki en kritik sistemlerden biridir. Bu, üst düzey kök bölgeden başlayarak çeşitli bölgelere bölünmüş hiyerarşik bir yapıyla kolaylaştırılır.
Her etki alanı farklı türde DNS kayıtları kullanabilir. En yaygın DNS kaydı türlerinden bazıları şunlardır:
- A: Ana bilgisayar kaydı olarak da bilinen “a kaydı”, bir ana bilgisayar adının (www.test.com gibi) IPv4 adresini içerir.
- AAAA: Dörtlü A ana bilgisayar kaydı olarak da bilinen “aaaa kaydı”, bir ana bilgisayar adının (www.test.com gibi) IPv6 adresini içerir.
- MX: Mail Exchange kayıtları, alan adı için e-postaların işlenmesinden sorumlu sunucuların adlarını içerir. Bir alan birden fazla MX kaydı içerebilir.
- PTR: İşaretçi Kayıtları geriye doğru arama bölgelerinde kullanılır ve bir IP adresiyle ilişkili kayıtları bulabilir.
- CNAME: Kurallı Ad Kayıtları, diğer ana bilgisayar kayıtları için takma adlar oluşturmak için kullanılır.
- TXT: Metin kayıtları herhangi bir rastgele veri içerebilir ve alan adı sahipliğinin doğrulanması gibi çeşitli amaçlarla kullanılabilir.
- NS: Ad sunucusu kayıtları, bir etki alanı için DNS kayıtlarını barındıran yetkili sunucuların adını içerir.
DNS içerdiği bilgiler nedeniyle, aktif bilgi toplama açısından genellikle zengin bir hedeftir. Host komutunu kullanarak hedef web sitesinin ip adresini bulalım.
Host komutu varsayılan olarak bir A kaydını arar ancak “-t” seçeneğini kullanarak sorgumuzda kayıt türünü belirterek MX veya TXT kayıtları gibi diğer alanları da sorgulayabiliriz.
MX sorgusunda görülen 10-20-30 sayıları sunucuların posta gönderiminde öncelik numarasını belirtmektedir. En düşük öncelikli posta sunucusu “aspxmx.l.google.com” sunucusudur.
Yaygın ana bilgisayar adlarının ileri DNS aramasını, Bash tek satırlık bir komutta Host komutunu kullanarak otomatikleştirebiliriz. Öncelikle olası ana bilgisayar adlarının bir listesini oluşturalım.
Daha sonra, her bir ana bilgisayar adını çözümlemeye çalışmak için tek satırlık bir Bash kullanabiliriz.
for ip in $(cat list.txt); do host $ip.test.com; done
Biz burada kendi oluşturduğumuz çok basit bir liste ile sorgulama yaptık. Seclists içerisinde yer alan çeşitli wordlistler ile farklı keşifler yapabiliriz.
Kali Linux‘ta DNS enumeration işlemini otomatikleştirebilen çeşitli araçlar vardır. En bilinen iki örnek DNSRecon ve DNSenum‘dur. İlk inceleyeceğimiz araç DNSRecon ile örnek bir tarama yapalım.
DNSRecon aracında “-d” ile hedef adresi “-t” ile arama türünü belirttik. Tüm arama türlerine aşağıdaki man sayfası görselinde görebilirsiniz.
DNSRecon kullanarak wordlist ile brute-force yaparak diğer ana bilgisayar adlarına ulaşmayı deneyebiliriz. Bunun için -t parametresi brt parametresini almaktadır.
Bir diğer aracımız olan DNSenum ile taramaları daha da otomatize hale getirmektedir. Aşağıda inceleyelim.
serdar :: ~ # dnsenum hackerone.com
dnsenum VERSION:1.3.1
----- hackerone.com -----
Host's addresses:
__________________
hackerone.com. 84 IN A 104.18.36.214
hackerone.com. 84 IN A 172.64.151.42
Name Servers:
______________
a.ns.hackerone.com. 170906 IN A 162.159.0.31
b.ns.hackerone.com. 170906 IN A 162.159.1.31
Mail (MX) Servers:
___________________
alt2.aspmx.l.google.com. 293 IN A 74.125.200.26
aspmx3.googlemail.com. 293 IN A 74.125.200.27
aspmx.l.google.com. 293 IN A 142.251.18.26
alt1.aspmx.l.google.com. 293 IN A 142.250.150.27
aspmx2.googlemail.com. 293 IN A 142.250.150.27
Brute forcing with /usr/share/dnsenum/dns.txt:
_______________________________________________
www.hackerone.com. 300 IN A 104.18.36.214
www.hackerone.com. 300 IN A 172.64.151.42
hackerone.com class C netranges:
_________________________________
104.18.36.0/24
162.159.0.0/24
162.159.1.0/24
172.64.151.0/24
DNSenum çıktısı eklediğimden daha uzun fakat ben tamamını buraya eklemedim. Sizde DNSenum aracını çalıştırarak çıktılarını inceleyebilirsiniz. Kali Linux araçlarından hariç olarak Windows tarafında da nslookup aracını kullanarak bir kaç sorgu yapalım.
Terminale geldikten sonra smtp.google.com ana bilgisayarının A kaydını çözümlemek için basit bir sorgu çalıştırabiliriz.
Yukarıdaki çıktıda smtp.google.com IP adresini çözümlemek için varsayılan DNS sunucusunu (192.168.1.1) sorguladık ve DNS sunucusu daha sonra buna “173.194.79.26 – 74.125.143.26 – 173.194.69.26 – 173.194.79.27 – 173.194.69.27” ile cevap verdi (ipv6 hariç). Nslookup ile txt kayıtlarını görüntülemek için “-type=TXT” parametresini kullanabiliriz.
Nslookup da Kali Linux’ta kullandığımız diğer araçlar gibi çeşitli detaylı sorgular yapabilmektedir. Aracın yardım sayfasına gidip burada farklı sorguları çalıştırarak inceleyebilirsiniz.
PEN-200 serisinin yedinci yazısının sonuna geldik. Başka yazılarda görüşmek üzere.