Descoberta Avançada de Hosts com Nmap

NmapBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a realizar descoberta avançada de hosts usando o Nmap. A descoberta de hosts é o processo de identificar dispositivos ativos em uma rede. Esta é uma etapa crucial inicial na reconciliação de rede, ajudando você a entender a estrutura da rede e identificar potenciais alvos para análise posterior.

Você explorará várias técnicas do Nmap, incluindo:

  • Varredura de Ping TCP (-PS): Enviando pacotes TCP SYN para portas específicas para determinar se um host está online e se essas portas estão abertas.
  • Varredura de Ping UDP (-PU): Enviando pacotes UDP para portas específicas, frequentemente usada quando pings TCP são bloqueados, para inferir o estado do host com base nas respostas ou falta delas.
  • Ignorar Varredura de Ping (-Pn): Ignorar a fase padrão de descoberta de hosts do Nmap, forçando-o a assumir que todos os hosts de destino estão online e prosseguir diretamente para a varredura de portas.
  • Combinando Técnicas: Aproveitando vários métodos de descoberta para aumentar a confiabilidade da detecção de hosts, especialmente em ambientes de rede complexos com firewalls.
  • Salvar e Analisar Resultados: Armazenar a saída do Nmap em um arquivo para revisão posterior e usar comandos básicos do Linux para extrair informações valiosas dos resultados da varredura.

Ao longo do laboratório, você executará comandos como nmap -PS2222,8080 127.0.0.1 para varreduras de ping TCP, nmap -PU5353 127.0.0.1 para ping UDP e nmap -Pn -oN hosts.txt 127.0.0.1 para salvar os resultados. Esses exercícios práticos aprimorarão sua compreensão das capacidades de descoberta de hosts do Nmap e o prepararão para tarefas de reconciliação de rede do mundo real.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Utilizar Ping TCP em Portas Específicas com nmap -PS

Neste passo, você aprenderá a usar o Nmap para realizar uma varredura de ping TCP em portas específicas de um host de destino. Esta técnica é útil para determinar se um host está online e se serviços específicos estão em execução nessas portas, especialmente quando pings ICMP tradicionais são bloqueados por firewalls.

Compreendendo Ping TCP:
Ao contrário de um ping ICMP tradicional, um ping TCP envia um pacote TCP SYN para uma porta especificada no host de destino.

  • Se a porta estiver aberta, o host de destino geralmente responderá com um pacote SYN/ACK.
  • Se a porta estiver fechada, o host de destino geralmente responderá com um pacote RST.
  • Se a porta estiver filtrada (por exemplo, por um firewall), pode não haver resposta alguma.

O Nmap usa essas respostas (ou a falta delas) para determinar se um host está online e o estado das portas especificadas. A opção -PS no Nmap é usada para realizar uma varredura de ping TCP SYN. Você pode especificar uma ou mais portas para varrer usando uma lista separada por vírgula.

Para este laboratório, o script de configuração configurou vários serviços em sua máquina local (127.0.0.1). Nós visaremos o serviço SSH em execução na porta 2222 e o servidor web Nginx na porta 8080.

Abra seu terminal na VM LabEx. Seu diretório padrão é ~/project. Execute o seguinte comando:

nmap -PS2222,8080 127.0.0.1

Este comando instrui o Nmap a enviar pacotes TCP SYN para as portas 2222 e 8080 do host 127.0.0.1.

Você deve ver uma saída semelhante à seguinte, indicando que o host está ativo e as portas especificadas estão abertas:

