Use o Nmap para Escanear e Documentar Serviços de Rede

NmapBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o Nmap, uma poderosa ferramenta de varredura de rede, para descobrir e analisar serviços em execução em uma rede. O Nmap é uma ferramenta crucial para administradores de rede e profissionais de segurança, comumente usada para descoberta de rede e auditoria de segurança.

As habilidades que você adquirirá incluem a configuração de um servidor web básico, o uso do Nmap para escanear e detectar serviços, a interpretação dos resultados da varredura e a documentação eficaz de suas descobertas. Este conhecimento é fundamental para a avaliação da segurança da rede e é amplamente aplicado em cenários do mundo real para identificar potenciais vulnerabilidades do sistema.

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 intermediário com uma taxa de conclusão de 72%. Recebeu uma taxa de avaliações positivas de 97% dos estudantes.

Configurando um Servidor Web

Nesta etapa, vamos configurar um servidor web básico em sua máquina local. Por que precisamos fazer isso? Bem, este servidor web atuará como um alvo para sua prática de varredura com Nmap mais tarde. O Nmap é uma ferramenta poderosa para exploração de rede e auditoria de segurança, e ter um servidor web local para escanear o ajudará a entender como ele funciona em um ambiente seguro e controlado.

O que é um Servidor Web?

Um servidor web é um software que desempenha um papel crucial na web. Quando você abre um site em seu navegador, é o servidor web que envia o conteúdo da web, como páginas HTML, imagens ou vídeos, para seu navegador em resposta à sua solicitação. Para este laboratório, aproveitaremos a funcionalidade integrada do Python para criar um servidor HTTP simples. HTTP (Hypertext Transfer Protocol) é a base da comunicação de dados na web, e usar o servidor integrado do Python é uma maneira rápida e fácil de colocar um servidor web em funcionamento.

Criando Seu Diretório Web e Conteúdo

  1. Primeiro, precisamos abrir um terminal. Um terminal é uma interface baseada em texto que permite que você interaja com o sistema operacional do seu computador digitando comandos. Depois de abrir o terminal, você navegará até o diretório do seu projeto. Navegar no terminal significa mover-se pelo sistema de arquivos do seu computador. Use o seguinte comando para ir para o diretório do projeto:

    cd /home/labex/project
  2. Agora, criaremos um novo diretório para o conteúdo do seu servidor web. Um diretório é como uma pasta em seu computador onde você pode armazenar arquivos. Usamos o comando mkdir para criar um novo diretório. A flag -p é importante aqui. Ela garante que, se os diretórios pai (os diretórios que contêm o diretório que você está criando) não existirem, eles serão criados para você. Execute o seguinte comando:

    mkdir -p services
  3. Depois de criar o diretório, precisamos entrar nele. Assim como você abriria uma pasta em sua área de trabalho, usamos o comando cd para entrar no diretório recém-criado:

    cd services
  4. Em seguida, criaremos um arquivo HTML simples. HTML (Hypertext Markup Language) é a linguagem padrão para criar páginas web. Este arquivo será servido pelo seu servidor web. O seguinte comando cria um arquivo chamado index.html e coloca o texto "Welcome to the mini fortress" dentro dele:

    echo "Welcome to the mini fortress" > index.html
  5. Finalmente, iniciaremos um servidor HTTP Python na porta 8000. Uma porta é como uma porta em seu computador pela qual o tráfego de rede pode entrar ou sair. A porta 8000 é uma porta comumente usada para testar servidores web. O seguinte comando usa o módulo de servidor HTTP integrado do Python para iniciar o servidor web:

    python3 -m http.server 8000

    Depois de executar este comando, você deverá ver uma saída semelhante a:

    Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

    Isso significa que seu servidor web está em execução e está pronto para atender às solicitações.

Verificando Seu Servidor Web

Para garantir que seu servidor web esteja funcionando corretamente, precisamos abrir uma nova janela de terminal. Mantenha a primeira janela do terminal em execução porque ela está atualmente ocupada pelo processo do servidor web. Se você fechá-la, o servidor web será interrompido.

  1. Abra uma nova janela de terminal.

  2. Agora, usaremos o comando curl para acessar seu servidor web. curl é uma ferramenta de linha de comando que permite transferir dados de ou para um servidor. Execute o seguinte comando:

    curl http://localhost:8000

    Se tudo estiver funcionando corretamente, você deverá ver a mensagem: Welcome to the mini fortress

    Isso confirma que seu servidor web está em execução e acessível.

O servidor web que você acabou de configurar continuará em execução na primeira janela do terminal. Mantenha esta janela aberta e o servidor em execução para as próximas etapas. Todos os comandos subsequentes devem ser executados na nova janela do terminal que você acabou de abrir.

Escaneando Serviços com Nmap

Nesta etapa, usaremos uma ferramenta poderosa chamada Nmap para escanear e detectar o serviço de servidor web que você configurou na etapa anterior. A varredura de serviços é uma parte importante da segurança cibernética porque nos ajuda a entender quais serviços estão em execução em uma rede e se eles podem ser vulneráveis a ataques.

Entendendo o Nmap

