Vamos apresentar a ferramenta de mapeamento NMAP. Muito utilizada para verificar máquinas na rede e seus serviços mapeados em portas TCP e UDP.
Além disso, é uma ferramenta muito útil em Pentest e investigações de problemas dentro de uma rede.
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
Neste vídeo apresentamos alguns conceitos sobre o NMAP e aplicações da ferramenta na detecção de portas TCP e UDP.
Instalação do NMAP
Em relação a instalação do nmap, essa pode ser feita baixando no site do nmap ou por gerenciadores de pacotes.
Existem versões disponíveis para Linux, Windows, MAC etc. Caso opte por utilizar no Linux, pode usar o comando abaixo para instalação:
sudo apt-get install nmap
NMAP primeiros passos
Para esse tutorial vamos utilizar o nmap que já está instalado. Dessa forma, para verificar as opções disponíveis na ferramenta nmap, podemos usar o comando abaixo:
nmap
Mapeando as máquinas da rede com NMAP
Agora, vamos iniciar um mapeamento da rede. Dessa forma, vamos usar o nmap para buscar as máquinas na rede e verificar os serviços disponíveis.
Além disso, vale ressaltar que o nmap pode buscar por serviços que operam em portas UDP e TCP.
Como exemplo vamos usar o comando abaixo para pesquisar hosts na rede 192.168.0.0/24.
nmap 192.168.0.0/24
Analisando o NMAP no Wireshark
Também vamos investigar a forma como o nmap descobre máquinas na rede. Para isso, vamos usar o wireshark.
O Wireshark possibilita a investigação de pacotes coletados a partir do tráfego que está sendo coletado da rede ou de um host específico.
Existem outras funcionalidades disponíveis no wireshark, mas vamos falar disso em outro momento.
NMAP descobrindo portas TCP abertas
O nmap usa pacotes SYN para a descoberta das portas TCP abertas, nessa modalidade que estamos usando.
Dessa forma, são enviados SYN e aguarda-se a resposta SYN+ ACK e depois é enviado um ACK. Essa modalidade padrão de escaneamento do nmap faz a conexão inteira utilizado as 3 fazes da conexão de 3 vias.
Quando o nmap envia um SYN e obtém uma resposta que dá continuidade a conexão, a ferramenta interpreta que a porta está aberta. No entanto, quando recebe um RST, o nmap interpreta que a porta está fechada.
Isso porque, em ambientes normais um host vai responder com RST quando houver uma solicitação a uma porta que está fechada.
No entanto, vale ressaltar que podemos ter um equipamento ou um software filtrando as respostas de um determinado host.
Dessa forma, ao invés de responder com um RST o host pode apenas descartar o pedido de conexão. Nesse caso, a porta pode aparecer como filtrada.
Utilizaremos o WIreshark para investigar comportamentos relacionados ao NMAP em mapeamento de portas TCP e UDP.
Observando os pacotes SYN, SYN+ACK e RST
Podemos observar no Wireshark os pacotes SYN, SYN+ACK, ACK e RST.
Aqui podemos ver o comportamento da ferramenta ao tentar verificar os serviços que são executados nas portas investigadas.
Escaneando um host coma opção -sT
Essa opção segue o escaneamento padrão do nmap, executando as 3 vias do TCP para detectar se uma porta está aberta.
nmap -sT 192.168.0.1
NMAP: scan com a opção -sS
Outra forma de escaneamento de portas TCP é com a opção -sS. Nessa opção, o nmap envia um SYN e aguarda por um SYN+ACK.
Depois disso, o nmap fecha a conexão enviando um RST para o alvo. Dessa forma, o nmap não completa as 3 vias da conexão TCP.
O Objetivo é fazer um scan mais rápido e até mais silencioso do que o utilizando a opção -sT.
sudo nmap -sS 192.168.0.1
NMAP direcionado a uma porta –p
O nmap também permite que seja especificado uma porta para ser investigada. Para isso, usamos a opção -p e a porta que desejamos verificar.
Essa opção é interessante quando desejamos verificar um serviço específico em um host. Nesse exemplo vamos escanear a porta 21 relacionada ao protocolo FTP.
sudo nmap -sS 192.168.0.1 -p 21
Escanear uma lista de portas
Outra opção interessante é especificar uma lista de portas como por exemplo da porta 20 até a 30.
Para isso usamos a opção -p seguida da primeira porta e “-” seguido da última porta.
sudo nmap -sS 192.168.0.1 -p 21-23
Opção do Fast NMAP – F
Para varredura de portas mais rápidas, podemos usar a opção “-F”. Esta opção “-F”, verifica as 100 portas comumente usadas ao invés das 1000 portas usadas na varredura padrão do nmap.
sudo nmap -F 192.168.0.1
Scan de portas UDP –sU
O nmap também escaneia portas UDP. Para isso, o nmap envia pacotes para as portas UDP do host e aguarda uma mensagem ICMP de destino inalcançado.
sudo nmap -sU 192.168.0.1
Como saber se a porta UDP está aberta?
O nmap vai supor que uma porta está aberta ou filtrada quando não houver resposta icmp de destino inalcançada.
O motivo de supor que uma porta está aberta ou filtrada é porque uma porta aberta pode não retornar nenhuma resposta o que sugere que esteja aberta.
No entanto, as respostas icmp podem estar sendo filtradas no host destino ou em um firewall intermediário. Dessa forma, o nmap não tem como ter certeza se a porta está aberta ou filtrada.
nmap -sU 192.168.0.1 -p 631-635
Por que escaneamento de portas UDP demora?
Porque alguns sistemas operacionais, como é o caso do Linux a partir do kernel 2.4.20, limitam o envio de ICMP de destino inalcançável em 1 por segundo. Dessa forma, isso faz com que escanear 65.536 portas leve mais de 18 horas.
No entanto existem técnicas para escanear portas populares, vários hosts em paralelo, dentre outras que podemos falar em outro momento.
Análise de scan UDP no Wireshark
Por que o scan UDP repete o envio?
Porque o envio de pacotes UDP podem se perder e a resposta de ICMP mostrando que está inalcançável também pode se perder. Dessa forma, o nmap repete o envio para garantir que não tenha havido perdas.
Você completou a primeira aula sobre NMAP Mapeamento de portas TCP e UDP
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
Comente se gostaria de ver mais posts sobre o NMAP. Existem várias possibilidades de usar o NMAP para mapeamento de portas TCP e UDP.
Veja mais:
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…