Realize Varreduras SYN do Nmap para Segurança de Rede

NmapBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá sobre a varredura SYN do Nmap, uma técnica chave em segurança de rede para reconhecimento de portas furtivo. A varredura SYN identifica eficientemente portas abertas em um sistema alvo sem estabelecer completamente uma conexão TCP, tornando-a menos detectável do que os métodos tradicionais. Isso é crucial para que os profissionais de segurança avaliem as vulnerabilidades da rede e aprimorem as defesas.

Ao final deste laboratório, você entenderá como conduzir varreduras SYN, interpretar seus resultados e reconhecer sua importância nas avaliações de segurança de rede.

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 99%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Criando um Serviço Alvo para Varredura

Nesta etapa, vamos criar um ambiente controlado onde você pode praticar a varredura SYN do Nmap. Antes de começar a varrer qualquer rede ou sistema, é crucial entender que a varredura ética requer a autorização adequada. Para evitar quaisquer problemas legais, configuraremos nosso próprio serviço que podemos varrer com segurança.

  1. Primeiro, você precisa abrir um terminal. Um terminal é uma interface baseada em texto que permite interagir com o sistema operacional do seu computador digitando comandos. Depois de abrir o terminal, você navegará até o diretório do seu projeto. O diretório do projeto é onde todos os arquivos relacionados a este experimento serão armazenados. Use o seguinte comando para alterar o diretório atual para o diretório do projeto:

    cd /home/labex/project
  2. Agora, usaremos Python, uma linguagem de programação popular, para criar um servidor HTTP simples. Um servidor HTTP é um software que pode servir páginas da web para clientes, como navegadores da web. Python possui recursos integrados que facilitam a configuração de tal servidor. Usaremos este servidor como o alvo para nossa varredura SYN do Nmap. Execute o seguinte comando no terminal:

    python -m http.server --bind localhost 8080 &

    Este comando inicia um servidor web simples na porta 8080. Uma porta é um ponto de extremidade de comunicação na rede de um computador. Diferentes serviços usam portas diferentes para se comunicar. O & no final do comando executa o servidor em segundo plano. Isso significa que o servidor continuará em execução e você poderá continuar usando a mesma janela do terminal para executar outros comandos.

  3. Depois de iniciar o servidor, precisamos verificar se ele está realmente em execução. Podemos fazer isso verificando as conexões de rede abertas em nosso sistema. O comando ss é uma ferramenta que pode exibir estatísticas de soquetes, que incluem informações sobre conexões de rede abertas. Usaremos isso para verificar se nosso servidor está ouvindo na porta 8080. Execute o seguinte comando:

    ss -tulwn | grep 8080

    O | é um operador de pipe que pega a saída do comando ss e a usa como entrada para o comando grep. O comando grep procura a string 8080 na saída do comando ss. Se o servidor estiver em execução, você deverá ver uma saída semelhante a esta:

    tcp   LISTEN 0      1            0.0.0.0:8080       0.0.0.0:*

    Esta saída indica que o servidor está ouvindo na porta 8080, o que significa que ele está sendo executado com sucesso e está pronto para ser varrido.

Entendendo e Realizando uma Varredura SYN do Nmap

Agora que temos um serviço alvo em execução, é hora de mergulhar nas varreduras SYN. As varreduras SYN são uma parte crucial dos testes de segurança de rede, permitindo-nos descobrir portas abertas em um sistema alvo. Nesta seção, aprenderemos como as varreduras SYN funcionam e, em seguida, usaremos o Nmap, uma poderosa ferramenta de varredura de rede, para realizar uma varredura SYN em nosso servidor HTTP.

O que é uma Varredura SYN?

Antes de iniciarmos a varredura real, é essencial entender o mecanismo subjacente de uma varredura SYN. Para fazer isso, vamos primeiro analisar como uma conexão TCP normal é estabelecida.

Conexão TCP Normal

Em uma conexão TCP normal, ocorre um handshake de três vias. Este é um processo fundamental para estabelecer uma conexão confiável entre um cliente e um servidor:

  • Etapa 1: Pacote SYN do Cliente
    O cliente inicia a conexão enviando um pacote SYN (synchronize) ao servidor. Este pacote é como uma solicitação para iniciar uma conversa, perguntando ao servidor se ele está pronto para se comunicar.
  • Etapa 2: Pacote SYN-ACK do Servidor
    Ao receber o pacote SYN, se o servidor estiver disponível e disposto a se comunicar, ele responde com um pacote SYN-ACK (synchronize - acknowledge). Este pacote reconhece a solicitação do cliente e também indica que o servidor está pronto para iniciar a conexão.
  • Etapa 3: Pacote ACK do Cliente
    Finalmente, o cliente envia um pacote ACK (acknowledge) para completar o handshake de três vias. Após esta etapa, a conexão TCP é totalmente estabelecida e os dados podem ser trocados entre o cliente e o servidor.

