Escaneamento de Rede com Nmap

NmapBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a utilizar o Nmap, uma poderosa ferramenta de escaneamento de rede de código aberto amplamente utilizada por profissionais de segurança. O Nmap ajuda a identificar hosts ativos, portas abertas e serviços em execução dentro de uma rede, fornecendo visibilidade essencial para avaliações de segurança.

Você ganhará experiência prática na realização de varreduras básicas com Nmap, na interpretação dos resultados e na compreensão de diferentes técnicas de escaneamento. Essas habilidades são fundamentais para a análise de segurança de rede, enfatizando sempre a importância de práticas éticas de escaneamento apenas em redes autorizadas.

Instalando o Nmap

Antes de começarmos a explorar redes, precisamos nos equipar com a ferramenta certa. O Nmap (Network Mapper) é um utilitário gratuito e de código aberto que ajuda administradores de rede e profissionais de segurança a descobrir dispositivos em uma rede e identificar serviços disponíveis. Nesta etapa, instalaremos o Nmap em seu sistema.

  1. Primeiro, vamos abrir o terminal. O terminal é onde executaremos todos os nossos comandos do Nmap. Em sistemas Linux, como o nosso ambiente de laboratório, o terminal é a principal forma de interagir com ferramentas de rede. Em sua área de trabalho, localize e abra o Xfce Terminal.
Janela do Xfce Terminal aberta

Nota: Usuários gratuitos não podem se conectar à internet, portanto o Nmap já vem pré-instalado no ambiente do laboratório. Você pode pular para o item 4 da lista (verificar se o Nmap está instalado). Atualize para uma conta pro para praticar a instalação do Nmap por conta própria.

Apenas para Usuários Pro
  1. Assim que o terminal estiver aberto, precisamos atualizar as listas de pacotes. Este é um primeiro passo importante porque garante que nosso sistema conheça as versões mais recentes de software disponíveis. Digite o seguinte comando e pressione Enter:
sudo apt-get update

sudo significa "superuser do" (superusuário faz) e nos concede privilégios administrativos, que são frequentemente necessários para instalar softwares.

  1. Agora que nossas listas de pacotes estão atualizadas, vamos instalar o Nmap. O comando a seguir baixará e instalará o Nmap junto com todas as dependências necessárias:
sudo apt-get install nmap -y

A flag -y confirma automaticamente "sim" para qualquer solicitação de instalação, o que é útil ao executar scripts ou quando você tem certeza de que deseja prosseguir.

  1. Após a conclusão da instalação, devemos verificar se o Nmap foi instalado corretamente. Verificar a versão serve para dois propósitos: confirma que a instalação funcionou e nos diz qual versão estamos usando. Digite:
nmap --version

Você deverá ver uma saída semelhante a esta:

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.6 openssl-3.0.2 nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.10.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

O número da versão pode ser diferente, pois o Nmap é atualizado regularmente com novos recursos e melhorias.

Parabéns! Agora você tem o Nmap instalado e pronto para usar. Pense no Nmap como uma lanterna potente que permite ver o que está acontecendo em sua rede. Ele pode mostrar quais dispositivos estão conectados, quais serviços estão executando e até quais sistemas operacionais estão usando. Essas capacidades tornam o Nmap uma ferramenta essencial tanto para administração de rede quanto para testes de segurança.

Se desejar explorar todas as capacidades do Nmap, você pode digitar man nmap no terminal para visualizar sua página de manual. Esta documentação contém todas as opções e recursos avançados, mas não se sinta sobrecarregado — começaremos com o fundamental neste laboratório e construiremos seu conhecimento passo a passo.

Entendendo Endereços IP

Antes de começarmos a escanear redes, é crucial entender os endereços IP. Pense em um endereço IP como o endereço residencial do seu computador na rede. Assim como um serviço postal precisa do seu endereço residencial para entregar correspondências, outros dispositivos na rede precisam do seu endereço IP para se comunicar com o seu computador.

  1. Um endereço IP é um identificador exclusivo para um dispositivo em uma rede. Ele geralmente se parece com uma série de números separados por pontos, como 192.168.1.1. Esses números variam de 0 a 255, e cada segmento representa parte da hierarquia da rede. A primeira parte identifica a própria rede, enquanto as partes finais identificam dispositivos específicos.