Iniciando o Nmap 7.80 ( https://nmap.org ) em YYYY-MM-DD HH:MM CST
Relatório de varredura Nmap para localhost (127.0.0.1)
O host está ativo (latência de 0.000085s).
Não mostrado: 995 portas fechadas
PORTA     ESTADO SERVIÇO
22/tcp   aberto  ssh
2121/tcp aberto  ccproxy-ftp
2222/tcp aberto  EtherNetIP-1
3001/tcp aberto  nessus
8080/tcp aberto  http-proxy

Nmap concluído: 1 endereço IP (1 host ativo) varrido em 0.05 segundos

Neste exemplo, o Nmap reporta que o host 127.0.0.1 está ativo e que as portas 2222 (SSH) e 8080 (proxy HTTP) estão abertas. Se uma porta estivesse fechada, a saída mostraria "fechado" em vez de "aberto". Se o host estivesse inativo ou inacessível, o Nmap reportaria "Host inativo".

Executar Ping UDP com nmap -PU

Neste passo, você aprenderá a usar o Nmap para realizar uma varredura de ping UDP em uma porta específica de um host de destino. Essa técnica é particularmente útil para a descoberta de hosts quando o ping TCP é bloqueado por firewalls ou quando se suspeita que um host possua apenas serviços UDP em execução.

Compreendendo Ping UDP:
Ao contrário do ping TCP, que espera uma resposta SYN/ACK ou RST, um ping UDP envia um pacote UDP para uma porta especificada.

  • Se a porta estiver aberta, o host de destino pode não responder (pois muitos serviços UDP não enviam respostas a menos que uma solicitação específica seja feita).
  • Se a porta estiver fechada, o host de destino geralmente responderá com um erro ICMP "porta inacessível".
  • Se a porta estiver filtrada, não haverá resposta.

O Nmap utiliza a presença ou ausência de uma resposta (ou o tipo de resposta) para determinar se um host está online. A opção -PU no Nmap é usada para realizar uma varredura de ping UDP. Você deve especificar a porta a ser verificada. Neste laboratório, visaremos o serviço DNS em execução na porta 5353 em sua máquina local (127.0.0.1).

Observação Importante: As varreduras de ping UDP exigem privilégios de root para ler as respostas de rede brutas. Você precisará usar sudo com o comando nmap.

Abra seu terminal na VM LabEx. Seu diretório padrão é ~/project. Execute o seguinte comando:

sudo nmap -PU5353 127.0.0.1

Este comando instrui o Nmap a enviar um pacote UDP para a porta 5353 do host 127.0.0.1.

Você deve ver uma saída semelhante à seguinte:

Iniciando o Nmap 7.80 ( https://nmap.org ) em YYYY-MM-DD HH:MM CST
Relatório de varredura Nmap para localhost (127.0.0.1)
O host está ativo (latência de 0.0000040s).
Não mostrado: 995 portas fechadas
PORTA     ESTADO SERVIÇO
22/tcp   aberto  ssh
2121/tcp aberto  ccproxy-ftp
2222/tcp aberto  EtherNetIP-1
3001/tcp aberto  nessus
8080/tcp aberto  http-proxy

Nmap concluído: 1 endereço IP (1 host ativo) varrido em 0.09 segundos

Neste exemplo, o Nmap reporta que o host 127.0.0.1 está ativo. Note que, ao usar o ping UDP para descoberta de hosts, o Nmap ainda executa sua varredura de porta padrão após determinar que o host está ativo, razão pela qual você vê as portas TCP listadas na saída. O ping UDP teve sucesso em detectar que o host está online.

Pular Ping com nmap -Pn

Neste passo, você aprenderá a usar a opção -Pn no Nmap para pular o ping de descoberta de host. Isso é particularmente útil quando você deseja escanear um host sem primeiro verificar se ele está online. Isso pode ser útil em situações onde métodos tradicionais de ping (como ICMP ou até mesmo pings TCP/UDP) são bloqueados por um firewall, ou quando você simplesmente deseja economizar tempo assumindo que o host está ativo.

Entendendo -Pn:
Normalmente, o Nmap executa uma fase de descoberta de host antes de escanear portas. Isso envolve enviar vários tipos de sondagens (solicitações de eco ICMP, pacotes TCP SYN, pacotes UDP, etc.) para determinar se o host de destino está online. Se o Nmap determinar que o host está inativo, ele irá pular a fase de varredura de portas para esse host.

A opção -Pn instrui o Nmap a pular completamente essa fase de descoberta de host e tratar todos os hosts de destino como se estivessem online. Isso significa que o Nmap prosseguirá diretamente para a fase de varredura de portas, independentemente de o host responder a quaisquer sondagens de ping.

Vamos tentar um exemplo. Usaremos o Nmap com a opção -Pn para escanear o endereço localhost 127.0.0.1.

Abra seu terminal na VM LabEx. Seu diretório padrão é ~/project. Execute o seguinte comando:

nmap -Pn 127.0.0.1

Este comando instrui o Nmap a pular o ping de descoberta de host e escanear as portas de 127.0.0.1.

Você deve ver uma saída semelhante à seguinte, mostrando várias portas abertas em sua máquina local, incluindo aquelas configuradas pelo ambiente de laboratório:

Iniciando o Nmap 7.80 ( https://nmap.org ) em YYYY-MM-DD HH:MM CST
Relatório de varredura Nmap para localhost (127.0.0.1)
O host está ativo (latência de 0.000098s).
Não mostrado: 995 portas fechadas
PORTA     ESTADO SERVIÇO
22/tcp   aberto  ssh
2121/tcp aberto  ccproxy-ftp
2222/tcp aberto  EtherNetIP-1
3001/tcp aberto  nessus
8080/tcp aberto  http-proxy

Nmap concluído: 1 endereço IP (1 host ativo) varrido em 0.05 segundos

Neste exemplo, o Nmap reporta que o host 127.0.0.1 está ativo e mostra as portas abertas. Mesmo que o ping ICMP ou outros métodos de descoberta de host estivessem bloqueados no sistema, o Nmap ainda tentaria escanear as portas devido à opção -Pn.

É importante notar que o uso da opção -Pn pode levar a tempos de varredura mais longos se você direcionar muitos hosts, pois o Nmap tentará escanear as portas em cada endereço IP especificado, mesmo que muitos deles estejam realmente offline.

Combinar Técnicas para Descoberta de Host

Neste passo, você aprenderá a combinar técnicas de ping TCP e UDP no Nmap para descobrir hosts ativos. Combinar técnicas pode aumentar significativamente a confiabilidade da descoberta de hosts, especialmente ao lidar com firewalls ou outras medidas de segurança de rede que possam bloquear um tipo de sondagem, mas não outro.

Como você aprendeu em passos anteriores:

  • -PS é usado para ping TCP SYN.
  • -PU é usado para ping UDP (requer privilégios de root).

Combinando essas opções, o Nmap enviará pacotes TCP SYN para uma porta TCP especificada e pacotes UDP para uma porta UDP especificada. Se qualquer dessas sondagens receber uma resposta, o Nmap considerará o host ativo. Isso fornece uma maneira mais robusta de detectar hosts ativos.

Neste exemplo, usaremos o Nmap para enviar um pacote TCP SYN para a porta 2222 (SSH) e um pacote UDP para a porta 5353 (DNS) em sua máquina local (127.0.0.1).

Abra seu terminal na VM LabEx. Seu diretório padrão é ~/project. Execute o seguinte comando:

sudo nmap -PS2222 -PU5353 127.0.0.1

Este comando instrui o Nmap a realizar as seguintes ações:

  • -PS2222: Enviar um pacote TCP SYN para a porta 2222 do host de destino.
  • -PU5353: Enviar um pacote UDP para a porta 5353 do host de destino.
  • 127.0.0.1: Escanear o host local.

Você deve ver uma saída semelhante à seguinte:

Iniciando o Nmap 7.80 ( https://nmap.org ) em YYYY-MM-DD HH:MM CST
Relatório de varredura Nmap para localhost (127.0.0.1)
O host está ativo (latência de 0.0000040s).
Não mostrado: 995 portas fechadas
PORTA     ESTADO SERVIÇO
22/tcp   aberto  ssh
2121/tcp aberto  ccproxy-ftp
2222/tcp aberto  EtherNetIP-1
3001/tcp aberto  nessus
8080/tcp aberto  http-proxy

Nmap concluído: 1 endereço IP (1 host ativo) varrido em 0.10 segundos

Neste exemplo, o Nmap reporta que o host 127.0.0.1 está ativo. O Nmap determinou isso recebendo uma resposta para o pacote TCP SYN enviado para a porta 2222 ou o pacote UDP enviado para a porta 5353. Após confirmar que o host está ativo por meio das sondagens de ping, o Nmap prossegue com sua varredura de porta padrão, mostrando as portas TCP abertas.

Combinar técnicas como esta geralmente é mais eficaz do que usar um único método, pois aumenta as chances de contornar firewalls ou outras medidas de segurança que possam bloquear um tipo de sondagem, mas não outro, levando a resultados mais precisos na descoberta de hosts.

Salvar Resultados de Descoberta em um Arquivo

Neste passo, você aprenderá como salvar os resultados de varredura do Nmap em um arquivo usando a opção -oN. Salvar os resultados de varredura é crucial para documentar suas descobertas, realizar análises posteriores ou compartilhar informações com outras pessoas.

A opção -oN instrui o Nmap a salvar os resultados da varredura em um formato "normal" no arquivo especificado. O formato normal é um arquivo de texto legível por humanos, fácil de visualizar e analisar.

Neste exemplo, usaremos o Nmap para escanear o host 127.0.0.1, pular o ping de descoberta de host (-Pn) e salvar os resultados em um arquivo chamado hosts.txt em seu diretório ~/project.

Abra seu terminal na VM LabEx. Seu diretório padrão é ~/project. Execute o seguinte comando:

nmap -Pn -oN hosts.txt 127.0.0.1

Este comando instrui o Nmap a realizar as seguintes ações:

  • -Pn: Pular o ping de descoberta de host (assumir que o host está ativo).
  • -oN hosts.txt: Salvar os resultados da varredura no formato normal no arquivo hosts.txt.
  • 127.0.0.1: Escanear o host 127.0.0.1.

Após a varredura ser concluída, você pode visualizar o conteúdo do arquivo hosts.txt usando o comando cat:

cat hosts.txt

Você deve ver uma saída semelhante à seguinte, que inclui a versão do Nmap, a hora da varredura, o status do host e as portas abertas:

## Nmap 7.80 scan iniciado Ter 3 Jun 10:50:49 2025 as: nmap -Pn -oN hosts.txt 127.0.0.1
Relatório de varredura Nmap para localhost (127.0.0.1)
O host está ativo (latência de 0.000089s).
Não mostrado: 995 portas fechadas
PORTA     ESTADO SERVIÇO
22/tcp   aberto  ssh
2121/tcp aberto  ccproxy-ftp
2222/tcp aberto  EtherNetIP-1
3001/tcp aberto  nessus
8080/tcp aberto  http-proxy

## Nmap concluído em Ter 3 Jun 10:50:49 2025 -- 1 endereço IP (1 host ativo) varrido em 0.05 segundos

O arquivo hosts.txt agora contém os resultados da varredura do Nmap em um formato legível por humanos. Você pode usar este arquivo para documentação, relatórios ou análises adicionais com comandos básicos do Linux, como grep, para extrair informações específicas sobre hosts e serviços descobertos.

Resumo

Neste laboratório, você aprendeu a realizar descoberta avançada de hosts usando o Nmap. Começou compreendendo e aplicando opções específicas do Nmap para descoberta de hosts:

  • Varredura de Ping TCP (-PS): Usou nmap -PS2222,8080 127.0.0.1 para identificar hosts ativos e portas TCP abertas.
  • Varredura de Ping UDP (-PU): Executou sudo nmap -PU5353 127.0.0.1 para descobrir hosts usando sondagens UDP, o que é útil quando o TCP está restrito.
  • Pular Varredura de Ping (-Pn): Aprendeu a forçar o Nmap a escanear hosts sem descoberta prévia de host usando nmap -Pn 127.0.0.1, essencial para ambientes com firewalls.
  • Combinando Técnicas: Combinou varreduras de ping TCP e UDP com sudo nmap -PS2222 -PU5353 127.0.0.1 para obter uma detecção de host mais confiável.

Além disso, você adquiriu habilidades práticas na gestão da saída do Nmap:

  • Salvar Resultados: Salvou os resultados da varredura em um arquivo legível por humanos usando nmap -Pn -oN hosts.txt 127.0.0.1.

Ao dominar essas técnicas do Nmap, você está agora melhor equipado para realizar reconhecimento de rede eficaz, identificar dispositivos ativos e coletar informações cruciais para avaliações de segurança ou tarefas de administração de rede. Os arquivos de saída salvos podem ser analisados ainda mais usando ferramentas padrão de processamento de texto Linux para relatórios e documentação detalhados.