Vamos falar sobre a forma como o NMAP pode identificar a versão de um serviço que está operando em uma porta.
Primeiramente, vamos analisar o que motiva a saber as versões dos serviços em uma porta.
Veja mais posts do nosso tutorial: NMAP
Artigo 01 – NMAP: Mapeamento de portas TCP e UDP
Artigo 02 – NMAP: Scan avançado
Artigo 03 – NMAP : Identificar a versão de um serviço
Dessa forma, temos que verificar qual o objetivo da verificação, por exemplo verificar a necessidade de atualizar serviços que estão com vulnerabilidades ou investigar um serviço específico.
Por que verificar a versão de um serviço com NMAP?
O NMAP utiliza algumas técnicas de sondagem para obter informações suficientes para indicar a probabilidade de existência de um serviço e seu versão.
Além disso, em alguns casos temos serviços que usam as mesmas portas bem conhecidas e isso pode levar a uma identificação do serviço de forma incorreta.
O site do NMAP explica que um serviço como o Checkpoint Firewall-1 GUI pode usar a mesma porta que o yak Windows chat. Nesse caso específico, os dois serviços usam a porta 258 TCP.
Apresentaremos mais detalhes teóricos no final do artigo.
NMAP: Verificando a versão de um serviço
O NMAP utiliza a opção -sV para fazer a varredura de serviços e versões. Alternativamente, podemos usar o -A que também pode ser usado para identificar a versão de serviços.
O comando abaixo é usado para verificar a as versões em um host 192.168.0.2. Podemos verificar os serviços que foram detectados e suas respectivas versões.
nmap -sV 192.168.0.2
Print do wireshark
Opção para incluir todas as portas
–allports : essa opção usada em conjunto com o -sV permite verificar todas as portas do host. Dessa forma, portas normalmente excluídas como a porta 9100 usadas por impressoras serão verificadas.
Assim, vale ressaltar que algumas portas, como a 9100, podem fazer com que a impressora imprima páginas devido aos dados que são enviados na varredura do NMAP.
nmap -sV --allports 192.168.0.2
Opção para intensidade na sondagem
–version-intensity 0-9 : utilizando a opção -sV, são enviadas uma serie de sondagens com o Nmap.
É possível aumentar o número de sondagens alterando o valor do –version-intensity.
Dessa forma, se desejamos que sejam enviados testes de sondagens para serviços mais comuns podemos usar valores baixos no –version-intensity.
No entanto, se desejamos utilizar um maior número de testes de sondagem devemos aumentar o valor do –version-intensity.
Vale ressaltar que utilizando valores de –version-intensity maiores, a varredura do NMAP vai demorar mais. Além disso, vale lembrar que o valor tem que estar entre 0 e 9. Adicionalmente, o modo default usa o valor 7 de intensidade.
No entanto, quando a varredura é direcionada a uma porta específica serão feitos testes adicionais e específicos de serviços que operam na porta em questão.
Dessa forma, independentemente do grau de intensidade as sondagens dos serviços típicos das portas específicas também serão testadas.
nmap -sV --version-intensity 5 192.168.0.2
Mais opções de sondagem
–version-light : é o mesmo que usar –version-intensity 2. Consequentemente, é uma forma mais rápida de fazer a verificação, porém com menor probabilidade de identificação.
–version-all : é o mesmo que usar –version-intensity 9. Consequentemente, é uma forma mais lenta de fazer a verificação, porém com maior probabilidade de identificação.
–version-trace: apresenta informações adicionais sobre o que a versão de escaneamento está fazendo.
nmap -sV --version-trace 192.168.0.2
Mais teoria sobre scan de serviços e versões no NMAP
A investigação de tipo de serviço e versão pode revelar mais informações descobertas sobre um serviço são coletadas no campo “info”.
Como o NMAP mostra a versão de um serviço?
O NMAP exibe essa informação na coluna VERSÃO entre parênteses após o nome e a versão. Além disso, este campo pode incluir números de protocolos, como os usados no SSH e módulos como os do servidor Apache.
Além disso, alguns serviços podem informar o nome do host e apresentar uma diferença em relação ao nome provido pelo DNS.
Dessa forma, o administrador de rede dever verificar se a informação de hostname apresenta algum risco de exposição de informação não desejada.
NMAP pode identificar sistema operacional?
Sim, o scan baseado em versão e identificação de serviços também pode ser usado para especular o sistema operacional do host.
Isso porque, existem serviços que somente operam em um único sistema operacional. Dessa forma, uma vez que o serviço descoberto operar apenas em um sistema operacional o NMAP pode deduzir o sistema operacional do host.
Como funciona o banco de dados do NMAP?
O banco de dados do nmap-service-probes contém sondas para verificar vários serviços e expressões de correspondência usadas para identificar e analisar respostas.
Dessa forma, o NMAP tenta verificar qual é o protocolo de serviço , o nome do aplicativo do servidor, o número da versão, nome do host, tipo de dispositivo do host e o sistema operacional.
Além disso, o nmap-service-probes pode obter a representação Common Platform Enumeration (CPE) das informações coletadas.
Assim, é possivel identificar se um servidor X está operacional para conexões e versões do protocolo usado no SSH.
Veja mais posts do nosso tutorial: NMAP
Artigo 01 – NMAP: Mapeamento de portas TCP e UDP
Artigo 02 – NMAP: Scan avançado
Artigo 03 – NMAP : Identificar a versão de um serviço
Mais sobre NMAP:
Juliana Mascarenhas
Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer
Tutorial Instalar VNC em Linux Ubuntu
O acesso remoto é uma ferramenta indispensável para administradores e usuários que precisam gerenciar servidores…
Tutorial: Instale seu Servidor DNS no Linux com Bind9 Passo a Passo
Nesse tutorial vamos dar todo o passo a passo para que você instale uma configuração…
SSH: Como criar chave pública
Nesse tutorial vamos ensinar a criar e configurar o acesso a um servidor SSH usando…
Socket em Python criando chat UDP
Tutorial para a criação de um chat simples utilizando sockets em UDP em Python 3….
Socket em Python, criando um Chat
Tutorial para a criação de um chat simples utilizando sockets TCP em Python 3. O…
Como usar apt get com proxy
Ao longo dos tempos sempre me deparo nos laboratórios de rede com a necessidade de…