
Meu objetivo aqui é fazer com que o nmap resolva IPs para nomes de host sem o sinalizador --system-dns ou a opção --dns-servers.
Quando emito o seguinte comando nmap sem o sinalizador --system-dns ou a opção --dns-servers, 192.168.0.16 é resolvido para hostname server1.example.com. 192.168.0.17 não foi resolvido para um nome de host. Eu entendo que isso está ocorrendo porque de acordo comhttps://nmap.org/book/host-discovery-dns.html, "O Nmap usa um resolvedor de stub personalizado", o que significa que o nmap tem seu próprio resolvedor de DNS, e não nossos servidores DNS locais. Interessante.
[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).
Esse problema não ocorre quando o --system-dns
sinalizador está sendo usado.
[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).
Esse problema não ocorre quando a --dns-servers
opção é usada para declarar que nosso servidor DNS primário (192.168.0.6) deve ser usado.
[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 mostra que ambos os IPs podem ser resolvidos para seus nomes de host apropriados.
[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.
Estamos usando CentOs 7 como nosso sistema operacional. /etc/resolv.conf
contém o seguinte, o que significa que 192.168.0.6 é nosso servidor DNS principal.
[root@client1]# cat /etc/resolv.conf
nameserver 192.168.0.6
nameserver 8.8.8.8
192.168.0.6 (nosso servidor DNS primário) está usando a versão 9 do Bind como serviço DNS.
[root@dns1]# named -v
BIND 9.9.4-RedHat-9.9.4-51.el7 (Extended Support Version)
Aqui está o trecho relevante de /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
Aqui está um trecho de /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.
Responder1
A raiz do seu problema é sua /etc/resolv.conf
e como o nmap analisa isso.
# /etc/resolv.conf nameserver 192.168.0.6 nameserver 8.8.8.8
Somente a primeira das entradas do servidor de nomes está qualificada para responder a consultas sobre seu domínio local e rede.
O segundo servidor de nomes é um resolvedor público que não será capaz de responder a consultas DNS reversas para intervalos de IP privados.
Ao contrário do resolvedor do sistema, que por padrão usa a primeira entrada do servidor de nomes /etc/resolv.conf
e só usa a(s) próxima(s) quando o primeiro servidor de nomes não ressoa, Nmap usatodas as entradas de servidores de nomes encontradas em/etc/resolv.conf
em paralelo(com a suposição implícita de que todos são equivalentes).
Como no seu caso os diferentes servidores de nomes não são equivalentes, apenas algumas das consultas DNS reversas são bem-sucedidas e você vê alguns endereços IP sendo resolvidos para nomes de host (quando seu primeiro servidor de nomes foi consultado) e outros não (quando seu segundo servidor de nomes foi usado ).
Remova ou comente o segundo servidor de nomes e nmap -sn 192.168.0.0/24 -vvv
deverá obter os mesmos resultados que nmap -sn 192.168.0.0/24 -vvv --system-dns
enmap -sn 192.168.0.0/24 -vvv --dns-servers 192.168.0.6