Testar a acessibilidade da porta de um host remoto, mesmo que a porta não esteja vinculada a um serviço?

1

Eu preciso verificar se um host remoto é capaz de alcançar uma porta específica. No momento do teste, o serviço vinculado a essa porta será desativado.

Os possíveis problemas que o teste abordaria seriam:

  • A rede permite que o host remoto alcance a porta.
  • O firewall no host (receptor) permite que o host remoto se conecte a essa porta.

Eu tentei o telnet. No entanto telnet retorna código de saída diferente de zero se um serviço não estiver vinculado a essa porta. Quais poderiam ser as opções possíveis?

UPDATE :

Não podemos ter uma maneira nmap para fazer isso? Qualquer saída com o estado filtrado deve significar uma bandeira vermelha.

Comando de amostra: $ nmap -v 120.114.24.56 -P0 -p 8080

Ref: link

Os seis estados portuários reconhecidos pelo Nmap - (os marcados em vermelho devem idealmente ser uma bandeira vermelha para nós)

aberto

Um aplicativo está aceitando ativamente conexões TCP, datagramas UDP ou associações SCTP nessa porta. Encontrar esses é frequentemente o objetivo principal da varredura de portas. Pessoas com mentalidade de segurança sabem que cada porta aberta é uma avenida para o ataque. Os atacantes e pen-testers querem explorar as portas abertas, enquanto os administradores tentam fechar ou protegê-los com firewalls sem frustrar os usuários legítimos. As portas abertas também são interessantes para verificações que não são de segurança porque mostram serviços disponíveis para uso na rede.

fechado

Uma porta fechada é acessível (recebe e responde aos pacotes de sondagem do Nmap), mas não há nenhuma aplicação ouvindo nela. Eles podem ser úteis para mostrar que um host está ativo em um endereço IP (descoberta de host ou verificação de ping) e como parte da detecção do sistema operacional. Como as portas fechadas são alcançáveis, pode valer a pena verificar mais tarde, no caso de alguma abertura. Os administradores podem querer considerar o bloqueio dessas portas com um firewall. Então eles apareceriam no estado filtrado, discutido a seguir.

filtrado

O Nmap não pode determinar se a porta está aberta porque a filtragem de pacotes impede que seus probes atinjam a porta. A filtragem pode ser de um dispositivo de firewall dedicado, regras de roteador ou software de firewall baseado em host. Essas portas frustram os invasores porque eles fornecem pouca informação. Às vezes, eles respondem com mensagens de erro ICMP, como o código 13 do tipo 3 (destino inacessível: comunicação administrativamente proibida), mas os filtros que simplesmente descartam testes sem responder são muito mais comuns. Isso força o Nmap a tentar novamente várias vezes, caso a sonda tenha sido descartada devido ao congestionamento da rede, e não à filtragem. Isso diminui a velocidade drasticamente.

não filtrada

O estado não filtrado significa que uma porta está acessível, mas o Nmap não consegue determinar se está aberto ou fechado. Apenas a varredura ACK, que é usada para mapear conjuntos de regras de firewall, classifica as portas nesse estado. A varredura de portas não filtradas com outros tipos de varredura, como varredura de janela, varredura de SYN ou varredura FIN, pode ajudar a resolver se a porta está aberta.

aberto | filtrado

O Nmap coloca as portas nesse estado quando não é possível determinar se uma porta está aberta ou filtrada. Isso ocorre para tipos de varredura nos quais as portas abertas não fornecem resposta. A falta de resposta também pode significar que um filtro de pacotes descartou a sonda ou qualquer resposta que ela provocou. Portanto, o Nmap não sabe ao certo se a porta está aberta ou sendo filtrada. As varreduras UDP, protocolo IP, FIN, NULL e Xmas classificam as portas dessa maneira.

fechado | filtrado

Este estado é usado quando o Nmap é incapaz de determinar se uma porta é fechada ou filtrada. Ele é usado apenas para a varredura ociosa do ID do IP.

    
por SHOUBHIK BOSE 20.10.2014 / 06:46

2 respostas

2

Isso é difícil (se não impossível) dependendo do seu acesso aos recursos.

Se for um servidor baseado em Unix, eu rodaria o tcpdump no servidor (de forma que ele apenas ouça o tráfego na porta em que você está interessado) e tente conectar-se a ele via Telnet. O Telnet irá, é claro, falhar, mas pelo menos você deve ver a tentativa do servidor de entrada através do tcpdump [mesmo que apenas o tráfego de entrada, já que não há nada para responder]. Isso significaria que o tráfego está chegando à caixa - isso não significa que não há um firewall na caixa impedindo que um programa funcione naturalmente.

    
por 20.10.2014 / 08:35
0

Se nada estiver escutando no servidor, normalmente eu simplesmente inicio um serviço na porta. No entanto, firewalls modernos podem usar a inspeção de pacotes, portanto, não há garantia de que o que você deseja ouvir na porta funcionará.

Você pode fazer isso com nc como (por exemplo, para TCP na porta 6667)

nc -l 6667

Em seguida, tente telnet ou nc no final do envio. Se você não tiver nc, poderá criar um listener de soquete simples com perl e, por exemplo, IO :: Socket :: Inet, ou com python ou powershell, dependendo da plataforma.

Para o UDP, você pode usar nc com o sinalizador -u, mas isso não pode ser verificado com o telnet, mas o nc também funciona no envio.

    
por 20.10.2014 / 21:46