Por que nmap -pe as varreduras nmap -A mostram resultados diferentes?

Por que nmap -pe as varreduras nmap -A mostram resultados diferentes?

Eu tenho um aplicativo C# que 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 ipem uma máquina Linux diferente (mas na mesma sub-rede), ele relata apenas outras portas abertas no host (ou seja, mysql, vnc, etc), mas não a porta aberta pelo meu aplicativo.

No entanto, quando corro, nmap -p 789 iprecebo:

PORT     STATE   SERVICE
789/tcp  open  unknown

Por que há 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?

Responder1

Por padrão, o nmap procura apenas portas "comuns" (as 1000 portas mais comuns por protocolo, acredito). Como 789 não é uma porta comum, ela não foi encontrada. Se você fizer

nmap -A -vv -p- ip

ele deve verificar as portas 1-65535.

Aqui está a documentação do nmap que informa quais portas são verificadas por padrão: http://nmap.org/book/man-port-specification.html

Responder2

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

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

Responder3

Eu não tenho certeza. Está detectando como "aberto", é isso que você quer, certo? Então ééaudição. Por que não está sendo encontrado com -A, não tenho certeza.

Editar - trata-se de documentação antiga que pode não se aplicar à sua versão. Corra man nmape diga-nos qual versão você possui.

Nos documentos, vejo:

"O padrão é verificar todas as portas entre 1 e 1024, bem como todas as portas listadas no arquivo de serviços que vem com o nmap."

Portanto, 789 deve ser verificado, mesmo que você não o tenha em seu arquivo de serviços (já que está rotulado como "desconhecido", tenho certeza que não está).

Assim, não sei. Verifique seu arquivo man para sua versão do nmap, talvez seu comportamento para quais portas verificar usando -A seja 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 verificação padrão. Usuários com root podem fazer varreduras TCP SYN, usuários sem o padrão TCP connect() .

Responder4

O nmap -Aé o comando agressivo, pois irá executar vários scripts em segundo plano e essa é a principal razão pela qual lhe dará mais resultados. Ele combina a detecção de versão -sVcom a detecção do sistema operacional -O(letra O maiúscula e não o número zero) e outros scripts de descoberta. Nmap por padrão e se não for fornecido o número da porta específico irá verificar as primeiras 1000 portas mais comuns(estas são especificadas noserviços nmaparquivo que você pode editar). O comando agressivo pode ser alimentado com as portas que você deseja verificar, para que você não obtenha resultados para outras portas além daquela que deseja verificar, TCP 789

nmap -p 789 -A TARGET_IP_ADDRESS_OR_IP_RANGE

enquanto que se você quiser apenas verificar se a porta, 789 no seu caso, está aberta/fechada/filtrada

nmap -p 789 TARGET_IP_ADDRESS_OR_IP_RANGE

Como -Aexecuta vários scripts e é barulhento (em termos de tráfego de rede), ele é facilmente sinalizado por IDSs e provavelmente será bloqueado por firewalls ou IPSs e esse pode ser um dos motivos pelos quais não fornece o status correto da porta.

informação relacionada