Processo de Varredura SYN

Uma varredura SYN, por outro lado, tem uma abordagem diferente:

  • Etapa 1: Pacote SYN do Nmap
    O Nmap, nossa ferramenta de varredura, envia o pacote SYN inicial para a porta alvo. Isso é semelhante à primeira etapa em uma conexão TCP normal.
  • Etapa 2: Resposta SYN-ACK do Alvo
    Se a porta alvo estiver aberta, ela responderá com um pacote SYN-ACK, assim como em uma conexão TCP normal.
  • Etapa 3: Término da Conexão pelo Nmap
    Em vez de enviar o pacote ACK final para completar o handshake, o Nmap encerra a conexão. Isso torna a varredura menos detectável porque a conexão completa nunca é estabelecida. Além disso, é mais rápido do que uma varredura de conexão completa, que completa todo o handshake de três vias para cada porta que está sendo varrida.

Executando a Varredura SYN

Primeiro, precisamos ter certeza de que estamos no diretório do projeto correto. Isso é importante porque salvaremos os resultados da varredura em um arquivo dentro deste diretório. Para navegar até o diretório do projeto, execute o seguinte comando em seu terminal:

cd /home/labex/project

Etapa 2: Execute a Varredura SYN

Agora, estamos prontos para executar a varredura SYN usando o Nmap. Execute o seguinte comando em seu terminal:

sudo nmap -sS localhost -p 8080 > /home/labex/project/nmap-syn-scan-results.txt

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

  • sudo: Este comando é usado para executar o comando subsequente com privilégios elevados. As varreduras SYN exigem privilégios de root porque envolvem o envio de pacotes de rede brutos, então precisamos usar sudo para executar o comando nmap.
  • nmap: Esta é a ferramenta de varredura de rede que estamos usando. O Nmap é amplamente utilizado para exploração de rede e auditoria de segurança.
  • -sS: Esta opção especifica que queremos realizar uma varredura SYN.
  • localhost: Este é o alvo de nossa varredura. Neste caso, estamos varrendo nossa própria máquina.
  • -p 8080: Esta opção informa ao Nmap para varrer apenas a porta 8080. Estamos interessados em verificar se esta porta específica está aberta em nossa máquina local.
  • > /home/labex/project/nmap-syn-scan-results.txt: Esta parte do comando redireciona a saída da varredura nmap para um arquivo chamado nmap-syn-scan-results.txt no diretório do projeto. Desta forma, podemos revisar os resultados mais tarde.

Etapa 3: Visualize os Resultados da Varredura

Após a conclusão da varredura, podemos visualizar os resultados. Execute o seguinte comando em seu terminal:

cat /home/labex/project/nmap-syn-scan-results.txt

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-18 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).

PORT     STATE SERVICE
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds

Esta saída fornece informações valiosas. Ela confirma que a porta 8080 está aberta em sua máquina local e que está executando um serviço HTTP. Essas informações podem ser usadas para análise de segurança adicional ou solução de problemas de rede.

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

Após realizar uma varredura SYN, é crucial entender como interpretar os resultados e suas implicações de segurança. Esta etapa é essencial porque ajuda a identificar riscos potenciais em sua rede. Vamos mergulhar nos detalhes.