graph LR A[Internet] --- B[Roteador 192.168.1.1] B --- C[PC 192.168.1.10] B --- D[Laptop 192.168.1.11] B --- E[Smartphone 192.168.1.12] B --- F[Smart TV 192.168.1.13] style A fill:#f9f,stroke:#333,stroke-width:4px style B fill:#bbf,stroke:#333,stroke-width:2px style C fill:#dfd,stroke:#333,stroke-width:2px style D fill:#dfd,stroke:#333,stroke-width:2px style E fill:#dfd,stroke:#333,stroke-width:2px style F fill:#dfd,stroke:#333,stroke-width:2px
  1. Para encontrar seu próprio endereço IP, usaremos um comando que mostra informações da interface de rede. Isso é importante porque precisamos saber nosso próprio endereço antes de podermos escanear outros dispositivos na rede. Digite este comando:
ip addr show | grep inet

Vamos detalhar isso passo a passo:

  • ip addr show exibe informações detalhadas sobre todas as interfaces de rede em seu sistema.
  • O símbolo | (chamado de pipe ou cano) pega a saída do primeiro comando e a envia para o comando seguinte.
  • grep inet filtra a saída para mostrar apenas as linhas que contêm "inet", que incluem endereços IP em um formato que podemos ler facilmente.

Você verá uma saída semelhante a esta:

inet 127.0.0.1/8 scope host lo
inet 172.19.0.3/16 brd 172.19.255.255 scope global eth1

Os números após a barra (como /8 e /16) usam a notação CIDR (Classless Inter-Domain Routing). Esta notação indica quantos bits do endereço IP são usados para a parte da rede em comparação com a parte do dispositivo. Por exemplo, /16 significa que os primeiros 16 bits (os dois primeiros números) identificam a rede, enquanto os bits restantes podem ser atribuídos a dispositivos individuais.

  1. Nesta saída, você verá vários endereços IP. Aqui está o que eles significam em termos práticos:

    • 127.0.0.1 é chamado de endereço de "loopback" ou "localhost". Este endereço especial sempre se refere ao seu próprio computador, sendo usado quando um programa precisa se comunicar consigo mesmo.
    • 172.19.0.3 é o endereço de rede real da sua máquina. Este é o endereço que outros dispositivos usariam para enviar dados ao seu computador, semelhante a como o endereço da sua rua identifica sua casa.
  2. Anote o endereço IP que não seja 127.0.0.1 (neste caso, 172.19.0.3). Usaremos este endereço de rede real em nossos exercícios de escaneamento.

Esta notação CIDR é importante para entender quais dispositivos estão em sua rede local versus redes remotas.

Você pode notar alguns endereços começando com "fe80::" — estes são endereços IPv6, a versão mais recente de endereçamento IP projetada para substituir o IPv4. Embora o IPv6 seja cada vez mais importante, a maioria das redes locais ainda utiliza principalmente endereços IPv4 como os que estamos examinando aqui. Para nossos propósitos de escaneamento de rede, focaremos nos endereços IPv4, pois são mais comuns em ambientes de rede local.

Realizando uma Varredura Básica com Nmap

Agora que entendemos os endereços IP e temos o Nmap instalado, vamos realizar nossa primeira varredura de rede. Esta varredura inicial terá como alvo sua própria máquina, que é a maneira mais segura de aprender a funcionalidade básica do Nmap antes de escanear outros sistemas.

  1. Primeiro, usaremos o endereço IP que você identificou na etapa anterior. O comando básico de varredura do Nmap requer apenas o endereço IP de destino. Execute o seguinte comando, substituindo <YOUR_IP> pelo endereço IP que você encontrou:
nmap <YOUR_IP>

Por exemplo, se o seu IP for 172.19.0.3, você executaria:

nmap 172.19.0.3

Este comando diz ao Nmap para escanear as 1000 portas TCP mais comuns no endereço IP especificado. Portas TCP são como portas numeradas em um computador onde os serviços de rede podem se comunicar.

  1. Após executar o comando, o Nmap realizará a varredura e exibirá os resultados. Aqui está uma saída típica que você pode ver:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-24 10:00 CST
