12 Exemplos de uso do utilitário nmap

Nmap – Network Mapper

O nmap é um utilitário open source para exploração de redes e auditoria de segurança. Criado por Gordon Lyon em 1997, ele permite escanear desde hosts únicos a grandes redes de dispositivos, tanto local quanto remotamente, por meio do envio de pacotes e análise das repostas recebidas.

O nmap roda em Linux, BSD, OS X e Windows, possuindo interface padrão em linha de comandos e também uma implementação de interface gráfica, chamada de zenmap.

Neste tutorial vamos mostrar doze exemplos de uso do nmap. Mas antes, precisamos instalá-lo no sistema. Usaremos um sistema Ubuntu Linux para mostrar os exemplos, que poderão ser replicados em qualquer outro sistema:

Como instalar o nmap e zenmap

Vamos instalar os pacotes:

# apt install nmap zenmap

Verificar se nmap e zenmap estão instalados:

# whereis nmap
# whereis zenmap

Não vamos utilizar o zenmap neste tutorial; deixe-o instalado pois vamos mostrar como usá-lo nos próximos tutoriais sobre o assunto.

Vamos aos exemplos de uso do nmap agora.

Exemplos

1 – Listar as portas abertas em um host remoto, como o scanme.nmap.org:

# nmap scanme.nmap.org

Listar portas abertas em um host remoto com nmap

Conta comum: envia TCP Connect Scan; Conta com privilégios: envia SYN Stealth Scan.

Estados das portas

As portas podem se encontrar nos seguintes estados:

  • open – Uma aplicação está escutando conexões nesta porta.
  • closed – Pacote recebido, mas nenhuma aplicação escutando na porta.
  • filtered – Pacote não recebido, e estado não pôde ser estabelecido. Pacotes podem estar sendo descartados por filtros.
  • unfiltered – Pacote recebido, mas estado não pôde ser estabelecido.
  • open/filtered – Porta filtrada ou aberta, mas o nmap não conseguiu estabelecer o estado.
  • closed/filtered – Porta filtrada ou fechada, mas o nmap não conseguiu estabelecer o estado.

2 – Detecção de Versão de Serviços

A detecção de serviço é uma das técnicas mais usadas no nmap, permitindo por exemplo identificar vulnerabilidades de segurança ou simplesmente verificar se um serviço está rodando em uma porta específica.

A flag sV habilita detecção de serviço, retornando informações sobre serviços e versões.

# nmap -sV scanme.nmap.org

Detecção de serviços com nmap

3 – Usar o Modo Agressivo

O modo agressivo é um modo de operação especial do nmap que é ativado com o uso da flag A, habilitando a detecção de S.O., versão, escaneamento de script e traceroute:

# nmap -A localhost

Como usar o modo agressivo com nmap

4 – Encontrar hosts ativos na rede

Podemos enumerar ou monitorar alvos ativos, usando a flag P (ping scanning):

# sudo nmap -sP 192.168.1.1/24

Encontrar hosts ativos na rede com nmap

5 – Escanear portas específicas na rede

Podemos escanear uma porta ou grupo de portas específicas com a flag -p

# sudo nmap -p80 192.168.1.1/24

Escanear portas específicas na rede com nmap

Outras formas de escanear portas específicas:

Lista de portas:

# sudo nmap -p80, 443 192.168.1.1/24

Faixa de portas:

# sudo nmap -p1-200 192.168.1.1/24

Todas as portas:

# sudo nmap -p- 192.168.1.1/24

Portas específicas por protocolos:

# sudo nmap -pT:22,U:53 192.168.1.1/24

Por nome de serviço:

# sudo nmap -p ftp 192.168.1.1/24

6 – Identificar hostnames

Podemos identificar os nomes de hosts ativos na rede com a flag -L

# sudo nmap -sL 192.168.1.1/24

identificar hostnames com nmap na rede

7 – Identificar sistema operacional

Para identificar o sistema operacional de um host usamos a flag -O

# sudo nmap -O 192.168.1.1

Como identificar o sistema operacional usando nmap

8 – Escanear as x principais portas

Podemos escanear as x principais portas (por exemplo, as 20 principais portas) com o parâmetro –top-ports:

# sudo nmap --top-ports 20 192.168.1.1

Escanear principais portas nmap

9 – Salvar a saída em um arquivo de texto

Podemos salvar a saída gerada pelo nmap em um arquivo de texto, que pode ser analisado posteriormente, com a opção -oN:

# sudo nmap --top-ports 20 -oN saida.txt 192.168.1.1

E então abrir essa saída usando qualquer editor de textos, ou até mesmo o comando cat.

10 – Ler um arquivo de texto contendo IPs

Podemos usar um arquivo de texto contendo diversos endereços IP com entrada para o escaneamento do nmap com a opção -iL.

Suponha que tenhamos um arquivo de nome listaIP.txt e que possua o seguinte conteúdo:

192.168.1.1
8.8.8.8
192.168.1.60
www.locaweb.com.br

Usamos o comando como segue:

# sudo nmap -p80 -iL listaIP.txt

11 – Escanear apenas portas TCP ou UDP

Podemos especificar se o escaneamento deve ocorrer apenas em portas TCP ou UDP (o padrão é em ambas), com as flags -sT (TCP) e -sU (UDP):

# sudo nmap -sT localhost
# sudo nmap -sU localhost

Escanear portas TCP e UDP com nmap

12 – Mostrar rotas e interfaces no host

Podemos verificar a configuração das interfaces de rede e as rotas no host que roda o nmap, para fins de troubleshooting:

# sudo nmap -iflist

Mostrar rotas e interfaces no host com nmap

Bônus: Como usar o NSE – Nmap Scripting Engine

Recurso poderoso do nmap, o NSE nos permite usar um conjunto pré-determinado de scripts, ou ainda escrever nossos próprios scripts de alta complexidade.

Um exemplo é um script de teste completo de vulnerabilidade:

# sudo nmap -Pn --script vuln 192.168.1.1

Nmap Script Engine  - NSE

Referências

Lyon, G. F. Nmap Network Scanning. Ed. Insecure.com, 1ª Ed. 2008

 

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*