Detecção de Serviço e Versão

NmapBeginner
Pratique Agora

Introdução

Em segurança de rede e administração de sistemas, saber que uma porta está aberta é apenas metade do caminho. Por padrão, os scanners de porta adivinham o serviço em execução com base nos números de porta padrão (por exemplo, assumindo que a porta 80 é sempre um servidor web HTTP). No entanto, administradores podem executar qualquer serviço em qualquer porta.

É por isso que a detecção de banners e versões é importante. Os números de porta são dicas, não provas. Ambientes reais frequentemente utilizam portas personalizadas, proxies reversos, frontends de contêineres ou nomes de serviço enganosos.

Para identificar com precisão o que realmente está sendo executado em um sistema alvo, você precisa interrogar as portas abertas. Neste laboratório, você explorará os recursos de detecção de versão do Nmap. Você aprenderá a capturar banners de serviço e identificar com precisão os nomes dos softwares e os números de versão exatos, o que é um passo crítico na avaliação de vulnerabilidades.

Habilitar a Detecção de Versão

Nesta etapa, você aprenderá o básico da detecção de versão do Nmap. Por padrão, o Nmap apenas informa se uma porta está aberta e qual serviço normalmente é executado nela com base em uma tabela de consulta estática. Para descobrir exatamente qual software está escutando, você precisa interrogar ativamente o serviço.

Você pode habilitar a detecção de versão adicionando a flag -sV ao seu comando Nmap. Isso instrui o Nmap a enviar uma série de sondagens específicas para as portas abertas e analisar as respostas para determinar o serviço e sua versão.

Em outras palavras, o Nmap para de inferir apenas pelo número da porta e começa a interrogar o comportamento da aplicação diretamente.

Execute o seguinte comando no seu terminal para escanear sua máquina local e detectar as versões dos serviços em execução:

nmap -sV -p 80,8080 localhost

Você verá uma saída semelhante a esta:

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000010s latency).
PORT     STATE SERVICE VERSION
80/tcp   open  http    nginx 1.18.0 (Ubuntu)
8080/tcp open  http    SimpleHTTPServer 0.6 (Python 3.10.12)
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 6.51 seconds

Observe a coluna VERSION na saída. Em vez de apenas adivinhar que a porta 80 é HTTP, o Nmap comunicou-se ativamente com a porta e descobriu que ela está executando o Nginx versão 1.18.0. Ele também identificou com sucesso um servidor HTTP Python rodando na porta 8080.

Ajustar a Intensidade da Versão

Nesta etapa, você aprenderá como controlar a agressividade da detecção de versão do Nmap. O Nmap usa uma escala de 0 a 9 para determinar quantas sondagens enviar a um serviço alvo.

A intensidade padrão é 7. Uma intensidade maior significa que o Nmap tentará mais sondagens, o que aumenta as chances de identificar corretamente o serviço, mas leva mais tempo. Uma intensidade menor é mais rápida, mas pode falhar ao identificar serviços obscuros. Você pode ajustar isso usando a flag --version-intensity seguida por um número entre 0 e 9.

Este é outro compromisso entre velocidade e certeza. Quanto mais incerto ou incomum o alvo parecer, mais valiosa se torna uma sondagem profunda.

Vamos tentar uma varredura altamente agressiva definindo a intensidade como 9. Isso força o Nmap a tentar cada sondagem em seu banco de dados contra as portas abertas. Execute o seguinte comando:

nmap -sV -p 80,8080 --version-intensity 9 localhost

A saída será semelhante à etapa anterior, mas, nos bastidores, o Nmap foi muito mais minucioso em sua interrogação:

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000012s latency).
PORT     STATE SERVICE VERSION
80/tcp   open  http    nginx 1.18.0 (Ubuntu)
8080/tcp open  http    SimpleHTTPServer 0.6 (Python 3.10.12)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Você também pode usar a flag --version-light como um atalho para a intensidade 2, ou --version-all como um atalho para a intensidade 9. Esses atalhos facilitam o ajuste rápido do comportamento da varredura sem precisar memorizar os números exatos.

Identificar a Versão Exata do Software

Nesta etapa, você focará em identificar a versão exata do software de um serviço específico e salvar os resultados para documentação. Ao realizar avaliações de segurança, manter um registro das versões exatas do software é crucial para encontrar vulnerabilidades conhecidas.

Em vez de escanear todas as portas, você pode focar em uma porta específica usando a flag -p e salvar a saída em um arquivo usando a flag -oN. Isso é muito útil quando você deseja isolar um serviço específico e compartilhar as descobertas com sua equipe.

Execute o seguinte comando para escanear apenas a porta 80, detectar sua versão e salvar a saída em um arquivo chamado version_scan.txt no seu diretório atual:

nmap -sV -p 80 localhost -oN version_scan.txt

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

cat version_scan.txt

Sua saída deve exibir a versão exata do servidor Nginx rodando na porta 80:

## Nmap 7.80 scan initiated ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000015s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    nginx 1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

## Nmap done at ...

Ao documentar a versão exata, como nginx 1.18.0, você agora pode pesquisar em bancos de dados de vulnerabilidades para verificar se esta versão específica possui alguma falha de segurança conhecida.

Resumo

Neste laboratório, você explorou os poderosos recursos de detecção de versão do Nmap. Você aprendeu como usar a flag -sV para ir além da simples varredura de portas e interrogar ativamente os serviços para descobrir seus nomes e versões exatas de software. Você também aprendeu como ajustar a intensidade da varredura usando --version-intensity para equilibrar velocidade e precisão, e como focar em portas específicas e salvar os resultados para análise de vulnerabilidades. Essas habilidades são essenciais para um mapeamento de rede preciso e auditoria de segurança.