Nmap scan report for 336efdcfb776.external (172.19.0.3)
Host is up (0.00017s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
  1. Vamos examinar cada parte desta saída para entender o que o Nmap está nos dizendo:

    • "Starting Nmap 7.80": Mostra a versão do Nmap que está sendo usada. Versões diferentes podem ter recursos ou formatos de saída ligeiramente diferentes.
    • "Host is up (0.00017s latency)": Confirma que a máquina de destino respondeu às solicitações de rede, com o tempo de resposta mostrado em segundos.
    • "Not shown: 998 closed ports": Indica que, das 1000 portas comuns escaneadas, 998 não estavam aceitando conexões.
    • "PORT STATE SERVICE": Lista todas as portas abertas encontradas durante a varredura:
      • 22/tcp open ssh: A porta 22 está aberta executando SSH (Secure Shell), usado para administração remota segura de sistemas.
      • 3001/tcp open nessus: A porta 3001 está aberta executando o que o Nmap acredita ser o Nessus, um scanner de vulnerabilidades.
  2. Esta varredura básica fornece informações valiosas sobre os serviços de rede em execução na sua máquina. Em termos práticos, essas informações ajudam com:

    • Auditoria de segurança, identificando portas abertas desnecessárias que poderiam ser exploradas.
    • Solução de problemas de rede, verificando se os serviços esperados estão disponíveis.
    • Detecção de incidentes, ao notar serviços inesperados que podem indicar um comprometimento.

Lembre-se, o escaneamento de rede deve ser realizado apenas em sistemas que você possui ou para os quais tem permissão explícita para testar. Escanear redes sem autorização pode violar leis e diretrizes éticas. Sempre obtenha as permissões adequadas antes de escanear qualquer sistema que não seja o seu.

Realizando uma Varredura de Detecção de SO

O Nmap não se limita apenas a encontrar portas abertas. Ele também pode tentar determinar o sistema operacional (SO) da máquina de destino. Este recurso é incrivelmente útil para administradores de rede e profissionais de segurança, pois diferentes sistemas operacionais possuem vulnerabilidades diferentes e exigem medidas de segurança distintas.

Antes de começarmos, é importante entender como funciona a detecção de SO. O Nmap envia pacotes especialmente criados para o alvo e analisa as respostas. Cada sistema operacional responde de forma ligeiramente diferente às solicitações de rede, criando uma "impressão digital" (fingerprint) única que o Nmap pode comparar com seu banco de dados.

  1. Para realizar uma varredura de detecção de SO, usamos a flag -O (note que esta é a letra maiúscula 'O', não o número zero). Esta varredura requer privilégios de root porque precisa enviar e analisar pacotes brutos em um nível baixo. Usaremos o sudo para executar este comando. Substitua <YOUR_IP> pelo endereço IP real que você deseja escanear:
sudo nmap -O <YOUR_IP>

Por exemplo, se o seu IP de destino for 172.19.0.3, você executaria:

sudo nmap -O 172.19.0.3
  1. A saída mostrará as portas abertas como uma varredura básica, mas agora incluirá informações do sistema operacional. Aqui está como um resultado típico pode parecer:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-24 10:01 CST
Nmap scan report for 336efdcfb776.external (172.19.0.3)
Host is up (0.000035s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.76 seconds
  1. Vamos examinar detalhadamente as novas informações relacionadas ao SO:

    • "Device type: general purpose": Isso nos diz que o dispositivo é um sistema de computador padrão, em vez de um hardware especializado como um roteador ou dispositivo IoT.
    • "Running: Linux 2.6.X": O palpite principal do Nmap sobre a família e versão do sistema operacional.
    • "OS CPE": Este é um identificador padronizado para a versão do sistema operacional.
    • "OS details": Uma identificação de versão mais específica baseada na correspondência da impressão digital.
  2. Compreender essas informações é valioso para várias aplicações práticas:

    • Profissionais de segurança as utilizam para identificar sistemas potencialmente vulneráveis que precisam de patches.
    • Administradores de rede mantêm inventários precisos de seus dispositivos de rede.
    • Administradores de sistema verificam se as máquinas estão executando os sistemas operacionais esperados.

Lembre-se de que a detecção de SO não é perfeita. Vários fatores podem afetar a precisão:

  • Firewalls podem bloquear as sondagens que o Nmap usa para detecção.
  • Configurações personalizadas de kernel podem não corresponder às impressões digitais padrão.
  • Máquinas virtuais às vezes mostram o SO do host em vez do SO convidado.

Para melhores resultados, combine a detecção de SO com outras técnicas do Nmap e verifique as descobertas através de múltiplos métodos quando possível.

Escaneando um Intervalo de Rede

Em ambientes de rede reais, muitas vezes você precisa escanear vários endereços IP ou segmentos de rede inteiros. Isso é útil para descobrir todos os dispositivos em uma rede, o que é uma tarefa comum para administradores de rede e profissionais de segurança. Vamos tentar escanear um intervalo de rede.

  1. Começaremos escaneando um pequeno intervalo de endereços IP. Este é frequentemente o primeiro passo ao explorar uma rede desconhecida. O comando abaixo escaneia 20 endereços IP consecutivos começando em 172.19.0.1:
nmap 172.19.0.1-20

Este comando diz ao Nmap para verificar sequencialmente cada endereço IP de 172.19.0.1 a 172.19.0.20, relatando quais hosts estão online e quais portas estão abertas.

  1. Agora, vamos escanear uma sub-rede inteira usando a notação CIDR que aprendemos anteriormente. O sufixo /24 significa que estamos escaneando todos os 256 endereços no último octeto. Execute o seguinte comando, substituindo <YOUR_NETWORK> pelo seu endereço de rede:
nmap YOUR_NETWORK /24

Por exemplo:

nmap 172.19.0.0/24

Esta varredura verificará todos os IPs de 172.19.0.0 a 172.19.0.255. A notação /24 é equivalente a uma máscara de sub-rede 255.255.255.0.

  1. Para salvar os resultados da varredura para documentação ou análise posterior, usamos a flag -oN (output normal). Isso cria um arquivo de texto legível por humanos:
nmap 172.19.0.0/24 -oN network_scan.txt

O comando realiza a mesma varredura de sub-rede, mas grava a saída em network_scan.txt no seu diretório de trabalho atual.

  1. Vamos examinar o conteúdo do arquivo de saída:
cat network_scan.txt

A saída mostra informações detalhadas sobre cada host que respondeu. Aqui está um exemplo do que você pode ver:

## Nmap 7.80 scan initiated Fri Sep 27 15:45:29 2024 as: nmap -oN network_scan.txt 172.19.0.0/24
Nmap scan report for iZrj9gvdh5xn02z8rmsn9mZ (172.19.0.1)
Host is up (0.00045s latency).
Not shown: 997 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
111/tcp   open  rpcbind
10010/tcp open  rxapi

Nmap scan report for node_openresty.external (172.19.0.2)
Host is up (0.00047s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
80/tcp open  http

Nmap scan report for 36cff415ddd9.external (172.19.0.3)
Host is up (0.00045s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap scan report for 041bf22f47a1.external (172.19.0.4)
Host is up (0.00050s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap scan report for 2299e8eff7e5.external (172.19.0.5)
Host is up (0.00048s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

## Nmap done at Fri Sep 27 15:45:32 2024 -- 256 IP addresses (5 hosts up) scanned in 3.25 seconds
  1. Vamos detalhar a saída:

    • A varredura cobriu todos os 256 endereços possíveis no intervalo 172.19.0.0/24.
    • Apenas 5 hosts responderam à varredura (estavam "up").
    • Cada entrada de host mostra:
      • Nome do host (se puder ser resolvido) e endereço IP.
      • Medição de latência da rede.
      • Número de portas verificadas (com portas fechadas não mostradas por padrão).
      • Lista de portas abertas com seus serviços associados.
  2. Aplicações práticas do escaneamento de rede incluem:

    • Inventário de rede: Manter uma lista precisa de todos os dispositivos em sua rede.
    • Auditoria de segurança: Identificar dispositivos ou serviços não autorizados.
    • Solução de problemas: Verificar a conectividade da rede e a disponibilidade do serviço.
    • Avaliação de vulnerabilidades: Descobrir serviços potencialmente vulneráveis.

Lembre-se de que o escaneamento de rede deve ser realizado apenas em redes que você possui ou tem permissão explícita para escanear. O escaneamento não autorizado pode violar leis de privacidade ou políticas de uso de rede.

Resumo

Neste laboratório, você aprendeu os fundamentos do escaneamento de rede usando o Nmap, uma ferramenta poderosa para reconhecimento de rede e avaliação de segurança. Você praticou a instalação do Nmap, a realização de varreduras básicas para identificar portas e serviços abertos, a detecção de sistemas operacionais e a exploração de intervalos de rede, gerenciando os resultados das varreduras de forma eficaz.

Essas habilidades formam a base para práticas mais avançadas de segurança de rede. Lembre-se de sempre obter autorização adequada antes de escanear redes e use este conhecimento de forma responsável para aumentar a segurança digital.