TÜM DNS kayıtlarını nasıl listeleyebilirim?


189

Bir alan adı için TÜM DNS kayıtlarını listeleyebilmemin herhangi bir yolu var mı?

Kazmak ve nslookup gibi şeyleri biliyorum ama sadece o kadar ileri gidiyorlar. Örneğin, bir alt alan adı A kaydım varsa

test A somedomain.co.uk

özel olarak istemedikçe, örneğin.

dig any test.somedomain.co.uk

Göremiyorum.

Tüm DNS kayıtlarının tam olarak ne olduğunu görmenin bir yolu var mı (DNS yöneticisine giderek kayıtlara bakmak dışında)?

Yanıtlar:


202

HERHANGİ BİR'i sorguladığınızda, o düzeydeki ancak aşağıda olmayan tüm kayıtların bir listesini alırsınız.

# try this
dig google.com any

Alan adı tam olarak "google.com" ise, A kayıtları, TXT kayıtları, NS kayıtları, MX kayıtları vb. Döndürülebilir. Ancak, alt kayıtları döndürmez (ör. Www.google.com). Daha doğrusu, eğer varsa, bu kayıtları ALINABİLİRSİNİZ. Ad sunucusunun bunu yapmamayı seçmesi durumunda bu kayıtları döndürmesi gerekmez (örneğin, yanıtın boyutunu azaltmak için).

AXFR bir bölge aktarımıdır ve muhtemelen istediğiniz şeydir. Ancak, bölgeyi kontrol etmedikçe bunlar genellikle sınırlıdır ve kullanılamaz. Genellikle doğrudan yetkili sunucudan (aşağıdaki @ ns1.google.com) ve genellikle yayınlanamayan bir ad sunucusundan (gizli ad sunucusu) bölge aktarımı gerçekleştirirsiniz.

# This will return "Transfer failed"
dig @ns1.google.com google.com axfr

Bölgenin kontrolüne sahipseniz, bir TSIG anahtarı ile korunan transferleri almak için ayarlayabilirsiniz. Bu, istemcinin aktarımı yetkilendirmek için sunucuya gönderebileceği paylaşılan bir sırdır.


4
Bunun için teşekkürler (ayrıca deltab için). Çok net bir açıklama, şüphelendiğim şeyi teyit etti - bu mevcut ama bana göre değil (kendi ad sunucularımı kurmaya başlamadığım sürece). Çok fazla alana baktığımda TÜM DNS girişlerini almak için bir komut dosyası çalıştırmak çok güzel olurdu.
Ken

13
Amazon'un Route53 ad sunucuları bunu denediğimde TXT, MX ve SOA içermiyordu. Bu kayıtları özel olarak sorguladıktan sonra HERHANGİ BİR yanıta dahil edildiğinde. Yani bunu bir tane tuzla al.
Peter

Ben sadece "bağlantı reddedildi"
niico

1
Spesifikasyon, HERHANGİ anlamına ilişkin olarak çözücüler tarafından asla tutarlı bir şekilde yorumlanmamıştır. Kesinlikle TÜM anlamına gelmez (bunun için bir istek vardır), ancak bazıları (çok değil) bu şekilde tedavi etti. Diğerleri önbelleklerini boşalttılar ve diğerleri belirli kayıt türleriyle sınırladı. Modern zamanlarda (2016+), çoğu sağlayıcı ya herhangi bir amplifikasyon saldırısı için ortak sürücü olduğu için HERHANGİ BİRİNİ devre dışı bırakmıştır (veya işe yaramaz bir cevap vermiştir) veya bunu yapmayı planlamaktadır.
Nick Bastin

1
@NickBastin şu anda çalışmakta olan bu taslak ( tools.ietf.org/html/draft-ietf-dnsop-refuse-any-06 ) bu sorgu türü için yanıt desenini sıkılaştırmaya çalışıyor. Ayrıca neden kullanıldığını / kullanılmaması gerektiğini de tartışır.
Patrick Mevzek

29

Josh'un cevabını geliştirdim . Ben fark ettik digsorgulanan ad sunucusunun önbelleğinde zaten mevcut tek gösterileri girişleri daha iyi olur, böylece SOA'dan yetkili nameserverı çekin (ziyade varsayılan ad sunucusunun güvenmek) için. Ayrıca genellikle joker IP'lerin filtrelenmesini devre dışı bıraktım çünkü genellikle kurulumun doğruluğuyla daha fazla ilgileniyorum.

Yeni komut dosyası, -xgenişletilmiş çıktı için bir -s NSbağımsız değişken ve belirli bir ad sunucusu seçmek için bir bağımsız değişken alır :dig -x example.com

#!/bin/bash
set -e; set -u
COMMON_SUBDOMAINS="www mail mx a.mx smtp pop imap blog en ftp ssh login"
EXTENDED=""

while :; do case "$1" in
  --) shift; break ;;
  -x) EXTENDED=y; shift ;;
  -s) NS="$2"; shift 2 ;;
  *) break ;;
esac; done
DOM="$1"; shift
TYPE="${1:-any}"

