Use Nmap para Escanear Portas de Rede Comuns

NmapBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o Nmap para escanear portas de rede comuns. A varredura de portas (port scanning) é uma técnica crucial em segurança de rede, que ajuda a identificar portas abertas em um sistema alvo. Essas portas abertas podem ser potenciais pontos de entrada para atacantes, tornando-se uma habilidade essencial para administradores de rede e profissionais de segurança.

Ao dominar o Nmap, uma poderosa ferramenta de varredura de rede de código aberto (open-source), você pode descobrir serviços ativos em uma rede, avaliar vulnerabilidades de segurança e manter a integridade de seus sistemas.

Entendendo Portas de Rede e Instalando um Servidor Web

Antes de começarmos a varrer portas, é crucial entender o que são portas de rede e por que elas são significativas no campo da segurança cibernética. As portas de rede desempenham um papel vital ao possibilitar a comunicação entre diferentes aplicativos e serviços dentro de uma rede de computadores. Elas atuam como gateways que permitem que os dados entrem e saiam de um sistema, tornando-as um conceito essencial para qualquer pessoa interessada em segurança de rede.

O que são Portas de Rede?

As portas de rede são pontos finais virtuais para comunicação em uma rede de computadores. Pense nelas como portas pelas quais diferentes aplicativos e serviços podem enviar e receber dados. Elas permitem que vários aplicativos e serviços compartilhem recursos de rede no mesmo sistema sem interferir uns com os outros. As portas são identificadas por números que variam de 0 a 65535, e diferentes faixas desses números são designadas para propósitos específicos:

  • Portas 0 - 1023: São portas bem conhecidas (well-known ports) reservadas para serviços padrão. Por exemplo, HTTP (usado para navegação na web) normalmente usa a porta 80, FTP (para transferência de arquivos) usa a porta 21 e SSH (para acesso remoto seguro) usa a porta 22.
  • Portas 1024 - 49151: São portas registradas para aplicativos específicos. Os desenvolvedores de software podem registrar um número de porta específico para que seu aplicativo use.
  • Portas 49152 - 65535: São portas dinâmicas ou privadas. Elas são usadas por aplicativos quando precisam estabelecer uma conexão temporária.

Configurando um Servidor Web para Varredura

Para praticar a varredura de portas, primeiro configuraremos um servidor web em nossa máquina local. Um servidor web é um programa que usa HTTP (Hypertext Transfer Protocol) para servir arquivos que formam páginas da web aos usuários. Quando um usuário digita um endereço de site em seu navegador, o navegador envia uma solicitação ao servidor web, e o servidor responde enviando as páginas da web apropriadas. Por padrão, os servidores web são executados na porta 80.

  1. Abra uma janela de terminal no ambiente da VM do LabEx. O terminal é uma interface baseada em texto que permite que você interaja com o sistema operacional digitando comandos. Você deve estar no diretório padrão /home/labex/project. Para confirmar seu diretório atual, você pode usar o seguinte comando:

    pwd

    O comando pwd significa "print working directory" (imprimir diretório de trabalho). Quando você executa este comando, ele mostrará o caminho do diretório atual em que você está. Você deve ver uma saída como esta:

    /home/labex/project
  2. Instale o servidor web Apache2 usando o seguinte comando:

    sudo apt update && sudo apt install apache2 -y

    O comando sudo é usado para executar comandos com privilégios administrativos. apt update atualiza as informações do pacote em seu sistema, garantindo que você tenha as informações mais recentes sobre os pacotes de software disponíveis. apt install apache2 -y instala o servidor web Apache2. A opção -y responde automaticamente "sim" a quaisquer solicitações durante o processo de instalação. Você verá muita saída à medida que a instalação progride, o que mostra as etapas que o sistema está tomando para instalar o software.

  3. Inicie o serviço Apache2:

    sudo service apache2 start

    Após instalar o servidor web Apache2, você precisa iniciar seu serviço. O comando service é usado para gerenciar serviços do sistema. Neste caso, estamos iniciando o serviço Apache2 para que ele possa começar a aceitar solicitações recebidas.

  4. Verifique se o Apache2 está sendo executado corretamente:

    sudo service apache2 status

    Para garantir que o serviço Apache2 esteja sendo executado conforme o esperado, você pode usar a opção status com o comando service. Isso mostrará o estado atual do serviço Apache2. Você deve ver uma saída indicando que o Apache2 está ativo (em execução), semelhante a:

    * apache2 is running
  5. Você também pode verificar se o servidor web está acessível criando uma nova aba "Web Service". Clique no símbolo + na aba superior do ambiente virtual, selecione a opção "Web Service" e insira a porta 80. Isso tentará se conectar ao servidor web em execução na porta 80. Se tudo estiver configurado corretamente, ele deverá exibir a página de boas-vindas padrão do Apache2.

Agora que temos um servidor web em execução em nosso sistema, ele abriu a porta 80 para comunicação. Na próxima etapa, usaremos o Nmap para descobrir esta porta aberta.

Introdução ao Nmap e Executando uma Varredura de Portas Comuns

