Answers:
当查询ANY时,您将获得该级别的所有记录的列表,但不在下面。
# try this
dig google.com any
如果域名恰好是“ google.com”,则可能会返回A记录,TXT记录,NS记录,MX记录等。但是,它不会返回子记录(例如,www.google.com)。更准确地说,您可以获取这些记录(如果存在)。如果名称服务器选择不这样做,则不必返回这些记录(例如,减小响应的大小)。
AXFR是区域传输,可能是您想要的。但是,这些通常受到限制,除非您控制区域,否则它们将不可用。通常,您通常直接从权威服务器(下面的@ ns1.google.com)进行区域转移,通常是从可能未发布的名称服务器(隐身名称服务器)进行区域转移。
# This will return "Transfer failed"
dig @ns1.google.com google.com axfr
如果您可以控制区域,则可以对其进行设置以获取受TSIG密钥保护的传输。这是客户端可以发送到服务器以授权传输的共享机密。
我已经改善了乔什的答案。我注意到,它dig
仅显示查询的名称服务器的缓存中已经存在的条目,因此最好从SOA中提取一个权威的名称服务器(而不是依赖于默认名称服务器)。我还禁用了通配符IP的过滤,因为通常我通常对设置的正确性更感兴趣。
新脚本接受-x
用于扩展输出的-s NS
参数和用于选择特定名称服务器的参数: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
dig -t txt +nocmd $NS "$DOM" +noall +answer
(并修改$DOM
)以检查域的TXT记录。
在没有进行区域传输的能力的情况下,我编写了这个小bash脚本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
现在,我使用dg example.com
了一个很好的,干净的DNS记录列表,或dg example.com x
包含了许多其他流行的子域。
grep -vE "${wild_ips}"
过滤掉可能由通配符DNS条目(例如)导致的记录* 10800 IN A 1.38.216.82
。否则,通配符条目将使其看起来好像每个都有记录$COMMON_SUBDOMAN
。
注意:这依赖于ANY
查询,某些DNS提供商(例如CloudFlare)阻止了查询。
dig -t txt +nocmd "$1" +noall +answer
(并修改"*.$1"
等)以检查域的TXT记录。
host -a
运作良好,类似于dig any
。
例如:
$ 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.
host -a
不是有用的命令,它只是没有执行OP所需的操作。
区域传输是确保您拥有所有子域记录的唯一方法。如果正确配置了DNS,则通常不应执行外部区域传输。
该scans.io项目有可以下载和搜索子域的DNS记录的数据库。这需要下载87GB的DNS数据,或者您可以尝试在https://hackertarget.com/find-dns-host-records/上在线搜索数据。
对于Windows:
您可能发现需要检查域DNS记录的状态,或者检查“名称服务器”以查看服务器要提取的记录。
通过导航到“开始”>“命令提示符”或通过“运行”>“ CMD”来启动Windows命令提示符。
输入NSLOOKUP并按Enter。默认服务器设置为您的本地DNS,该地址将是您的本地IP。
键入您要查找的DNS记录类型,方法是键入set type=##
##是记录类型,然后按Enter。您可以使用ANY,A,AAAA,A + AAAA,CNAME,MX,NS,PTR,SOA或SRV作为记录类型。
现在输入您要查询的域名,然后按Enter。在此示例中,我们将使用Managed.com。
NSLOOKUP现在将返回您输入的域的记录条目。
您还可以更改要查询的名称服务器。如果要在DNS完全传播之前检查记录,这将很有用。要更改名称服务器,请键入服务器[名称服务器]。用您要使用的名称服务器替换[名称服务器]。在此示例中,我们将其设置为NSA.managed.com。
更改后,根据需要更改查询类型(步骤3),然后输入新的新域(步骤4)。
对于Linux:
1)使用Dig命令检查DNS记录Dig代表域信息groper是用于查询DNS名称服务器的灵活工具。它执行DNS查找,并显示从查询的名称服务器返回的答案。大多数DNS管理员使用dig来解决DNS问题,因为它具有灵活性,易用性和输出清晰性。其他查找工具的功能往往比挖掘少。
2)使用NSlookup命令检查DNS记录Nslookup是用于查询Internet域名服务器的程序。Nslookup具有交互和非交互两种模式。
交互模式允许用户查询名称服务器以获取有关各种主机和域的信息,或打印域中的主机列表。
非交互模式用于仅打印主机或域的名称和请求的信息。它是网络管理工具,可帮助他们检查和解决DNS相关问题。
3)使用主机命令检查DNS记录host是用于执行DNS查找的简单实用程序。通常用于将名称转换为IP地址,反之亦然。如果未提供任何参数或选项,主机将打印其命令行参数和选项的简短摘要。