test "${NS:-}" || NS=$(dig +short  SOA "$DOM" | awk '{print $1}')
test "$NS" && NS="@$NS"

if test "$EXTENDED"; then
  dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
  wild_ips=$(dig +short "$NS" "*.$DOM" "$TYPE" | tr '\n' '|')
  wild_ips="${wild_ips%|}"
  for sub in $COMMON_SUBDOMAINS; do
    dig +nocmd $NS "$sub.$DOM" +noall +answer "$TYPE"
  done | cat  #grep -vE "${wild_ips}"
  dig +nocmd $NS "*.$DOM" +noall +answer "$TYPE"
else
  dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
fi

bir alanın TXT kayıtlarını incelemek için satır ekleyin dig -t txt +nocmd $NS "$DOM" +noall +answer(ve değiştirin $DOM).
Maksimum

19

Bölge transferleri yapma yeteneğinin yokluğunda, bu küçük bash senaryosunu yazdım dg:

#!/bin/bash
COMMON_SUBDOMAINS=(www mail smtp pop imap blog en ftp ssh login)
if [[ "$2" == "x" ]]; then
    dig +nocmd "$1" +noall +answer "${3:-any}"
    wild_ips="$(dig +short "*.$1" "${3:-any}" | tr '\n' '|')"
    wild_ips="${wild_ips%|}"
    for sub in "${COMMON_SUBDOMAINS[@]}"; do
        dig +nocmd "$sub.$1" +noall +answer "${3:-any}"
    done | grep -vE "${wild_ips}"
    dig +nocmd "*.$1" +noall +answer "${3:-any}"
else
    dig +nocmd "$1" +noall +answer "${2:-any}"
fi

Şimdi dg example.com, DNS kayıtlarının güzel ve temiz bir listesini almak veya dg example.com xbir dizi diğer popüler alt etki alanını dahil etmek için kullanıyorum.

grep -vE "${wild_ips}"gibi bir joker karakter DNS girdisinin sonucu olabilecek kayıtları filtreler * 10800 IN A 1.38.216.82. Aksi takdirde, bir joker karakter girişi her biri için kayıt varmış gibi görünmesini sağlar $COMMON_SUBDOMAN.

Not: Bu ANY, CloudFlare gibi bazı DNS sağlayıcıları tarafından engellenen sorgulara dayanır .


3
Bu çözümün ideal olmaktan uzak olduğunu biliyorum, ama bana çok zaman kazandırdı, bu yüzden umarım başka biri için faydalı olacaktır.
Zaz

bir alanın TXT kayıtlarını incelemek için ekleyin dig -t txt +nocmd "$1" +noall +answer(ve değiştirin "*.$1"vb.).
Maksimum

15

host -agibi iyi çalışır dig any.

ÖRNEĞİN:

$ host -a google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10403
;; flags: qr rd ra; QUERY: 1, ANSWER: 18, AUTHORITY: 0, ADDITIONAL: 0


;; QUESTION SECTION:
;google.com.            IN  ANY

;; ANSWER SECTION:
google.com.     1165    IN  TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
google.com.     53965   IN  SOA ns1.google.com. dns-admin.google.com. 2014112500 7200 1800 1209600 300
google.com.     231 IN  A   173.194.115.73
google.com.     231 IN  A   173.194.115.78
google.com.     231 IN  A   173.194.115.64
google.com.     231 IN  A   173.194.115.65
google.com.     231 IN  A   173.194.115.66
google.com.     231 IN  A   173.194.115.67
google.com.     231 IN  A   173.194.115.68
google.com.     231 IN  A   173.194.115.69
google.com.     231 IN  A   173.194.115.70
google.com.     231 IN  A   173.194.115.71
google.com.     231 IN  A   173.194.115.72
google.com.     128 IN  AAAA    2607:f8b0:4000:809::1001
google.com.     40766   IN  NS  ns3.google.com.
google.com.     40766   IN  NS  ns4.google.com.
google.com.     40766   IN  NS  ns1.google.com.
google.com.     40766   IN  NS  ns2.google.com.

11
Bu, bir etki alanının DNS bölgesindeki diğer kayıtları, yani ek olarak alt etki alanlarına ilişkin tüm kayıtları nasıl bulacağınız sorusunu yanıtlamaz. Bu host -ayararlı bir komut değil, OP'nin aradığı şeyi yapması demek değildir.
spikyjt

13
  1. Tüm alt alan adı kayıtlarına sahip olduğunuzdan emin olmanın tek yolu bölge aktarımıdır. DNS doğru yapılandırılmışsa, normalde harici bölge aktarımı yapamamanız gerekir.

  2. Scans.io proje indirilen ve alt etki alanları için aranabilir DNS kayıtlarının bir veri tabanı vardır. Bu, 87 GB'lık DNS verilerinin indirilmesini gerektirir; alternatif olarak, verilerin çevrimiçi aramasını https://hackertarget.com/find-dns-host-records/ adresinde deneyebilirsiniz.


12

Pencereler için:

Etki alanlarınızın DNS kayıtlarının durumunu kontrol etme veya sunucuların hangi kayıtları çektiğini görmek için Ad Sunucularını kontrol etme gereksinimi bulabilirsiniz.

  1. Başlat> Komut İstemi'ne giderek veya Çalıştır> CMD aracılığıyla Windows Komut İstemi'ni başlatın.

  2. NSLOOKUP yazın ve Enter'a basın. Varsayılan Sunucu yerel DNS'nize ayarlanmıştır, Adres yerel IP'niz olacaktır.

  3. set type=##Aramak istediğiniz DNS Kaydı türünü , ## öğesinin kayıt türü olduğu yere yazıp Enter tuşuna basın. Kayıt türü olarak HERHANGİ BİR, A, AAAA, A + AAAA, CNAME, MX, NS, PTR, SOA veya SRV kullanabilirsiniz.

  4. Şimdi sorgulamak istediğiniz alan adını girin ve Enter tuşuna basın. Bu örnekte Managed.com'u kullanacağız.

  5. NSLOOKUP şimdi girdiğiniz alan adı için kayıt girişlerini döndürecektir.

  6. Sorguladığınız Ad Sunucularını da değiştirebilirsiniz. DNS tamamen yayılmadan önce kayıtları kontrol ediyorsanız bu yararlıdır. Ad Sunucusu tipi sunucuyu [ad sunucusu] değiştirmek için. [Ad sunucusu] yerine kullanmak istediğiniz Ad Sunucularını girin. Bu örnekte, bunları NSA.managed.com olarak ayarlayacağız.

  7. Değiştirildikten sonra, gerekirse sorgu türünü (Adım 3) değiştirin, ardından yeni bir alan adı girin (Adım 4).

Linux için:

1) Dig Kayıtlarını Kullanarak DNS Kayıtlarını Kontrol Et Dig, etki alanı bilgisi anlamına gelir. Groper, DNS ad sunucularını sorgulamak için esnek bir araçtır. DNS aramaları yapar ve sorgulanan ad sunucularından döndürülen yanıtları görüntüler. Çoğu DNS yöneticisi esnekliği, kullanım kolaylığı ve çıktı netliği nedeniyle DNS sorunlarını gidermek için dig kullanır. Diğer arama araçları, kazmaktan daha az işlevselliğe sahiptir.

2) NSlookup Komutunu Kullanarak DNS Kayıtlarını Kontrol Edin Nslookup, Internet alan adı sunucularını sorgulamak için kullanılan bir programdır. Nslookup etkileşimli ve etkileşimli olmayan iki moda sahiptir.

Etkileşimli mod, kullanıcının çeşitli ana makineler ve etki alanları hakkında bilgi için ad sunucularını sorgulamasına veya bir etki alanındaki ana bilgisayarların listesini yazdırmasına olanak tanır.

Etkileşimli olmayan mod, yalnızca bir ana bilgisayar veya etki alanı için adı ve istenen bilgileri yazdırmak için kullanılır. DNS ile ilgili sorunları kontrol etmelerine ve gidermelerine yardımcı olacak ağ yönetim aracıdır.

3) Ana Bilgisayar Komutunu Kullanarak DNS Kayıtlarını Kontrol Etme DNS aramaları gerçekleştirmek için basit bir yardımcı programdır. Normalde adları IP adreslerine dönüştürmek için kullanılır veya tersi de geçerlidir. Herhangi bir argüman veya seçenek verilmediğinde, host komut satırı argümanlarının ve seçeneklerinin kısa bir özetini yazdırır.


Bu Windows 7'de benim için mükemmel çalıştı, ancak Windows 10 arabası gibi görünüyor, bu Windows'un 10 bir TXT kaydı hata ayıklamak için kullanılan budur: nslookup -querytype = txt yourdomainnamehere.com
Coder

11

İstediğiniz bölgeye bölge aktarımı denir . Düğmesini kullanarak bölge aktarımı isteyebilirsiniz dig -t axfr.

Bir bölge etki alanı ve başka bir sunucuya, yetkisi olmayan altındaki alanların tümüdür.

Bölge aktarımlarının her zaman desteklenmediğini unutmayın. Normal aramada kullanılmazlar, yalnızca sunucular arasında DNS verilerinin çoğaltılmasında kullanılırlar; ancak bunun için kullanılabilecek başka protokoller de vardır (örneğin, ssh üzerinden rsync gibi), adları göstermekten bir güvenlik riski olabilir ve bölge aktarım yanıtlarının oluşturulması ve gönderilmesi normal DNS aramalarından daha pahalıdır.


1

Bir etki alanı için tüm DNS kayıtlarını tek seferde almanın kolay bir yolu yoktur. Yalnızca belirli kayıtları görüntüleyebilirsiniz, örneğin belirli bir alan için A kaydı görmek istiyorsanız şu komutu kullanabilirsiniz: dig a (kayıt türü) domain.com. Bu, söz konusu alan adı için görmek istediğiniz diğer tüm kayıt türleri için aynıdır.

Komut satırı arayüzüne aşina değilseniz, mxtoolbox.com gibi bir site de kullanabilirsiniz. Hangi alan adının kayıtlarını almak için çok kullanışlı bir araçtır.

Umarım bu soruya cevap verir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.