Agora que configuramos com sucesso um servidor web, é hora de aprender como usar o Nmap para descobrir quais portas estão abertas em nosso sistema. Compreender as portas abertas é crucial em segurança de rede, porque as portas abertas podem ser potenciais pontos de entrada para atacantes. Ao usar o Nmap, podemos identificar essas portas e tomar as medidas de segurança apropriadas.

O que é Nmap?

Nmap, abreviação de Network Mapper, é uma ferramenta de código aberto (open-source) e gratuita bem conhecida, usada para descoberta de rede e auditoria de segurança. Ele possui uma ampla gama de aplicações no campo da segurança de rede:

  • Descobrindo hosts e serviços em uma rede: O Nmap pode ajudá-lo a descobrir quais dispositivos estão conectados a uma rede e quais serviços eles estão oferecendo. Por exemplo, ele pode detectar se há um servidor de arquivos, um servidor web ou um servidor de e-mail na rede.
  • Criando um inventário de sistemas em execução em uma rede: Você pode usar o Nmap para criar uma lista de todos os sistemas em uma rede, incluindo seus endereços IP e os serviços que estão executando. Este inventário é útil para administradores de rede gerenciarem e manterem a rede.
  • Verificando quais portas estão abertas em hosts de destino: As portas são como portas para um computador. Uma porta aberta significa que um serviço está ouvindo e pronto para aceitar conexões. O Nmap pode escanear um host de destino para descobrir quais portas estão abertas.
  • Identificando o sistema operacional e as versões de serviço de hosts de rede: Conhecer o sistema operacional e as versões de serviço em execução em um host pode ajudar os profissionais de segurança a determinar se há alguma vulnerabilidade conhecida que os atacantes possam explorar.

Varredura de Portas Comuns com Nmap

O Nmap oferece uma variedade de opções de varredura. Para aqueles que estão apenas começando, a opção de varredura rápida (-F) é muito útil. Por padrão, o Nmap verifica 1000 portas, o que pode levar muito tempo. A opção -F reduz o número de portas a serem verificadas para as 100 portas mais comuns, tornando a varredura muito mais rápida.

Vamos realizar uma varredura rápida em nossa máquina local para encontrar o servidor web que acabamos de configurar:

  1. Abra seu terminal. No terminal, você inserirá um comando para interagir com o sistema operacional. Digite o seguinte comando e pressione Enter:

    nmap -F localhost

    Vamos detalhar este comando:

    • nmap: Esta é a ferramenta de varredura que estamos usando. É o comando principal que diz ao sistema para iniciar uma varredura de rede.
    • -F: Esta opção ativa o modo de varredura rápida. Ele limita a varredura às 100 portas mais comuns, economizando tempo.
    • localhost: Este é o alvo que estamos escaneando. localhost se refere à sua máquina local, que possui o endereço IP 127.0.0.1.
  2. Depois de executar o comando, você verá uma saída semelhante a esta:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    Not shown: 96 closed ports
    PORT   STATE SERVICE
    80/tcp open  http
    
    Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

    Esta saída fornece informações importantes:

    • A varredura foi realizada em sua máquina local, que possui o endereço IP 127.0.0.1.
    • A porta 80 está aberta e está executando o serviço HTTP. Este é o servidor web Apache que instalamos anteriormente, pois, por padrão, o Apache ouve na porta 80.
    • As outras 96 portas comuns estão fechadas. Elas não são mostradas em detalhes na saída.
  3. Se você deseja informações mais detalhadas, como a versão do serviço em execução nas portas abertas, pode executar uma varredura mais detalhada. Use o seguinte comando:

    nmap -sV -F localhost

    A opção -sV neste comando tenta descobrir a versão dos serviços em execução nas portas abertas. A saída será mais detalhada:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    Not shown: 96 closed ports
    PORT   STATE SERVICE VERSION
    80/tcp open  http    Apache httpd 2.4.X
    
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

    Esta saída confirma que nosso servidor web Apache está sendo executado na porta 80, e também nos informa a versão do servidor HTTP Apache.

Compreendendo os Resultados

Os resultados da varredura mostram que a porta 80 está aberta e executando o serviço HTTP. Isso é o que esperamos, porque instalamos e iniciamos o servidor web Apache, que, por padrão, ouve na porta 80. Em uma situação do mundo real, saber quais portas estão abertas é muito importante para os profissionais de segurança:

  1. Identificar potenciais vulnerabilidades de segurança: Diferentes serviços em execução em portas abertas podem ter vulnerabilidades conhecidas. Ao saber quais portas estão abertas e quais serviços estão sendo executados nelas, os profissionais de segurança podem verificar se há algum risco de segurança.
  2. Garantir que apenas os serviços necessários estejam em execução: Ter serviços desnecessários em execução em portas abertas pode aumentar a superfície de ataque. Ao identificar portas abertas, os profissionais de segurança podem garantir que apenas os serviços que realmente são necessários estejam em execução.
  3. Verificar se as configurações do firewall estão funcionando conforme o esperado: Firewalls são usados para controlar o tráfego de rede de entrada e saída. Ao escanear portas abertas, os profissionais de segurança podem verificar se o firewall está bloqueando as portas que devem ser bloqueadas e permitindo as que devem estar abertas.

