PCF-3

Questões comentadas, artigos e notícias

Nmap Básico

Posted by mike em 03/04/2009

Enquanto nosso amigo indígena (papacharliefox) vai escrevendo sobre criptografia, vou fazer uma introdução rápida no port scanner mais utilizado nesta galáxia, o Nmap.

Nmap surgiu da simples idéia de se identificar portas e serviços de um host qualquer. Durante os anos a ferramenta foi evoluindo de tal forma, que hoje há poucas implementações do mesmo nível.

Não vamos abordar neste artigo como usar a ferramenta, seus parâmetros e técnicas avançadas, a abordagem é totalmente teórica e todos que usam a ferramenta deveriam entender o funcionamento interno. Sem mais delongas vamos logo ao que interessa.

Identificando estado de conexão

Uma porta pode ter dois estados: fechado e aberta (listening/escutando e fechado), porém o Nmap utiliza uma abordagem própria para identificar os estados das conexões. O nmap pode identificar as conexões como open (aberta), closed (fechado), filtered (filtrado), unfiltered (sem filtro), open|filtered (aberta|filtrada) ou closed|filtered (fechado|filtrado”): 

open (aberto ou listening)

Neste estado quer dizer que realmente existe uma aplicação escutando na porta.

filtered (filtrado)

Neste caso o Nmap não consegue determinar o estado de conexão, pois algum firewall ou filtro está implementado no meio do caminho (roteador ou firewall) ou há algum problema na rede, quando isso ocorre o Nmap faz várias tentativas de conexão, conforme parâmetros utilizados.

closed (fechado)

Quando uma porta está fechada o Nmap recebe e resposta (RST) que nenhuma aplicação possui uma porta aberta nesta porta.

unfiltered (sem filtro)

Este estado só ocorre quando feito com um scan com a flag ACK. Neste caso o Nmap não sabe dizer se a porta está aberta ou fechada, isso ocorre pois a resposta recebida é um RST, resposta quando uma porta está fechada e quando uma porta recebe o ACK porém não há uma pré-conexão, logo não há como saber o estado da porta. Técnicamente o scan com a flag ACK nem chega a ser um “port scanning”, já que ele não sabe identificar o estado da porta, mas pode ser utilizado para identificar se um host está na rede ou não, uma vez que ele recebe uma resposta. Porém combinando o scan ACK com outras técnicas é possível identificar o estado de uma porta.

open|filtered (aberto|filtrado)

Isto ocorre quando o Nmap não consegue identificar se a porta está aberta ou filtrada, pois não há resposta. Neste cenário pode haver algum problema na rede, filtro de pacote, ou alguma regra de firewall não permitindo a resposta.

closed|filtered (fechado|filtrado)

Este estado acontece quando o Nmap não consegue identificar se a porta está fechada ou filtrada pois não há resposta. Este estado só ocorre com o Idle Scan.

Tipos de Scan

TCP SYN

É o mais comum e padrão ao fazer o scan com o Nmap, dificilmente causa problemas, neste tipo de scan, o handshake não é estabelecido, por isso é rápido e confiável, uma vez que a grande maioria dos sistema operacionais respeitam as implementações da pilha TCP.

TCP connect

É o padrão para IPv6 e quando não há possibilidade de se utilizar raw packets, neste caso o Nmap utiliza a API do respectivo sistema operacional para estabelecer uma conexão TCP.

UDP

Por padrão o Nmap não faz scan UDP, é necessário utilizar o devido parâmetro. Porém é importante frisar que para se fazer um scan UDP que possa ser considerado confiável é necessário a utilização em conjunto do protocolo ICMP. O scan UDP geralmente é muito lento e pode levar horas para se completar.

TCP NULL

Neste tipo de scan o Nmap envia um pacote TCP com todas as flags zeradas (ou sem flag nenhuma)

TCP FIN

Neste cenário, somente a flag FIN é habilitada.

TCP Xmas

As flags FIN, PSH e URG são habilitadas. Xmas é a abreviação em inglês para Natal (25/12). Segundo Fyodor (autor do Nmap), quando habilitado estas flags o pacote TCP se parece com uma árvore de natal piscante, o  Cada loco com a sua mania,  o campo flag do cabeçalho TCP fica assim:  00101001.

O comportamento destas três formas de scan é igual:

  • Se receber um RST é porque a porta está fechada
  • Se nenhuma resposta for recebida, a porta está aberta ou filtrada
  • Se receber determinados tipos de ICMP (unreachable error)  a porta está filtrada 

