Detectar Serviços e Versões no Nmap

NmapBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como detectar serviços e suas versões usando o Nmap. O laboratório cobre a detecção básica de serviços no localhost, o ajuste da intensidade da varredura, a detecção de serviços em portas específicas, a execução de uma detecção completa, a análise da saída no terminal Xfce e o salvamento dos resultados em um arquivo de texto. Você executará comandos como nmap -sV 127.0.0.1 e nmap -sV -oN services.txt 192.168.1.1 para obter experiência prática com os recursos de detecção de versão de serviço do Nmap.

Executar detecção de serviço com nmap -sV 127.0.0.1

Nesta etapa, realizaremos uma varredura básica de detecção de serviço usando o Nmap. A detecção de serviço ajuda a identificar os aplicativos e versões em execução nas portas abertas de um sistema alvo. Essa informação é crucial para a avaliação de vulnerabilidades e testes de penetração.

O comando nmap -sV 127.0.0.1 instrui o Nmap a realizar a detecção de versão de serviço (-sV) no localhost (127.0.0.1). O localhost é sua própria máquina.

Vamos executar o comando:

  1. Abra o terminal Xfce.

  2. Digite o seguinte comando e pressione Enter:

nmap -sV 127.0.0.1

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Explicação:

  • Starting Nmap...: Indica a versão do Nmap que está sendo usada.
  • Nmap scan report for localhost (127.0.0.1): Mostra o alvo da varredura.
  • Host is up: Confirma que o alvo está acessível.
  • Not shown: 997 closed ports: Indica que 997 portas foram fechadas e não exibidas. O Nmap mostra apenas portas abertas, filtradas ou não filtradas por padrão.
  • PORT STATE SERVICE VERSION: Esta seção exibe as portas abertas, seu estado (aberto), o serviço em execução na porta e a versão do serviço. Por exemplo, a porta 22 está aberta e executando o OpenSSH versão 8.9p1. A porta 80 está aberta e executando o Apache httpd versão 2.4.52.
  • Service Info: Fornece informações adicionais sobre o sistema operacional.
  • Nmap done: Indica que a varredura foi concluída e mostra o tempo gasto.

Esta varredura simples fornece informações valiosas sobre os serviços em execução em sua máquina. Nas etapas seguintes, exploraremos opções mais avançadas para a detecção de serviço.

Ajustar a intensidade com nmap -sV --version-intensity 7 192.168.1.1

Nesta etapa, aprenderemos como ajustar a intensidade da detecção de versão de serviço do Nmap. A opção --version-intensity permite controlar a agressividade com que o Nmap sonda por informações de serviço. Um nível de intensidade mais alto significa que o Nmap tentará mais sondas, potencialmente levando a resultados mais precisos, mas também levando mais tempo.

A opção --version-intensity aceita um valor de 0 a 9, onde 0 é o mais leve e 9 é o mais agressivo. A intensidade padrão é 7.

Importante: Antes de prosseguir, observe que a varredura de 192.168.1.1 pode não funcionar diretamente no ambiente da VM LabEx, pois é provavelmente um endereço de rede interno. Para fins de demonstração, usaremos 127.0.0.1 (localhost) em vez disso. Em um cenário real, você substituiria isso pelo endereço IP real do alvo.

Vamos executar o comando com o nível de intensidade 7:

  1. Abra o terminal Xfce.

  2. Digite o seguinte comando e pressione Enter:

nmap -sV --version-intensity 7 127.0.0.1

Você deve ver uma saída semelhante à seguinte (a saída exata pode variar dependendo dos serviços em execução em sua máquina):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Agora, vamos tentar um nível de intensidade mais baixo, como 2:

nmap -sV --version-intensity 2 127.0.0.1

Observe a saída. Você pode notar que a varredura é concluída mais rapidamente, mas as informações da versão podem ser menos detalhadas ou precisas.

Explicação:

  • nmap -sV --version-intensity 7 127.0.0.1: Realiza a detecção de versão de serviço com o nível de intensidade 7 no localhost.
  • nmap -sV --version-intensity 2 127.0.0.1: Realiza a detecção de versão de serviço com o nível de intensidade 2 no localhost.

Ao ajustar a opção --version-intensity, você pode ajustar o equilíbrio entre a velocidade e a precisão da varredura. Em situações em que o tempo é crítico, um nível de intensidade mais baixo pode ser preferível. Para avaliações mais completas, um nível de intensidade mais alto é recomendado.

Detectar em portas específicas com nmap -sV -p 80 192.168.1.1

