segunda-feira, 31 de agosto de 2009

O poder do Nmap

O Nmap é uma poderosa ferramenta para mapeamento de rede. O que diferencia o Nmap das demais opções disponíveis é a grande quantidade de técnicas e opções disponíveis para a varredura de rede.
O propósito deste artigo é mostrar as principais técnicas e opções de varredura existentes nesta versátil ferramenta.
O Nmap é mantido por "Fyodor" em seu website http://www.insecure.org o site possui bastante conteúdo para quem se gosta de segurança da informação.

Agora vamos ao que interessa.

O Nmap está presente em praticamente todos os repositórios de praticamente todas as distribuições. Para instalá-lo no ubuntu 9.04 siga o passo a seguir:

apt-get install nmap

Depois de instalado o Nmap está pronto para ser utilizado.

Para se ter acesso a todo o poder de fogo do Nmap é preciso que você esteja logado no sistema como um usuário privilegiado uma vez que o nmap utiliza pacotes customizados que só podem ser gerados por usuários com acesso total aos recursos do sistema. O uso do Nmap por usuários não privilegiados não significa que o mesmo não irá funcionar, mas certos métodos de varredura não estarão disponíveis para esses usuários.

Técnicas de Varredura

O Nmap possui Quinze métodos de varredura, cada um com suas características, vantagens e desvantagens.

Abaixo segue um sumário dos métodos de varredura utilizados pelo Nmap.




TCP SYN Scan(-sS)

Este método de varredura permite ao Nmap colher as informações a respeito de portas abertas sem completar o processo de conexão conhecido como "TCP Handshake". Quando uma porta é identificada o processo de "TCP Handshake" é reiniciado sem que a conexão seja realizada.
Uma das vantagens desse método é que uma vez que a conexão não é efetivamente criada ela não vai constar nos logs do sistema alvo.
Esse método de varredura é utilizado por default no Nmap para usuários privilegiados.

TCP connect Scan (-sT)

Este método de varredura utiliza uma conexão TCP normal para determinar as portas abertas em um dispositivo remoto. Uma das vantagens deste método é que não há a necessidade de se utilizar um usuário privilegiado para a varredura, já a desvantagem deste método é que uma vez que a conexão é efetivamente realizada, a mesma vai constar nos logs do sistema alvo.

FIN Scan (-sF), Xmas Tree Scan (-sX) e Null Scan (-sN)

Estas três formas de varredura estão agrupadas porque seu funcionamento é bastante similar. Esses tipos de varredura são conhecidos como "stealth" pois mandam apenas um pacote para o host a ser verificado e aguarda apenas um pacote como retorno, utilizando o mínimo possível de banda para a verificação.

FIN Scan

Este método consiste no envio de um pacote com a flag FIN para a o dispositivo a ser verificado. Se um pacote FIN for enviado a uma porta fechada um pacote com a flag RST será enviado como resposta. Já se a porta estiver aberta nenhuma resposta é enviada de volta a estação realizando a varredura. Há também a possibilidade de que a porta sendo monitorada esteja sendo gerenciada por um firewall que realize o DROP do pacote enviado a porta em questão. Por isso os resultados apresentados por esse scan são apresentados como abaixo:

nmap -sF -v 192.168.0.1
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-04-23
21:17 EDT
Initiating FIN Scan against 192.168.0.1 [1663 ports] at 21:17
The FIN Scan took 1.51s to scan 1663 total ports.
Host 192.168.0.1 appears to be up ... good.
Interesting ports on 192.168.0.1:
(The 1654 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
23/tcp open|filtered telnet
79/tcp open|filtered finger
110/tcp open|filtered pop3
111/tcp open|filtered rpcbind
514/tcp open|filtered shell
886/tcp open|filtered unknown
2049/tcp open|filtered nfs
MAC Address: 00:03:47:6D:28:D7 (Intel)
Nmap finished: 1 IP address (1 host up) scanned in 2.276 seconds
Raw packets sent: 1674 (66.9KB) | Rcvd: 1655 (76.1KB)
#


Os resultados são exibidos como (open|filtered) pois não há como se ter certeza de que não haja um firewall realizando o DROP nas portas verificadas. Outros métodos podem ser utilizados para verificar o real estado das portas.

XMAS Tree Scan (-sX)

Funciona da mesma forma que o FIN Scan, com a diferença de que as flags setadas são as URG e PUSH. Os resultados exibidos são similares ao do FIN Scan.

Null Scan (-sN)

Funciona da mesma forma que o FIN Scan, com a diferença de que nenhuam flag é setada para esse método de varredura. Os resultados exibidos também são similares ao do FIN Scan.

Dentre as vantagens destes métodos de varredura se destaca o fato de estes serem os métodos menos invasivos, não gerando nenhuma entrada nos logs do dispositivo verificado.

Infelizmente a Microsoft não segue os padrões definidos em RFC para o protocolo TCP/IP por isso para essas formas de verificação todas as portas, independente de seu estado, vão constar como fechadas. Portanto esses métodos se mostram ineficazes em hosts com windows.
Em contrapartida estações que exibem portas como open|filtered de certo não são estações baseadas em windows, facilitando o processo de identificação do SO.

Ping Scan (-sP)

O Ping Scan é um dos métodos de varredura mais rápidos do Nmap uma vez que nenhuma porta é verificada. Este método é útil para detectar hosts ativos e para verificar se o protocolo ICMP está trafegando através de determinado firewall.

Version Detection (-sV)

Enquanto a maioria dos métodos do Nmap se destina a identificar o número das portas, o método Version Detection se preocupa em identificar a versão dos serviços rodando no host remoto.
Para este método funcionar o Nmap precisa do arquivo nmap-service-probes que no Ubutu encontra-se em /usr/share/nmap/nmap-service-probes. Se este arquivo não estiver presente o método não irá funcionar.
O método de verificação de versão deve ser utilizado com outro tipo de scan para detectar as portas abertas. Se nenhum outro tipo de scan foi especificado o TCP SYN Scan é utilizado por padrão.
A vantagem de se utilizar o método acima é estar sempre ciente das versões dos serviços rodando em sua rede para mantê-los sempre atualizados.

UDP Scan (-sU)

No UDP Scan, de acordo com as definições do próprio protocolo, não há "handshaking". Os pacotes são enviados e recebidos sem aviso, simplificando o processo processo de varredura.

IP PROTOCOL Scan (-sO)

O Protocol Scan é diferente dos demais, esse método se destina a identificar protocolos IP adicionais no host remoto como ICMP, TCP e UDP.
A principal função do IP protocol é identificar a função do host remoto na rede, uma vez que quando um roteador é scaneado por exemplo, protocolos adicionais podem ser exibidos como o EGP ou IGP.

ACK Scan (-sA)

O método ACK Scan não se destina a descobrir portar abertas mas em definir o estado de "filtered" ou "unfiltered" uma vez que não há conexão para verificar o estado da porta. O ACK Scan nos provê a capacidade de verificar se determinado pacote pode ou não atravessar um firewall ou um link com filtro de pacotes.

Windows Scan (-sW)

O Windows Scan tem seu esse nome devido a definição de janelas no TCP e não devido ao Sistema Operacional da Microsoft. Este método é similar ao ACK Scan com o diferencial de descobrir se existem ou não portas abertas no host remoto.

RPC Scan (-sR)

O RPC Scan é utilizado para localizar e identificar serviços RPC. Depois de identificar as portas abertas com qualquer outro método de varredura o RPC Scan envia a cada porta um RPC Null para gerar uma resposta da aplicação RPC a fim de determinar o serviço RPC. O RPC Scan é executado automaticamente quando um Version Detection Scan (-sV) é executado.

LIST Scan (-sL)

O List Scan não é realmente uma varredura, mas provê ao nmap a capacidade de testes e de "troubleshooting". Esse método apenas lista os IPs que normalmente seriam scaneados.

IdleScan (-sI )

O IdleScan é uma forma engenhosa de se colher informações utilizando outra estação da rede, aparentando que outra estação iniciou o processo de varredura. Consulte a fonte indicada no final deste artigo para maiores informações a respeito do funcionamento deste excepcional método de varredura.

FTP Bounce Attack (-b )

O FTP Bounce Attack utiliza uma falha em servidores FTP para realizar sua varredura. Como o IdleScan este método utiliza um terceiro host na realização do scan. Para maiores informações a respeito do FTP Bounce Attack acesse o link http://www.insecure.org/nmap/hobbit.ftpbounce.txt.

Neste artigo foram descritas os principais métodos de varredura realizados pelo Nmap. Para maiores informações a respeito do funcionamento de cada método e informações detalhadas a respeito do Nmap acesse o excelente material disponibilizado por James Messer em seu site que foi usado como fonte para este artigo, lá você irá encontrar informações bem mais detalhadas a respeito dessa poderosa ferramenta.

http://www.networkuptime.com/nmap/index.shtml

Grande abraço.

Nenhum comentário:

Postar um comentário