问题描述
我试图用 dig 枚举子域,但我找不到子域名称。主域名无法访问,但肯定在 DNS 记录中。
如果我对主域 example.com 运行 dig:
$ dig example.com
; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY,status: NOERROR,id: 54795
;; flags: qr rd ra; QUERY: 1,ANSWER: 0,AUTHORITY: 1,ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0,flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN A
;; AUTHORITY SECTION:
example.com. 300 IN SOA ns-1536.awsdns-00.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
;; Query time: 2 msec
;; SERVER: 10.84.0.2#53(10.84.0.2)
;; WHEN: Sat Jan 02 22:03:37 UTC 2021
;; MSG SIZE rcvd: 136
我还尝试针对 10.84.0.2 进行区域传输:
$ dig example.com @10.84.0.2 axfr
; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> example.com @10.84.0.2 axfr
;; global options: +cmd
; Transfer failed.
有没有办法枚举子域?区域转移似乎不起作用,那么还有其他方法吗?
解决方法
我试图用 dig 枚举子域
你可以在这里停下来,因为你不能提前知道名字。
我还尝试针对 10.84.0.2 进行区域传输:
区域传输几乎总是由于技术原因(没有人认为区域所有者真的需要它,这意味着网络流量大)或隐私原因(有些人认为 DNS 数据部分是私有的,因此只在需要知道的基础,而不是批量)。
如果我对主域 example.com 运行 dig:
$ dig example.com
不,你没有。像这样使用 dig
意味着您实际上查询的是 A
记录。任何给定的名称,包括顶点,都不能保证有 A
记录。您得到的回复称为“NODATA”,意思是“NOERROR”(名称正常且存在)但也没有答案(无 ANSWER 部分),因为此名称没有 A
记录(您要求的),但是有其他记录类型(因为它是顶点,它至少有 NS
和 SOA
记录)。
因此,基于此 dig
查询,您得出的“主域名无法访问”的结论是错误的。
有没有办法枚举子域?
有多种启发式方法,但没有保证的解决方案。由于你没有解释你需要做什么,而且在这个阶段这不是一个真正的编程问题,任何进一步的冒险在这里都是无关紧要的。