Nesta etapa, focaremos nossa varredura de detecção de serviço em uma porta específica. Isso é útil quando você já sabe em qual porta está interessado ou quando deseja reduzir o tempo de varredura, visando apenas um serviço específico.

A opção -p no Nmap permite que você especifique as portas que deseja varrer. Neste caso, varreremos a porta 80, que é comumente usada para serviços HTTP (web).

Importante: Como na etapa anterior, a varredura de 192.168.1.1 pode não funcionar diretamente no ambiente da VM LabEx. Usaremos 127.0.0.1 (localhost) em vez disso. Lembre-se de substituir isso pelo endereço IP real do alvo em um cenário real.

Vamos executar o comando:

  1. Abra o terminal Xfce.

  2. Digite o seguinte comando e pressione Enter:

nmap -sV -p 80 127.0.0.1

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

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

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.52 ((Ubuntu))

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

Explicação:

  • nmap -sV -p 80 127.0.0.1: Realiza a detecção de versão de serviço (-sV) na porta 80 (-p 80) do localhost (127.0.0.1).
  • A saída mostra que a porta 80 está aberta e executando o Apache httpd versão 2.4.52.
  • Observe que o tempo de varredura é significativamente menor em comparação com as varreduras anteriores, pois estamos varrendo apenas uma única porta.

Você também pode especificar uma faixa de portas usando a opção -p. Por exemplo, para varrer as portas 80, 443 e 8080, você usaria o seguinte comando:

nmap -sV -p 80,443,8080 127.0.0.1

Isso permite que você direcione várias portas específicas em uma única varredura.

Usar detecção completa com nmap -sV --version-all 127.0.0.1

Nesta etapa, utilizaremos a opção --version-all do Nmap para realizar a detecção de versão de serviço mais abrangente possível. Esta opção instrui o Nmap a tentar todas as sondas de detecção de versão contra cada porta aberta. É a configuração mais agressiva e pode fornecer os resultados mais precisos, mas também leva mais tempo para ser concluída.

Vamos executar o comando:

  1. Abra o terminal Xfce.

  2. Digite o seguinte comando e pressione Enter:

nmap -sV --version-all 127.0.0.1

Você deve ver uma saída semelhante à seguinte (a saída exata pode variar dependendo dos serviços em execução em sua máquina):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Explicação:

  • nmap -sV --version-all 127.0.0.1: Realiza a detecção de versão de serviço (-sV) com a opção --version-all no localhost (127.0.0.1).
  • A saída mostra as portas abertas e as versões de serviço detectadas.
  • Observe que o tempo de varredura é maior em comparação com as varreduras anteriores, pois o Nmap está tentando todas as sondas possíveis.

Considerações Importantes:

  • Usar --version-all pode aumentar significativamente o tempo de varredura.
  • Em alguns casos, pode não fornecer resultados significativamente mais precisos do que o nível de intensidade padrão.
  • Esteja atento ao impacto potencial no sistema de destino, pois essa varredura agressiva pode gerar mais tráfego.

Esta opção é mais útil quando você precisa das informações de versão de serviço mais precisas possíveis e está disposto a aceitar um tempo de varredura mais longo.

Analisar a saída no terminal Xfce

Nesta etapa, aprenderemos como analisar a saída das varreduras do Nmap diretamente no terminal Xfce. Compreender a saída é crucial para identificar potenciais vulnerabilidades e obter informações sobre o sistema de destino.

Vamos supor que você já executou um dos comandos Nmap anteriores, por exemplo:

nmap -sV 127.0.0.1

A saída será exibida diretamente no terminal. Vamos detalhar os elementos-chave da saída:

  • Starting Nmap...: Esta linha indica a versão do Nmap e a hora em que a varredura começou.
  • Nmap scan report for...: Esta linha mostra o endereço IP ou nome de host do alvo.
  • Host is up...: Isso indica se o host de destino é acessível.
  • PORT STATE SERVICE VERSION: Esta é a tabela principal contendo os resultados da varredura.
    • PORT: O número da porta.
    • STATE: O estado da porta (por exemplo, open, closed, filtered).
    • SERVICE: O serviço detectado em execução na porta (por exemplo, http, ssh, smtp).
    • VERSION: A versão do serviço detectado (por exemplo, Apache httpd 2.4.52, OpenSSH 8.9p1).
  • Service detection performed...: Esta linha indica que a detecção da versão do serviço foi realizada.
  • Nmap done...: Esta linha mostra a duração da varredura e o número de hosts varridos.