Nmap, que significa Network Mapper (Mapeador de Rede), é um utilitário de código aberto e gratuito. Ele é amplamente usado para descoberta de rede e auditoria de segurança. O Nmap funciona enviando pacotes IP brutos para os hosts de destino em uma rede. Com base nas respostas que recebe, ele pode descobrir várias coisas importantes:

  • Primeiro, ele pode nos dizer quais hosts estão disponíveis na rede. Um host pode ser um computador, um servidor ou qualquer dispositivo conectado à rede.
  • Segundo, ele pode determinar quais serviços esses hosts estão oferecendo. Os serviços podem incluir coisas como servidores web, servidores de e-mail ou serviços de compartilhamento de arquivos.
  • Terceiro, ele pode até identificar quais sistemas operacionais os hosts estão executando. Isso é útil porque diferentes sistemas operacionais podem ter diferentes vulnerabilidades de segurança.
  • E existem muitas outras características que o Nmap pode descobrir sobre os hosts na rede.

Executando uma Varredura de Serviço Básica

  1. Antes de iniciarmos a varredura, precisamos garantir que estamos no diretório do projeto. O diretório do projeto é onde todos os arquivos relevantes para este experimento são armazenados. Para navegar até o diretório do projeto, usamos o comando cd no terminal.

    cd /home/labex/project
  2. Agora, vamos executar uma varredura de serviço Nmap em nosso servidor web local. O servidor web local está em execução em nossa própria máquina, e usaremos o Nmap para descobrir qual serviço está em execução na porta 8000.

    sudo nmap -sV localhost -p 8000

    Vamos detalhar este comando para entender o que cada parte faz:

    • sudo: Isso é usado para executar o comando com privilégios administrativos. Algumas operações no sistema exigem direitos administrativos, e o Nmap pode precisar desses direitos para realizar uma varredura adequada.
    • nmap: Esta é a ferramenta de mapeamento de rede sobre a qual estamos falando. É o comando principal que usamos para realizar a varredura.
    • -sV: Esta opção habilita a detecção de versão. Ela ajuda o Nmap a identificar qual serviço específico está em execução na porta de destino.
    • localhost: Este é o alvo que queremos escanear. Neste caso, é nossa máquina local.
    • -p 8000: Esta opção especifica que queremos escanear a porta 8000. As portas são como portas em um computador, e diferentes serviços usam portas diferentes para se comunicar.

    Após executar o comando, você deverá ver uma saída semelhante a esta:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-01 12:00 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000094s latency).
    
    PORT     STATE SERVICE VERSION
    8000/tcp open  http    Python/3.10 http.server
    
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 6.31 seconds

    A saída mostra que o Nmap detectou um serviço HTTP em execução na porta 8000. Especificamente, ele identificou o serviço como um servidor HTTP Python 3.10.

  3. Para manter um registro dos resultados da varredura para análise posterior, salvaremos a saída em um arquivo. Dessa forma, podemos consultar os resultados mais tarde e procurar quaisquer possíveis problemas de segurança.

    sudo nmap -sV localhost -p 8000 > /home/labex/project/nmap_service_detection.txt

    Este comando executa a mesma varredura Nmap que antes, mas, em vez de mostrar a saída no terminal, ele redireciona a saída para um arquivo chamado nmap_service_detection.txt.

  4. Agora, vamos visualizar o conteúdo do arquivo salvo para garantir que os resultados estejam lá. Usamos o comando cat para exibir o conteúdo de um arquivo no terminal.

    cat /home/labex/project/nmap_service_detection.txt

    O conteúdo que você vê deve corresponder à saída que você viu anteriormente ao executar o comando Nmap diretamente.

Entendendo a Saída do Nmap

Vamos dar uma olhada mais de perto na saída da sua varredura Nmap para entender o que cada parte significa:

  • Starting Nmap 7.80: Esta linha indica a versão do Nmap que está sendo usada. Diferentes versões do Nmap podem ter diferentes recursos e capacidades.
  • Host is up: Isso mostra que o destino (neste caso, nossa máquina local) está respondendo às solicitações de rede. Se o host estivesse inativo, o Nmap não conseguiria obter nenhuma informação dele.
  • PORT: Esta coluna lista o número da porta que foi escaneada. Em nosso caso, é a porta 8000.
  • STATE: Isso mostra o status da porta. Pode ser aberta, fechada ou filtrada. Uma porta aberta significa que um serviço está ouvindo nessa porta e aceitando conexões.
  • SERVICE: Isso identifica o serviço em execução na porta. Em nossa saída, é um serviço HTTP.
  • VERSION: Isso mostra detalhes sobre a versão do serviço. Aqui, ele nos diz que o serviço HTTP é um http.server Python 3.10.

Esta informação é crucial para avaliações de segurança. Ao saber quais serviços estão expostos em uma rede, podemos verificar se eles têm alguma vulnerabilidade conhecida. Se esses serviços não forem devidamente protegidos, eles podem ser explorados por invasores.

Documentando suas Descobertas

