5

出于测试目的,我正在尝试使用此方法获取为域设置的所有 DNS 记录的列表。

这有效:

root@cs:/# dig @nameserver domain

; <<>> DiG 9.9.2-P1 <<>> @nameserver domain
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32999
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;domain.           IN      A

;; ANSWER SECTION:
domain.    3600    IN      A       my-IP

;; Query time: 2 msec
;; SERVER: my-IPv6-IP-(I-think)
;; WHEN: Thu Jun 20 16:03:05 2013
;; MSG SIZE  rcvd: 83

但是,当我axfr按照服务器故障(以及整个网络)的答案中的建议添加命令时,它会失败:

root@cs:/# dig @ns1.transip.nl changeyourschool.nl axfr

; <<>> DiG 9.9.2-P1 <<>> @ns1.transip.nl changeyourschool.nl axfr
; (2 servers found)
;; global options: +cmd
; Transfer failed.

为什么会这样,更重要的是,如果失败,我如何获得完整的 DNS 记录列表?

4

3 回答 3

3

为什么会这样,我不知道,但您可以使用它来获取所有 DNS 记录:

root@cs:/# dig google.com ANY +nostat +nocmd +nocomments

; <<>> DiG 9.9.2-P1 <<>> google.com ANY +nostat +nocmd +nocomments
;; global options: +cmd
;google.com.                    IN      ANY
google.com.             56328   IN      NS      ns4.google.com.
google.com.             56328   IN      NS      ns2.google.com.
google.com.             56328   IN      NS      ns1.google.com.
google.com.             56328   IN      NS      ns3.google.com.
ns4.google.com.         85545   IN      A       216.239.38.10
ns1.google.com.         85545   IN      A       216.239.32.10
ns3.google.com.         57402   IN      A       216.239.36.10
ns2.google.com.         85545   IN      A       216.239.34.10

和加法可以省略,但减少无用的输出+nostat+nocmd+nocomments

于 2013-06-20T14:17:13.170 回答
3

基兰的解决方案对我不起作用。

对我有用的是一个两步过程(在 Linux 和 Windows 上)。

第一步类型:

dig ns google.com

google.com感兴趣的领域在哪里。

这返回了一个名称服务器列表,例如:

ns1.google.com.         60      IN      A       216.239.32.10

第二步类型:

dig ns1.google.com google.com any

域的名称服务器在哪里ns1.google.com(在步骤 1 中找到)并且google.com是感兴趣的域。

这产生了如下结果:

google.com.             31335   IN      NS      ns4.google.com.
google.com.             31335   IN      NS      ns2.google.com.
google.com.             31335   IN      NS      ns3.google.com.
google.com.             59      IN      SOA     ns1.google.com. dns-admin.google.com. 1579113 7200 1800 1209600 300
google.com.             60      IN      A       216.58.220.142
google.com.             2251    IN      TXT     "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
google.com.             31335   IN      NS      ns1.google.com.
google.com.             185     IN      AAAA    2404:6800:4006:800::200e

希望这可以帮助。如果没有,您可以随时尝试: http: //www.whois.com.au/whois/dns.html

于 2015-01-14T02:24:24.000 回答
1

就像您链接到的答案所解释的那样,惯例是禁止该axfr命令,但受信任的对等方除外。

如果区域传输被禁用,您只能通过猜测来获得区域内主机的大致列表,即基本上是字典攻击。维护良好的站点也将采取措施来缓解这种方法。

于 2015-01-14T04:39:49.527 回答