Analisando a Saída:

  1. Portas Abertas: Identifique as portas abertas. Estas são as portas que estão ouvindo ativamente por conexões e são potenciais pontos de entrada para invasores.
  2. Serviços: Determine os serviços em execução nas portas abertas. Conhecer os serviços permite que você pesquise potenciais vulnerabilidades associadas a esses serviços.
  3. Versões: Identifique as versões dos serviços. Versões mais antigas de software geralmente têm vulnerabilidades conhecidas que podem ser exploradas.

Exemplo:

Se a saída mostrar que a porta 22 está aberta e executando OpenSSH 7.6p1, você pode pesquisar vulnerabilidades conhecidas para essa versão específica do OpenSSH.

Usando grep para Filtrar a Saída:

Você pode usar o comando grep para filtrar a saída do Nmap e se concentrar em informações específicas. Por exemplo, para encontrar todas as linhas contendo a palavra "open", você pode canalizar a saída do Nmap para grep:

Primeiro, execute o comando nmap novamente:

nmap -sV 127.0.0.1

Em seguida, canalize a saída para grep. Como a saída do comando anterior já está no terminal, não podemos canalizá-la diretamente. No entanto, podemos usar grep para pesquisar a saída do comando no histórico do terminal.

history | grep "nmap -sV 127.0.0.1" | tail -n 1 | xargs -L 1 bash -c 'eval $(echo $1 | sed "s/^[ ]*[0-9]*[ ]*//")'

Este comando primeiro encontra a linha no histórico que contém o comando nmap, depois extrai o próprio comando e, finalmente, o executa. A saída do comando nmap será então exibida no terminal.

Agora, vamos usar grep para filtrar a saída. Como não podemos canalizar diretamente a saída do comando anterior, precisaremos executar o comando nmap novamente e canalizar sua saída para grep.

nmap -sV 127.0.0.1 | grep "open"

Isso exibirá apenas as linhas que contêm a palavra "open", facilitando a identificação das portas abertas.

Analisar a saída no terminal é uma habilidade fundamental para administradores de rede e profissionais de segurança. Ele permite que você avalie rapidamente a postura de segurança de um sistema e identifique potenciais vulnerabilidades.

Salvar resultados com nmap -sV -oN services.txt 192.168.1.1

Nesta etapa, aprenderemos como salvar os resultados de uma varredura do Nmap em um arquivo para análise ou relatório posterior. O Nmap oferece vários formatos de saída, e usaremos o formato de saída "normal" (-oN) neste exemplo.

  1. Abra o terminal Xfce.

  2. Digite o seguinte comando e pressione Enter:

nmap -sV -oN services.txt 192.168.1.1

Este comando realiza uma varredura de detecção de versão de serviço (-sV) no endereço IP de destino 192.168.1.1 e salva a saída no formato "normal" (-oN) em um arquivo chamado services.txt em seu diretório atual (~/project).

Explicação:

  • nmap -sV: Realiza a detecção da versão do serviço.
  • -oN services.txt: Especifica que a saída deve ser salva no formato "normal" em um arquivo chamado services.txt.
  • 192.168.1.1: O endereço IP de destino. Observação: Se você não tiver um host em 192.168.1.1, pode usar 127.0.0.1 em vez disso.

Após a conclusão da varredura, você pode visualizar o conteúdo do arquivo services.txt usando o comando cat:

cat services.txt

Isso exibirá os resultados da varredura do Nmap no terminal.

Alternativamente, você pode abrir o arquivo services.txt com um editor de texto como nano:

nano services.txt

Isso permite que você navegue pelos resultados de uma maneira mais estruturada.

Entendendo o Formato de Saída:

O formato de saída "normal" foi projetado para ser legível por humanos e fornece um resumo conciso dos resultados da varredura. Ele inclui informações sobre o host de destino, portas abertas, serviços detectados e suas versões.

Outros Formatos de Saída:

O Nmap suporta vários outros formatos de saída, incluindo:

  • -oX: Formato de saída XML, adequado para análise por outras ferramentas.
  • -oS: Formato de saída Script Kiddie (por diversão).
  • -oG: Formato de saída Grepable, projetado para fácil análise com grep e outras ferramentas de linha de comando.

Salvar os resultados da varredura é essencial para documentar suas descobertas, compartilhá-las com outras pessoas e acompanhar as alterações ao longo do tempo.

Resumo

Neste laboratório, os participantes aprendem a usar o Nmap para detecção de serviços e versões. Eles começam com uma varredura básica de detecção de serviço no localhost usando o comando nmap -sV 127.0.0.1. Eles também aprendem a ajustar a intensidade da varredura, detectar serviços em portas específicas e realizar a detecção completa. Além disso, eles analisam a saída no terminal Xfce e salvam os resultados em um arquivo de texto usando a opção -oN.