Por que o nmap -p port e o nmap -A scans mostram resultados diferentes?

3

Eu tenho um aplicativo c # que eu escrevi que escuta na porta 789. Ele está sendo executado em um computador com Windows XP Professional. Correndo

netstat -an | find "789"

TCP    0.0.0.0:789            0.0.0.0:0              LISTENING

Quando executo nmap -A -vv ip em uma máquina linux diferente (mas com a mesma sub-rede) ela relata apenas outras portas abertas no host (por exemplo, mysql, vnc, etc), mas não a porta aberta pelo meu aplicativo.

No entanto, quando executo nmap -p 789 ip , obtenho:

PORT     STATE   SERVICE
789/tcp  open  unknown

Por que existe uma diferença entre as duas varreduras do nmap? Há algo que eu possa fazer para garantir que o nmap detecte a porta aberta ao fazer uma varredura completa?

    
por Andrew Austin 04.06.2010 / 20:08

3 respostas

7

Por padrão, o nmap só procura por portas "comuns" (as 1000 portas mais comuns por protocolo que eu acredito). Desde 789 não é uma porta comum, não é encontrado. Se você fizer

nmap -A -vv -p- ip

ele deve varrer as portas 1-65535.

Aqui está a documentação do nmap que informa quais portas são verificadas por padrão: link

    
por 04.06.2010 / 20:44
0

Não tenho certeza. Ele está detectando como "aberto", que é o que você quer certo? Então, está escutando. Por que não está sendo encontrado com -A, não tenho certeza.

Editar - isso é da documentação antiga que pode não se aplicar à sua versão. Execute man nmap e deixe-nos saber qual versão você tem.

From the docs, I see :

"The default is to scan all ports between 1 and 1024 as well as any ports listed in the services file which comes with nmap."

So, 789 should be scanned, even if you don't have it in your services file (since it's labeled as "unknown", I'm sure it's not.)

Assim, eu não sei. Verifique o seu arquivo man para a sua versão do nmap, talvez o seu comportamento para o qual as portas para digitalizar usando -A é diferente do documento que encontrei?

Este é improvável, mas pode valer a pena investigar - A diferença pode estar no seu ID de usuário na máquina Linux. Usuários privilegiados e não privilegiados do NMap têm diferentes tipos de varredura padrão. Usuários com raiz podem fazer varreduras TCP SYN, usuários sem padrão usarão TCP connect ().

    
por 04.06.2010 / 20:49
0

A única maneira de fazer isso é modificar o arquivo de serviços do nmap, o que não é recomendado. A opção -A executa opções avançadas, incluindo detecção de serviço, detecção de SO, tracerouting, etc. - não varre toda a faixa. Se você quiser verificar todas as portas de 65k, use a opção -p- . Fora isso, você só precisa especificar a porta com -p 789 . Sua melhor opção é provavelmente criar um alias que use nmap -p 789 para economizar tempo.

Se você realmente precisar alterar o arquivo de serviços (/ usr / local / share / nmap / nmap-services por padrão), encontre a linha que lê unknown 789/tcp 0.000075 e substitua-a pelo nome do seu programa, e coloque o número em o fim em 0.9 , por isso é a porta superior que o nmap inclui. Um alias seria muito melhor.

    
por 04.06.2010 / 21:23