Introdução
Neste laboratório, você aprenderá como utilizar o Nmap, uma poderosa ferramenta de varredura de rede, em diferentes níveis de detalhamento (verbosity). O Nmap é a escolha principal para especialistas em segurança descobrirem hosts e serviços em redes de computadores. Dominar as opções de detalhamento do Nmap permite regular as informações exibidas durante as varreduras, o que é essencial para uma análise de rede e solução de problemas eficientes.
Ao longo do laboratório, você configurará um servidor local para praticar a varredura. Você também explorará como diferentes níveis de detalhamento afetam os resultados da varredura e as informações apresentadas.
Configurando Seu Ambiente para Varredura de Rede
Nesta etapa, vamos configurar um servidor Web local na sua máquina. Este servidor servirá como nosso alvo para a varredura com o Nmap. O Nmap é uma poderosa ferramenta de varredura de rede usada em cibersegurança para descobrir hosts e serviços em uma rede de computadores. Ao ter um servidor local, você pode praticar o uso do Nmap com segurança, sem afetar redes do mundo real.
Entendendo os Servidores HTTP
Antes de criar o servidor, vamos entender o que é um servidor HTTP. HTTP significa HyperText Transfer Protocol (Protocolo de Transferência de Hipertexto). É o protocolo que o seu navegador web usa para se comunicar com os sites. Um servidor HTTP é uma aplicação de software capaz de entender URLs (endereços web) e o protocolo HTTP. Quando você digita um endereço web no seu navegador, ele envia uma solicitação HTTP para o servidor HTTP correspondente, que então devolve a página web solicitada. Para o nosso laboratório, criaremos um servidor HTTP simples usando o Python, uma linguagem de programação popular e fácil de aprender.
Criando o Servidor HTTP
Primeiro, precisamos garantir que você está no diretório de trabalho correto. O diretório de trabalho é como uma pasta onde seus comandos serão executados. Neste caso, queremos estar no diretório /home/labex/project. Para navegar até este diretório, use o seguinte comando:
cd /home/labex/project
Agora que estamos no lugar certo, usaremos o módulo de servidor HTTP integrado do Python para criar um servidor web simples. Vamos configurar este servidor para escutar na porta 8080. Uma porta é como uma porta em um computador pela qual o tráfego de rede pode entrar ou sair. Diferentes serviços usam diferentes portas. Digite o seguinte comando:
python -m http.server --bind 127.0.0.1 8080 &
Vamos detalhar o que este comando faz:
python -m http.server: Esta parte inicia o módulo de servidor HTTP integrado do Python. Ela instrui o Python a executar a funcionalidade de servidor HTTP.--bind 127.0.0.1: Isso faz com que o servidor escute no endereço de loopback IPv4 que o Nmap verifica paralocalhostneste ambiente.8080: Isso especifica que o servidor deve escutar na porta 8080. Isso significa que quaisquer solicitações HTTP recebidas nesta porta serão tratadas pelo nosso servidor.&: Colocar um e-comercial no final do comando executa o servidor em segundo plano. Isso é útil porque permite que você continue usando o terminal para outros comandos enquanto o servidor está rodando.
Após executar o comando, você deverá ver uma saída semelhante a esta:
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/) ...
Essa saída indica que o seu servidor HTTP está rodando e pronto para aceitar conexões na porta 8080. Com este servidor em funcionamento, agora temos um alvo que podemos escanear usando o Nmap nas próximas etapas.
Verificando se o Servidor HTTP está Rodando
É importante confirmar se o seu servidor está realmente funcionando corretamente. Para fazer isso, podemos usar o seguinte comando:
ss -tulwn | grep 8080
O comando ss é usado para exibir estatísticas de sockets. As opções -tulwn dizem ao ss para mostrar informações de sockets TCP, UDP, em escuta (listening) e numéricas. O | é um pipe, que pega a saída do comando ss e a passa para o comando grep. O comando grep então procura pela string 8080 na saída. Se o servidor estiver rodando, este comando deve exibir uma saída indicando que algo está escutando na porta 8080, o que confirma que o seu servidor HTTP está ativo e pronto para a varredura do Nmap.
Entendendo o Básico do Nmap e o Detalhamento Padrão
Nesta etapa, com nosso servidor de destino configurado e em execução, é hora de começar a explorar o Nmap e seus níveis de detalhamento. O Nmap, abreviação de Network Mapper, é um poderoso scanner de segurança. Seu principal objetivo é ajudá-lo a descobrir hosts e serviços em uma rede de computadores. Isso é crucial em cibersegurança, pois permite que você entenda a estrutura da rede e identifique potenciais riscos de segurança.
O que é o Detalhamento (Verbosity) do Nmap?
No Nmap, o detalhamento (verbosity) determina quanta informação é exibida durante uma varredura. Dependendo de quão detalhados você deseja que sejam os resultados da sua varredura, você pode escolher diferentes níveis de detalhamento. Aqui está um resumo dos níveis comuns de detalhamento:
- Nível 0: Este é o nível padrão. Ele fornece a saída padrão, que apresenta as informações básicas sobre a varredura.
- Nível 1: Usando a opção
-v, você pode obter mais detalhes na saída da varredura. - Nível 2: Usando a opção
-vv, você obterá informações ainda mais detalhadas.
Realizando uma Varredura com Detalhamento Padrão (Nível 0)
Vamos começar realizando nossa primeira varredura usando o nível de detalhamento padrão do Nmap. Isso nos dará uma compreensão básica de que tipo de informação podemos obter sem adicionar detalhes extras.
nmap -p 8080 localhost > /home/labex/project/verbosity-0.txt
Vamos detalhar este comando:
nmap: Este é o comando para invocar a ferramenta de varredura Nmap. Ele diz ao seu sistema para usar o Nmap para a varredura de rede.-p 8080: Esta opção diz ao Nmap para focar a varredura apenas na porta 8080. As portas são como portas em um computador, e diferentes serviços usam diferentes portas. Ao especificar a porta 8080, estamos interessados apenas no serviço rodando nessa porta específica.localhost: Isso indica que estamos escaneando a máquina local. Em outras palavras, estamos verificando os serviços rodando no mesmo computador onde estamos executando o comando Nmap.> /home/labex/project/verbosity-0.txt: Esta parte do comando redireciona a saída da varredura para um arquivo chamadoverbosity-0.txtlocalizado no diretório/home/labex/project. Salvar a saída em um arquivo nos permite revisá-la mais tarde.
Agora, vamos visualizar os resultados da varredura:
cat /home/labex/project/verbosity-0.txt
Após executar este comando, você deverá ver uma saída semelhante à seguinte:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:30 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.05 seconds
Vamos entender o que esta saída significa:
- Quando a varredura começou: A primeira linha nos diz a hora exata em que a varredura do Nmap começou. Isso é útil para rastrear quando a informação foi coletada.
- O alvo da varredura: Mostra que estávamos escaneando o
localhost, que possui o endereço IP127.0.0.1. - Status do host: Indica que o host está ativo (up) e responsivo, com uma latência muito baixa de
0.000097segundos. - Estado da porta: Informa que a porta 8080 está no estado
open(aberta), o que significa que há um serviço escutando nessa porta. - Serviço em execução: Sugere que o provável serviço rodando na porta 8080 é o
http-proxy. - Estatísticas de conclusão da varredura: A última linha nos dá informações sobre quanto tempo a varredura levou, que neste caso foi de
0.05segundos.
O nível padrão fornece informações essenciais, mas carece de percepções detalhadas. Nas próximas etapas, exploraremos como níveis mais altos de detalhamento podem nos fornecer informações mais aprofundadas sobre a varredura.
Aumentando o Detalhamento com a Opção -v
No mundo da varredura de redes, obter informações detalhadas é crucial. Nesta etapa, aprenderemos como obter detalhes mais aprofundados do Nmap aumentando o nível de detalhamento. O detalhamento no Nmap refere-se à quantidade de informações que ele exibe durante uma varredura. A opção -v, que define o nível de detalhamento como 1, fornece informações adicionais que podem ser extremamente úteis para a análise de rede.
Executando uma Varredura com Detalhamento Aumentado
Vamos começar executando uma varredura com detalhamento aumentado. Usaremos o seguinte comando:
nmap -p 8080 localhost -v > /home/labex/project/verbosity-1.txt
Vamos detalhar este comando:
nmapé o comando para invocar a ferramenta de varredura Nmap. O Nmap é uma ferramenta poderosa e amplamente utilizada de exploração de rede e auditoria de segurança.-p 8080diz ao Nmap para escanear apenas a porta 8080. As portas são como portas em uma rede e, ao especificar uma porta, estamos focando nossa varredura em um serviço específico que pode estar rodando nela.localhostindica que estamos tendo como alvo a máquina local. Isso é útil para testar e entender como o Nmap funciona no seu próprio sistema.-vaumenta o nível de detalhamento para 1. Isso significa que o Nmap mostrará mais informações sobre o processo de varredura.> /home/labex/project/verbosity-1.txtredireciona a saída da varredura para um arquivo chamadoverbosity-1.txtno diretório/home/labex/project. Salvar a saída em um arquivo nos permite revisá-la posteriormente.
Agora, vamos ver os resultados da nossa varredura:
cat /home/labex/project/verbosity-1.txt
Ao executar este comando, você deverá ver uma saída mais detalhada semelhante a esta:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:35 UTC
Initiating Ping Scan at 15:35
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 15:35, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 15:35
Scanning localhost (127.0.0.1) [1 port]
Discovered open port 8080/tcp on 127.0.0.1
Completed Connect Scan at 15:35, 0.00s elapsed (1 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
Entendendo as Informações Adicionais
Com o nível de detalhamento 1, a saída fornece uma abundância de detalhes extras. Aqui está o que você pode ver:
- O processo de varredura é dividido em estágios. Por exemplo, há uma varredura por Ping (Ping Scan) e uma varredura de Conexão (Connect Scan). A varredura por Ping é usada para verificar se um host está alcançável, enquanto a varredura de Conexão tenta estabelecer uma conexão com uma porta específica.
- Informações de tempo (timing) para cada estágio são fornecidas. Isso ajuda você a entender quanto tempo cada parte da varredura levou.
- Você pode ver o momento exato em que a porta aberta foi descoberta. Isso é importante, pois fornece uma linha do tempo clara da varredura.
- Os arquivos de dados que o Nmap usou durante a varredura também são mostrados. Esses arquivos contêm informações sobre serviços, portas e outros dados relacionados à rede que o Nmap usa para realizar suas varreduras.
Essas informações adicionais são muito úteis porque permitem que você:
- Entenda como o Nmap realiza suas varreduras. Ao ver os diferentes estágios e a ordem em que ocorrem, você obtém uma compreensão melhor do processo de varredura.
- Conheça a linha do tempo exata dos eventos durante a varredura. Isso pode ser útil para solucionar problemas ou compreender o comportamento de uma rede.
- Determine quando portas e serviços específicos foram descobertos. Isso é crucial para avaliações de segurança e gerenciamento de rede.
Comparando Níveis de Detalhamento
Para ver a diferença entre uma varredura normal e uma varredura com detalhamento aumentado de forma mais clara, compararemos os dois arquivos de saída. Use o seguinte comando:
diff /home/labex/project/verbosity-0.txt /home/labex/project/verbosity-1.txt
O comando diff compara o conteúdo de dois arquivos e mostra as diferenças entre eles. A saída deste comando demonstrará como o aumento do nível de detalhamento fornece mais percepção sobre o processo de varredura. Essas informações extras podem ser particularmente úteis quando você está solucionando problemas de rede ou conduzindo avaliações de segurança detalhadas.
Níveis Adicionais de Detalhamento
O Nmap não para no nível de detalhamento 1. Ele suporta níveis de detalhamento ainda mais altos:
-vvdefine o nível de detalhamento como 2.-vvvdefine o nível de detalhamento como 3.
Conforme você aumenta o nível de detalhamento, o Nmap fornece informações cada vez mais detalhadas sobre o processo de varredura. Isso pode ser muito útil quando você precisa se aprofundar na rede e entender cada aspecto da varredura.
Explorando Níveis Mais Altos de Detalhamento e Aplicações Práticas
Nesta etapa, vamos mergulhar mais fundo nas capacidades do Nmap. Começaremos usando um nível de detalhamento ainda maior, o que nos fornecerá informações mais detalhadas durante o processo de varredura. Em seguida, aprenderemos sobre as aplicações práticas das diferentes configurações de detalhamento, para que você saiba quando usar cada nível em cenários do mundo real.
Executando uma Varredura com Detalhamento Máximo
Vamos executar uma varredura com o nível de detalhamento 2. No Nmap, podemos definir o nível de detalhamento usando a opção -vv. O nível de detalhamento 2 fornecerá uma quantidade significativa de informações detalhadas sobre a varredura. Aqui está o comando para executar a varredura:
nmap -p 8080 localhost -vv > /home/labex/project/verbosity-2.txt
Neste comando, -p 8080 diz ao Nmap para escanear a porta 8080. localhost é o alvo que estamos escaneando, o que se refere à máquina local. A opção -vv aumenta o detalhamento para o nível 2. O símbolo > redireciona a saída da varredura para o arquivo /home/labex/project/verbosity-2.txt.
Agora, vamos examinar os resultados da varredura. Podemos usar o comando cat para exibir o conteúdo do arquivo:
cat /home/labex/project/verbosity-2.txt
Ao olhar para a saída, você perceberá que ela contém detalhes técnicos ainda mais aprofundados sobre o processo de varredura. Esses detalhes incluem:
- Informações de tempo mais aprofundadas: Isso ajuda você a entender quanto tempo diferentes partes da varredura levaram.
- Informações adicionais de depuração (debugging): Isso pode ser útil se algo der errado durante a varredura.
- Informações de protocolo mais detalhadas: Isso oferece uma melhor compreensão dos protocolos de rede envolvidos na varredura.
Aplicações Práticas de Diferentes Níveis de Detalhamento
Diferentes níveis de detalhamento são úteis em diferentes cenários. Vamos dar uma olhada em cada nível e suas aplicações práticas:
Nível Padrão (0):
- O nível de detalhamento padrão é melhor para varreduras rápidas. Quando você precisa apenas de informações básicas sobre o alvo, como se uma porta específica está aberta ou fechada, este nível é suficiente.
- Ele também é útil para verificações de rotina e mapeamento simples de rede. Por exemplo, se você quiser verificar rapidamente o status básico das portas de um servidor, pode usar o nível padrão.
- Um exemplo de caso de uso é verificar se portas específicas estão abertas em um servidor. Você obtém uma visão geral rápida sem se perder em muitos detalhes.
Nível de Detalhamento 1 (-v):
- Este nível é útil para análises mais detalhadas. Ele fornece mais informações do que o nível padrão, o que ajuda você a entender melhor a linha do tempo da varredura.
- Se você estiver solucionando problemas de conectividade, as informações adicionais neste nível podem ser muito úteis. Você pode ver quais partes da varredura estão demorando mais ou se há algum erro.
- Um exemplo de caso de uso é a solução de problemas de conectividade. Você pode usar os detalhes extras para descobrir o que pode estar causando o problema.
Níveis Mais Altos de Detalhamento (-vv, -vvv):
- Esses níveis são ideais para análises aprofundadas e depuração. Eles fornecem a quantidade máxima de informações, o que é muito útil para auditorias de segurança.
- Quando você está conduzindo uma avaliação de segurança detalhada ou precisa entender exatamente como a varredura está interagindo com o alvo, níveis mais altos de detalhamento são o caminho a seguir.
- Um exemplo de caso de uso são avaliações de segurança detalhadas ou quando você precisa entender exatamente como a varredura está interagindo com o alvo. Você obtém uma visão abrangente do processo de varredura.
Combinando Detalhamento com Outras Opções do Nmap
As opções de detalhamento podem ser combinadas com outras opções do Nmap para realizar varreduras mais poderosas. Vamos tentar uma varredura mais avançada usando o seguinte comando:
nmap -p 8080 -sV localhost -v > /home/labex/project/advanced-scan.txt
Vamos detalhar este comando:
-p 8080especifica que queremos escanear a porta 8080.-sVativa a detecção de versão. Esta opção tenta determinar a versão do serviço rodando na porta escaneada.-vaumenta o detalhamento para o nível 1, para que obtenhamos informações mais detalhadas sobre o processo de varredura.- O símbolo
>redireciona a saída da varredura para o arquivo/home/labex/project/advanced-scan.txt.
Agora, vamos ver os resultados da varredura:
cat /home/labex/project/advanced-scan.txt
Você perceberá que a adição de -sV fornece informações sobre a versão do serviço rodando na porta 8080. Ao mesmo tempo, a opção -v garante que você obtenha informações detalhadas sobre o processo de varredura, facilitando a análise dos resultados.
Limpeza
Antes de concluirmos este experimento, precisamos encerrar adequadamente o servidor HTTP que criamos anteriormente. Podemos usar o seguinte comando para fazer isso:
pkill -f "python -m http.server"
Este comando encerra o processo do servidor HTTP Python rodando na porta 8080. É importante fazer a limpeza adequadamente para evitar conflitos ou problemas de uso de recursos no futuro.
Resumo
Neste laboratório, você aprendeu a usar efetivamente os níveis de detalhamento do Nmap para controlar as informações exibidas durante as varreduras de rede. Começando com a configuração básica de um servidor HTTP local, você explorou como diferentes níveis de detalhamento impactam as saídas das varreduras do Nmap.
Você descobriu que o nível de detalhamento padrão (0) fornece detalhes essenciais sobre portas e serviços abertos. O uso da opção -v aumenta o detalhamento, oferecendo mais percepções sobre o processo de varredura. Níveis mais altos, como -vv e -vvv, fornecem informações técnicas detalhadas para análises aprofundadas. As opções de detalhamento também podem ser combinadas com outras técnicas do Nmap para análises de rede mais poderosas. Essas habilidades são cruciais para administradores de rede e profissionais de segurança, permitindo que coletem dados de rede com eficiência e adaptem as varreduras para tarefas específicas.



