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 eu 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 com https://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 o CentOs 7 como nosso sistema operacional. /etc/resolv.conf
contém o seguinte, o que significa que 192.168.0.6 é nosso servidor DNS primário.
[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.
A raiz do seu problema é o seu
/etc/resolv.conf
e como o nmap analisa isso.Apenas a primeira das entradas do seu servidor de nomes está qualificada para responder a consultas de seu domínio e rede local.
O segundo servidor de nomes é um resolvedor público que não poderá 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 o(s) próximo(s) quando o primeiro servidor de nomes não ressoa, o Nmap usa todas as entradas de servidores de nomes encontradas/etc/resolv.conf
em paralelo (com a suposição implícita de que todas são equivalente).Como no seu caso os diferentes servidores de nomes não são equivalentes, apenas algumas das consultas de DNS reverso são bem-sucedidas e você vê alguns endereços IP 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
deve obter os mesmos resultados quenmap -sn 192.168.0.0/24 -vvv --system-dns
enmap -sn 192.168.0.0/24 -vvv --dns-servers 192.168.0.6