Nesta etapa, vamos nos concentrar em documentar as informações do serviço que você descobriu usando o Nmap. A documentação é como um mapa no mundo do trabalho de segurança. É crucial porque permite que você registre todos os detalhes importantes que encontra durante suas varreduras. Este registro pode ser consultado posteriormente para análise, para ver como as coisas mudaram ao longo do tempo ou para atender a certos requisitos de conformidade.

A Importância da Documentação

Em avaliações de segurança profissional e auditorias de rede, a documentação detalhada desempenha vários papéis importantes:

  • Instantâneo de Sistemas e Serviços: Cria um registro de quais sistemas e serviços estavam presentes em um ponto específico no tempo. Isso é útil para entender o estado de sua rede em um determinado momento.
  • Acompanhamento de Mudanças: Ajuda você a acompanhar quaisquer mudanças na infraestrutura de rede. Ao comparar a documentação de diferentes momentos, você pode identificar facilmente novos serviços, sistemas removidos ou outras alterações.
  • Evidência de Conformidade: Fornece evidências de que você conduziu verificações de segurança adequadas, o que é frequentemente exigido por vários regulamentos e padrões.
  • Planejamento de Melhorias: Serve como referência ao planejar melhorias de segurança. Você pode consultar as descobertas documentadas para identificar áreas que precisam de atenção.

Criando um Arquivo de Documentação

Primeiro, você precisa garantir que está no diretório do projeto. É aqui que criaremos e armazenaremos nosso arquivo de documentação. Para fazer isso, use o comando cd, que significa "change directory" (mudar diretório).

cd /home/labex/project

Etapa 2: Crie um Novo Arquivo

Agora, criaremos um novo arquivo para documentar nossas descobertas. Usaremos o comando touch. Se o arquivo não existir, touch criará um arquivo vazio com o nome especificado.

touch nmap_findings.txt

Etapa 3: Adicione um Cabeçalho Descritivo

Em seguida, adicionaremos um cabeçalho descritivo ao nosso arquivo de documentação. Este cabeçalho fornecerá algum contexto aos resultados da varredura que estamos prestes a adicionar. Usaremos o comando echo para imprimir o texto e o operador >> para anexá-lo ao arquivo. O operador >> é importante porque adiciona o texto ao final do arquivo sem substituir o que já está lá.

echo "Nmap has detected the following service running on localhost, port 8000:" >> nmap_findings.txt

Etapa 4: Adicione os Resultados Detalhados da Varredura

Agora, adicionaremos os resultados detalhados da varredura Nmap à nossa documentação. Executaremos a varredura Nmap novamente e usaremos o operador >> para anexar os resultados ao nosso arquivo.

nmap -sV localhost -p 8000 >> nmap_findings.txt

Etapa 5: Revise Sua Documentação

Finalmente, vamos revisar a documentação concluída. Usaremos o comando cat, que significa "concatenate" (concatenar), para exibir o conteúdo do arquivo.

cat nmap_findings.txt

Seu arquivo agora deve conter um cabeçalho e os resultados completos da varredura Nmap, semelhante a:

Nmap has detected the following service running on localhost, port 8000:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-01 12:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).

PORT     STATE SERVICE VERSION
8000/tcp open  http    Python/3.10 http.server

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.31 seconds

Melhores Práticas para Documentação de Segurança

Ao documentar as descobertas de segurança em cenários do mundo real, existem vários elementos importantes que você deve considerar incluir:

  1. Data e Hora da Avaliação: Isso ajuda você a acompanhar quando a varredura foi conduzida, o que é útil para entender a linha do tempo das mudanças em sua rede.
  2. Ferramentas Usadas (incluindo Números de Versão): Saber quais ferramentas foram usadas e suas versões é importante para a reprodutibilidade e para entender os recursos da varredura.
  3. Escopo da Avaliação: Defina claramente o que foi testado. Isso pode incluir endereços IP, portas ou sistemas específicos.
  4. Descobertas Detalhadas com Evidências: Forneça o máximo de detalhes possível sobre as descobertas, juntamente com qualquer evidência para apoiá-las.
  5. Implicações Potenciais de Segurança: Analise as descobertas e identifique quaisquer riscos ou vulnerabilidades de segurança potenciais.
  6. Recomendações para Melhorias: Com base nas descobertas, sugira etapas para melhorar a segurança da rede.

Para este laboratório, criamos um documento simples com os resultados da varredura, mas em contextos profissionais, a documentação seria tipicamente mais abrangente.

Resumo

Neste laboratório, você aprendeu habilidades essenciais para descoberta e documentação de serviços de rede usando o Nmap. Essas habilidades são a base das práticas de avaliação de segurança de rede usadas por profissionais em todo o mundo.

Os principais pontos incluem a configuração de um servidor web básico, o uso do Nmap para detectar serviços em execução, a interpretação dos resultados da varredura e a documentação das descobertas. Essas habilidades são aplicáveis em cenários do mundo real, como inventário de rede, avaliações de segurança, administração de sistemas e verificação de conformidade. À medida que você avança em rede e segurança, o Nmap será uma ferramenta inestimável. Considere explorar os recursos avançados do Nmap para aprimorar suas capacidades de descoberta de rede.