这里的My目标是获取nmap来将is解析为主机名,而不使用--system标志或-dns-server选项。
当我在没有--system标志或--dns-servers选项的情况下发出以下nmap命令时,192.168.0.16被解析为主机名server1.example.com。192.168.0.17未解析为主机名。我理解这是因为根据https://nmap.org/book/host-discovery-dns.html,"Nmap使用自定义存根解析器“,这意味着nmap有自己的DNS解析器,而不是本地DNS服务器。有意思的。
[root@client1]# nmap -sn 192.168.0.0/24 -vvv
Initiating Parallel DNS resolution of 256 hosts. at 11:22
Completed Parallel DNS resolution of 256 hosts. at 11:22, 0.02s elapsed
DNS resolution of 18 IPs took 0.02s. Mode: Async [#: 2, OK: 5, NX: 13, DR: 0, SF: 0, TR: 18, CN: 0]
Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00063s latency).
Nmap scan report for 192.168.0.17
Host is up (0.00059s latency).使用--system-dns标志时不会发生此问题。
[root@client1]# nmap -sn 192.168.0.0/24 --system-dns
Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00029s latency).
Nmap scan report for server2.example.com (192.168.0.17)
Host is up (0.00026s latency).当使用--dns-servers选项声明应该使用我们的主DNS服务器(192.168.0.6)时,不会出现此问题。
[root@client1]# nmap -sn 192.168.0.0/24 --dns-servers 192.168.0.6
Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00039s latency).
Nmap scan report for server2.example.com (192.168.0.17)
Host is up (0.00036s latency).nslookup显示,两个IP都可以解析为相应的主机名。
[root@client1]# nslookup 192.168.0.16
16.0.168.192.in-addr.arpa name = server1.example.com.
[root@client1]# nslookup 192.168.0.17
17.0.168.192.in-addr.arpa name = server2.example.com.我们使用CentOs 7作为操作系统。/etc/resolv.conf包含以下内容,这意味着192.168.0.6是我们的主要DNS服务器。
[root@client1]# cat /etc/resolv.conf
nameserver 192.168.0.6
nameserver 8.8.8.8192.168.0.6 (我们的主DNS服务器)使用第9版的Bind作为DNS服务。
[root@dns1]# named -v
BIND 9.9.4-RedHat-9.9.4-51.el7 (Extended Support Version)以下是/var/named/forward.example.com的相关片段。
[root@dns1]# cat /var/named/forward.example.com
$ORIGIN example.com.
$TTL 1D
@ IN SOA ns1.example.com. hostmaster.example.com. (
2016032200 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ; minimum
)
;name used for the nameserver
IN NS ns1.example.com.
;ip address of the nameserver
ns1 IN A 192.168.0.6
;hostname to ip address resolutions
server1 IN A 192.168.0.16
server2 IN A 192.168.0.17下面是/var/named/reverse.example.com的一个片段。
[root@client1]# cat /var/named/reverse.example.com
$TTL 1D
@ IN SOA ns1.example.com. root.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ; minimum
)
0.168.192.in-addr.arpa. IN NS ns1.example.com.
@ IN NS ns1.example.com.
ns1 IN A 192.168.0.6
16 IN PTR server1.example.com.
17 IN PTR server2.example.com.发布于 2020-09-01 15:00:23
问题的根源在于您的/etc/resolv.conf以及nmap如何解析它。
# /etc/resolv.conf nameserver 192.168.0.6 nameserver 8.8.8.8
只有第一个名称服务器条目才有资格回答本地域和网络的查询。
第二个名称服务器是公共解析器,它无法响应针对私有IP范围的反向DNS查询。
系统解析器默认使用/etc/resolv.conf中的第一个名称服务器条目,而在第一个名称服务器没有响应时只使用下一个名称服务器项(S),与系统解析器不同,Nmap使用 所有名称服务器条目都可以在/etc/ found中找到。 in并行(隐含地假定它们都是等效的)。
因为在您的示例中,不同的名称服务器是不同的,所以只有一些反向DNS查询成功,您可以看到一些IP地址被解析为主机名(当您的名称服务器被查询时),而其他地址则不会被解析为主机名(当您的第二个名称服务器被使用时)。
删除或注释掉第二个名称服务器和nmap -sn 192.168.0.0/24 -vvv应该得到与nmap -sn 192.168.0.0/24 -vvv --system-dns和nmap -sn 192.168.0.0/24 -vvv --dns-servers 192.168.0.6相同的结果
https://serverfault.com/questions/1032267
复制相似问题