Documentando Resultados da Varredura e Implicações de Segurança

No campo da segurança de rede, documentar suas descobertas é um passo crucial. O Nmap fornece recursos de relatório integrados que podem nos ajudar a registrar os resultados da varredura de forma mais eficaz. Nesta etapa, aprenderemos como gerar relatórios Nmap, analisar os resultados e discutir as implicações de segurança das portas abertas. Finalmente, interromperemos adequadamente os serviços que iniciamos para este laboratório para garantir a segurança do sistema.

Usando o Nmap para Gerar Relatórios

O Nmap pode gerar diretamente os resultados da varredura em vários formatos de relatório, incluindo texto simples, XML, JSON e muito mais. Isso é mais eficiente e preciso do que criar relatórios manualmente. Vamos usar as opções de saída do Nmap para gerar um relatório:

  1. Execute uma varredura Nmap com opções de saída:
nmap -F -sV localhost -oN /home/labex/project/nmap_report.txt

Neste comando:

  • A opção -F executa uma varredura rápida (verificando apenas as 100 portas mais comuns)
  • -sV tenta determinar a versão dos serviços em execução nas portas abertas
  • -oN /home/labex/project/nmap_report.txt salva a saída em formato de texto simples no arquivo especificado
  1. Visualize o relatório gerado:
cat /home/labex/project/nmap_report.txt

Você verá um relatório contendo informações completas da varredura, incluindo:

  • Hora e data da varredura
  • Informações do alvo
  • Lista de portas abertas
  • Serviços e versões em execução em cada porta aberta

Mais Opções de Formato de Relatório

O Nmap suporta vários formatos de saída adequados para diferentes propósitos:

  • -oX filename - Saída em formato XML, adequado para processamento automatizado
  • -oG filename - Saída em formato Grepable, conveniente para pesquisar com grep
  • -oJ filename - Saída em formato JSON, apropriado para aplicações modernas
  • -oA filename - Saída em todos os formatos (Normal, XML e Grepable) simultaneamente

Por exemplo, para gerar um relatório em formato XML:

nmap -F -sV localhost -oX /home/labex/project/nmap_report.xml

Compreendendo as Implicações de Segurança dos Resultados da Varredura

A partir do nosso relatório de varredura, podemos ver que a porta 80/tcp está aberta e executando um serviço HTTP (servidor web Apache). Isso tem várias implicações de segurança importantes:

  1. Potencial ponto de entrada de ataque: Portas abertas são como portas em um prédio. Cada porta aberta pode potencialmente servir como uma maneira para os atacantes entrarem em seu sistema.

  2. Riscos de vulnerabilidade do serviço: Os serviços em execução em portas abertas podem ter falhas de segurança que os atacantes poderiam explorar.

  3. Canal de comunicação que requer monitoramento: Portas abertas são usadas para comunicação, e você precisa monitorar a atividade nessas portas para detectar qualquer comportamento incomum.

Para garantir a segurança da porta, você deve seguir estas melhores práticas:

  • Mantenha apenas as portas necessárias abertas: Portas abertas desnecessárias aumentam a superfície de ataque do seu sistema.
  • Atualize regularmente os serviços que usam essas portas: As atualizações geralmente incluem patches de segurança que corrigem vulnerabilidades.
  • Implemente regras de firewall para restringir o acesso: Firewalls podem ajudar a controlar quem pode acessar seu sistema por meio de portas específicas.
  • Monitore a atividade da porta em busca de padrões incomuns: Ao monitorar a atividade, você pode detectar e responder a ameaças potenciais de maneira oportuna.

Limpeza do Laboratório

Agora que concluímos nosso exercício de varredura, é hora de parar o servidor web Apache. Deixar os serviços em execução quando não são necessários pode representar riscos de segurança, por isso a limpeza adequada é importante.

  1. Pare o serviço Apache:
sudo service apache2 stop
  1. Verifique se o serviço foi interrompido:
sudo service apache2 status

Você deve ver uma saída indicando que o Apache2 não está em execução, como:

* apache2 is not running
  1. Confirme se a porta 80 está fechada:
nmap -F localhost

A saída deve mostrar a porta 80 fechada ou não listada nas portas abertas. Este processo de limpeza é crucial em cenários do mundo real para garantir que os serviços não continuem em execução quando não são necessários, o que pode representar riscos de segurança.

Resumo

Neste laboratório, você aprendeu os fundamentos da varredura de portas de rede usando o Nmap, uma poderosa ferramenta de código aberto (open-source) em segurança de rede. Você adquiriu experiência prática na compreensão de portas de rede, na configuração de um servidor web com uma porta aberta, no uso do Nmap para varreduras de portas comuns, na interpretação dos resultados da varredura, na documentação das descobertas em um relatório de segurança e na interrupção adequada dos serviços.

Essas habilidades são a pedra angular da avaliação de segurança de rede. Elas são cruciais para profissionais de segurança de TI, administração de rede e gerenciamento de sistemas. Dominar a varredura de portas ajuda a identificar vulnerabilidades de rede e proteger sistemas contra acesso não autorizado.