Interpretando os Resultados da Varredura

  1. Primeiro, vamos dar uma olhada mais de perto nos resultados da varredura. Usaremos o comando cat para visualizar o conteúdo do arquivo que armazena os resultados da varredura SYN do Nmap. O comando cat é uma maneira simples de exibir o conteúdo de um arquivo no terminal.

    cat /home/labex/project/nmap-syn-scan-results.txt

    Ao executar este comando, você verá uma saída. Veja o que diferentes partes da saída significam:

    • Host is up: Esta mensagem indica que o host de destino está acessível pela rede. Se o host estiver ativo, significa que sua varredura foi capaz de se comunicar com o destino.
    • O valor de latência: Isso mostra a rapidez com que o destino respondeu à sua varredura. Uma latência menor significa que o destino respondeu mais rápido.
    • 8080/tcp open: Isso indica que a porta 8080 no host de destino está aberta e pronta para aceitar conexões de entrada. Uma porta aberta pode ser um ponto de entrada potencial para invasores.
    • http-proxy: Esta é a suposição do Nmap sobre qual serviço está sendo executado na porta 8080. O Nmap tenta identificar o serviço com base nas respostas que recebe durante a varredura.
  2. Em uma avaliação de segurança do mundo real, cada porta aberta em um host de destino representa várias coisas:

    • Um ponto de entrada potencial para invasores: Os invasores podem usar portas abertas para obter acesso ao sistema de destino. Por exemplo, se um servidor web estiver sendo executado em uma porta aberta, os invasores podem tentar explorar vulnerabilidades na aplicação web.
    • Um serviço que pode ter vulnerabilidades: Cada serviço em execução em uma porta aberta tem o potencial de ter falhas de segurança. Essas vulnerabilidades podem ser exploradas por invasores para comprometer o sistema.
    • Parte da superfície de ataque que precisa ser protegida: A superfície de ataque é a soma de todos os pontos onde um invasor pode tentar entrar em um sistema. Portas abertas fazem parte dessa superfície de ataque e precisam ser devidamente protegidas.

Melhores Práticas de Segurança

Ao proteger uma rede, você deve seguir estas melhores práticas:

  1. Apenas portas necessárias devem estar abertas: Abrir portas desnecessárias aumenta a superfície de ataque de sua rede. Ao fechar portas não utilizadas, você reduz o número de possíveis pontos de entrada para invasores.
  2. Cada porta aberta deve servir a um propósito comercial legítimo: Se uma porta estiver aberta, ela deve estar lá por um motivo válido, como executar um servidor web ou um serviço de banco de dados. Isso ajuda a garantir que sua rede seja usada de forma eficiente e segura.
  3. Todos os serviços devem ser mantidos atualizados para evitar exploração: Os fornecedores de software lançam regularmente atualizações para corrigir vulnerabilidades de segurança. Ao manter seus serviços atualizados, você pode proteger sua rede contra ameaças conhecidas.
  4. As regras do firewall devem restringir o acesso a portas sensíveis: Firewalls podem ser usados para controlar quem pode acessar portas específicas em sua rede. Ao configurar as regras de firewall apropriadas, você pode limitar o acesso a portas sensíveis apenas a usuários ou sistemas autorizados.

Limpando Nosso Ambiente

  1. Agora, precisamos limpar nosso ambiente, interrompendo o servidor HTTP que iniciamos anteriormente. Primeiro, precisamos identificar o ID do processo (PID) do servidor HTTP. O PID é um número exclusivo atribuído a cada processo em execução no sistema. Usaremos o comando ps aux para listar todos os processos em execução e, em seguida, filtrar os resultados para encontrar o processo do servidor HTTP.

    ps aux | grep "http.server" | grep -v grep

    Ao executar este comando, você verá uma saída semelhante à seguinte:

    labex      1234  0.0  0.1  31116  3164 pts/0    S    12:00   0:00 python -m http.server 8080

    A segunda coluna na saída mostra o PID do processo do servidor HTTP.

  2. Em seguida, usaremos o PID para parar o servidor. Usaremos o comando kill, que envia um sinal de término para o processo. O seguinte comando encontra e mata automaticamente o processo do servidor HTTP:

    kill $(ps aux | grep "http.server" | grep -v grep | awk '{print $2}')

    Este comando primeiro encontra o PID do processo do servidor HTTP usando o mesmo método de filtragem que antes e, em seguida, passa o PID para o comando kill.

  3. Finalmente, precisamos verificar se o servidor foi interrompido. Usaremos o comando ss, que é usado para exibir estatísticas de soquetes. Ao filtrar a saída para mostrar apenas informações sobre a porta 8080, podemos verificar se o servidor ainda está em execução.

    ss -tulwn | grep 8080

    Se o servidor foi interrompido com sucesso, não deve haver saída deste comando, indicando que o servidor não está mais ouvindo na porta 8080.

Resumo

Neste laboratório, você aprendeu como realizar e entender a varredura SYN do Nmap, uma técnica chave na reconhecimento de segurança de rede. Você configurou um ambiente controlado usando um servidor HTTP Python, realizou uma varredura SYN para encontrar portas abertas, analisou os resultados e limpou o ambiente de teste. Essas habilidades são essenciais para a varredura de rede ética e avaliação de vulnerabilidades.

Compreender as varreduras SYN permite que os profissionais de segurança detectem potenciais vulnerabilidades de rede de forma eficiente, reduzindo o risco de detecção. À medida que você avança em sua jornada de segurança cibernética, sempre certifique-se de ter permissão para varrer redes antes de aplicar essas técnicas.