TCP ACK

Somente a flag ACK é habilitada. Conforme explicado anteriormente, a flag ACK não vai te trazer o estado da porta, porém vai te dizer que a porta é ‘alcançável’. Este tipo de scan deve ser utilizado em conjunto com outras técnicas de scan. Este flag ajuda bastante na auditoria de regras de firewall.

TCP WINDOW

Funciona como o TCP ACK, só que ele verifica o campo WINDOW, se tiver um valor positivo a porta está aberta, se tiver o valor zerado a porta está fechada. Porém nem todo sistema implementa este comportamento, logo este scan deve ser utilizado em conjunto com outros tipos.

TCP Maimon

Um cara chamado Uriel Maimon percebeu que ao enviar pacotes com as flags FIN/ACK era possível identificar se a porta está aberta ou fechada. Como isto varia de acordo com a implementação da pilha TCP de cada sistema operacional, não pode ser considerada uma técnica muito confiável, novamente deve ser utilizado com outras formas de scan.

Custom TCP

Neste tipo de scan você pode combinar as flags. Segundo Fyodor, usuários avançados irão utilizar este tipo de scan para verificar comportamentos diferentes conforme a implementação da pilha TCP.

Idle

Se é necessário se manter ‘invisível’ na rede, este é o scan certo. Neste tipo de scan é possível identificar o estado das portas sem enviar um único pacote para o seu alvo. Não é muito fácil executar este tipo de scan, primeiramente você precisa identificar um host com baixa latência e além disso o host deve ter implementado o IP ID de forma sequencial ou que teoricamente o IP ID possa ser descoberto.

IP protocol

Este tipo de scan é utilizado para saber se algum tipo de protocolo IP é suportado pelo alvo. Aparentemente não é muito útil, mas é importante frisar que através da identificação de quais protocolos estão disponíveis é possível direcionar ataques ou mesmo identificar possíveis disponsitivos. Também utilize este tipo de scan com outras combinações. Lembre-se que mesclando vários tipos de scan é possível obter dados interessantes sobre o comportamento da pilha TCP/IP.

FTP bounce

Este scan basicamente utiliza um servidor FTP como proxy para identificar portas abertas em um host. Atualmente não há muitos servidores FTP vulneráveis a este tipo de ataque, porém foi largamente utilizado no passado, na época do lançamento do nmap era muito comum este tipo de vulnerabilidade. Não custa nada tentar achar um host vulnerável a este tipo de ataque para realizar um scan ‘invisível’.  

Detecção de serviços e  Sistema Operacional

Além de descobrir que a port 80/tcp está aberta, o Nmap também sabe dizer que o serviço que está rodando é http e se é Apache/IIS/Nginx/lighttpd/Weblogic e sua respectiva versão. Isso ocorre pois o nmap possui um banco de dados com várias assinaturas. Além de cruzar informações sobre a pilha TCP/IP, o Nmap logo consegue identificar o sistema operacional. Ao realizar a identificação do serviço/porta/sistema operacional, logo é possível fazer todo o reconhecimento da rede, isso é primordial para uma varredura de vulnerabilidades, procurar por hosts maliciosos, buscar por dispositivos não autorizados conectados na rede. A realização de scan não só traz mais segurança para o ambiente, como também pode ser usado contra a segurança, isso só depende de como você usa. Pode parecer óbvio isso para alguns, mas alguns administradores de rede pensam que todo port scanning é coisa de ‘hacker do mal’ e qualquer tentativa de scan deve ser bloqueada.

 Isso é uma pequena e básica introdução ao Nmap, não existe uma documentação boa em pt-br pela Internet tupiniquim. Irei cobrir aspectos com mais profundidade nos próximos artigos, que na minha insignificante opinião é um assunto conhecido bem por poucos e deveria ser óbvio para todos aqueles que trabalham como Adminstradores de Sistema, Analistas de Redes e afins. Para os ‘concurseiros’ é importante saber como determinadas ferramentas open source funcionam, uma vez que o governo deste país é apoiador do software livre.

 

4 Respostas to “Nmap Básico”

  1. felipeel said

    Show de bola!

  2. Muito bom, parabéns. Só faltou o link: http://nmap.org/

    :) T+

  3. papacharliefox3 said

    Boa japa! Esse livro de nmap tá rendendo…

  4. fusquinha said

    Esse blog e dmais…

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: