Por que o Nmap é lento no meu laptop com Windows 8.1?

4

O Nmap é tão lento a ponto de ficar quase inutilizável no meu laptop com Windows 8.1.

Estou usando o Nmap 6.40 e leva mais de um minuto para executar uma verificação simples que é executada em uma fração de segundo em outros computadores na mesma rede. Eu tentei vários outros computadores com diferentes versões do Nmap, mas todos eles obtêm o mesmo resultado em uma fração de segundo. Tentando diferentes varreduras e diferentes alvos no meu laptop tem os mesmos resultados. Não é um laptop lento em geral, Core i7 / 16GB / SSD, outros aplicativos são executados rápido o suficiente

Isso é o que o Nmap diz no meu laptop (nomes de host etc alterados):

C:\Users\colinp>nmap -p4730 target 

Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-20 14:28 GMT Standard Time
Nmap scan report for target (192.168.1.1)
Host is up (0.0013s latency).
rDNS record for 192.168.1.1: target
PORT     STATE SERVICE
4730/tcp open  unknown
MAC Address: 2C:76:8A:00:00:00 (Hewlett-Packard Company)

Nmap done: 1 IP address (1 host up) scanned in 79.92 seconds

C:\Users\colinp>

vs um exemplo de computador Ubuntu na mesma rede:

colin@ubuntu:~$ nmap -p 4730 target 

Starting Nmap 5.21 ( http://nmap.org ) at 2014-03-20 14:29 GMT
Nmap scan report for target (192.168.1.1)
Host is up (0.00044s latency).
rDNS record for 192.168.1.1: target 
PORT     STATE SERVICE
4730/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
colin@ubuntu:~$

EDIT: Eu só notei que a quantidade de tempo gasto é suspeitamente semelhante para outro host, não tenho certeza se isso significa alguma coisa:

C:\Users\colinp>nmap -p4730 target2

Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-20 14:47 GMT Standard Time
Nmap scan report for target2 (192.168.1.2)
Host is up (0.00013s latency).
rDNS record for 192.168.1.2: target2
PORT     STATE  SERVICE
4730/tcp closed unknown
MAC Address: 00:25:90:00:00:00 (Super Micro Computer)

Nmap done: 1 IP address (1 host up) scanned in 79.71 seconds

C:\Users\colinp>

Tentar verificar um host inexistente é mais rápido, mas varia bastante entre 3 e 16 segundos. Novamente, isso leva 0,03 segundos no servidor ubuntu.

A resolução de nomes não parece ser um problema no meu laptop, nslookup retorna quase instantaneamente.

EDIT: saída de diagnóstico sugerida por @bonsaiviking:

C:\Users\colinp>nmap -d -sL target

Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-20 16:40 GMT Standard Time
Winpcap present, dynamic linked to: WinPcap version 4.1.2 (packet.dll version 4.
1.0.2001), based on libpcap version 1.0 branch 1_0_rel0b (20091008)
--------------- Timing report ---------------
  hostgroups: min 1, max 100000
  rtt-timeouts: init 1000, min 100, max 10000
  max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
  parallelism: min 0, max 0
  max-retries: 10, host-timeout: 0
  min-rate: 0, max-rate: 0
---------------------------------------------
mass_rdns: Using DNS server 192.168.x.12
mass_rdns: Using DNS server 192.168.x.11
mass_rdns: Using DNS server 192.168.1.254
mass_rdns: Using DNS server 192.168.2.1
mass_rdns: Using DNS server 192.168.x.12
mass_rdns: Using DNS server 192.168.x.11
mass_rdns: Using DNS server 192.168.x.12
mass_rdns: Using DNS server 192.168.x.11
Initiating Parallel DNS resolution of 1 host. at 16:41
mass_rdns: 52.89s 0/1 [#: 8, OK: 0, NX: 0, DR: 0, SF: 0, TR: 1]
Completed Parallel DNS resolution of 1 host. at 16:41, 0.00s elapsed
DNS resolution of 1 IPs took 52.90s. Mode: Async [#: 8, OK: 1, NX: 0, DR: 0, SF:
 0, TR: 1, CN: 0]
Nmap scan report for target (192.168.1.1)
rDNS record for 192.168.1.1: target
No data files read.
Nmap done: 1 IP address (0 hosts up) scanned in 53.36 seconds

Os endereços IP foram alterados novamente. Dos servidores DNS listados, 192.168.x.11 e 192.168.x.12 são meus servidores DNS reais. Não faço ideia de onde os outros entram nisso. Eles não são listados quando eu faço ipconfig /all , embora a seguinte entrada ímpar estivesse sob a minha conexão com o meu switch interno do Hyper-V:

   DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1

Não sei se o problema está relacionado ao funcionamento do Hyper-V? Também não tenho IPv6 ativamente desativado, não sei se isso poderia estar causando isso?

mais diagnósticos, endereços IP ainda obscurecidos, esperançosamente consistentes ...

C:\Users\colinp>nslookup -type=PTR 1.1.168.192.in-addr.arpa
Server:  dns-at-my-company.example.com
Address:  192.168.x.12

1.1.168.192.in-addr.arpa.co.uk
        primary name server = ns1.sedoparking.com
        responsible mail addr = hostmaster.sedo.de
        serial  = 2007021501
        refresh = 86400 (1 day)
        retry   = 10800 (3 hours)
        expire  = 604800 (7 days)
        default TTL = 86400 (1 day)

O comando anterior estava com falta de . . Isso parece melhor:

C:\Users\colinp>nslookup -type=PTR 1.1.168.192.in-addr.arpa.
Server:  dns-at-my-company.example.com
Address:  192.168.x.12

1.1.168.192.in-addr.arpa     name = target
    
por Colin Pickard 20.03.2014 / 15:41

2 respostas

3

Resolvido nos comentários: Um problema com a forma como o Nmap está detectando os servidores DNS a serem usados para sua resolução de DNS reverso paralelo. Aqui está o processo de diagnóstico e a solução final:

Primeiro, você precisa determinar qual fase da varredura do Nmap está atrasando você. nmap -p4730 target fará uma varredura TCP de porta única, mas também fará a resolução de nomes (se necessário), a descoberta de host ("ping") e a pesquisa reversa de nomes DNS. É importante saber se você também está executando como administrador, já que o Nmap usa abordagens diferentes para todas essas etapas, se não tiver privilégios suficientes para usar os melhores e mais rápidos. Execute estas varreduras monofásicas para determinar qual fase é a lenta:

  1. nmap -d -n -Pn -p 4730 target - Apenas fase de varredura da porta.
  2. nmap -d -n -sn target - somente fase de descoberta do host.
  3. nmap -d -sL target - Apenas a fase de resolução reversa de DNS.

De seus comentários, determinamos que o slowpoke era a resolução de DNS reverso. Adicionando o sinal -d mostrou que o Nmap estava escolhendo 4 servidores DNS diferentes, mas apenas 2 deles eram válidos. A documentação do Nmap sugere o uso da opção --dns-servers para especificar as corretas em uma lista separada por vírgulas. Você também pode usar --system-dns para usar o próprio resolvedor DNS do seu sistema operacional em vez do servidor paralelo do Nmap. Para varreduras de muitos hosts, isso pode ser mais lento, mas é praticamente sempre garantido que funcione. Essas opções estão documentadas em mais detalhes no livro oficial Digitalização em rede Nmap de Gordon "Fyodor" Lyon.

Nossa solução final, então, é determinar os endereços IP de seus servidores DNS e, em seguida, executar o Nmap com --dns-servers 192.168.X.X,192.168.X.Y com os endereços IP desses servidores.

    
por 20.03.2014 / 18:54
0

O Nmap no Windows não é tão eficiente quanto no Linux.

You can improve connect scan performance by double clicking the nmap_performance.reg file located in the Nmap directory, which will make three registry changes in order to increase the number of ephemeral ports reserved for applications such as Nmap, and decrease the amount of time before a closed connection can be reused.

Para fazer as alterações manualmente, adicione esses três valores DWORD do Registro a: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters :

  1. MaxUserPort : defina um valor grande, como 65534 ( 0x0000fffe ).
  2. TCPTimedWaitDelay : defina o valor mínimo ( 0x0000001e ).
  3. StrictTimeWaitSeqCheck : defina como 1 para que TCPTimedWaitDelay seja verificado.

Informações derivadas do site nmap .

    
por 20.03.2014 / 16:03