Estudo da Ferramenta NMAP Leandro Corrêa Brisolara Faculdade de Tecnologia Senac Pelotas(FATEC) Faculdade de Redes de Computadores Rua Gonçalves Chaves, 602 Centro Lea1174@gmail.com Resumo. Este artigo tem como objetivo mostrar o estudo da ferramenta NMAP, no que se diz respeito as técnicas de escaneamento e de descoberta de hospedeiros, bem como suas diferenças e a comprovação das mesmas. Abstract. This article aims to show the study of tool NMAP, in what concerns the techniques of scanning and discovery of hosts, as well as their differences and proof thereof. 1. Introdução O NMAP( Network Mapper - mapeador de redes) é um software poderoso, mas também complexo com mais de 100 opções de linha de comando que rodava inicialmente no sistema operacional Linux, mas hoje também tem versões para Windows e MacOS. Esta ferramenta foi desenvolvida por um ex programador da Netscape, Gordon Fydor Lion e foi projetado para examinar grandes redes, mas também é bastante eficaz no exame de máquinas isoladas. Esta ferramenta é ótima para a criação de inventários das mesmas e sua utilização é voltada para a administração de redes. Ela também é free de código fonte aberto e através da força do desenvolvimento do Código aberto, o NMAP cresceu e se tornou um scanner de rede bem utilizado no meio da comunidade de software livre e com isto começou a adicionar novas funcionalidades avançadas, dentre elas a que mais se destacou foi a detecção de sistema operacionais e regras de firewall da rede alvo. A ferramenta usa pacotes de IP de maneira inovadora, para determinar quais hospedeiros estão disponíveis na rede, quais serviços(nome e versão de aplicação) tais hospedeiros estão oferecendo, quais sistemas operacionais e respectivas versões eles estão rodando, quais tipos de filtros de pacotes/firewall estão em uso e dezenas de outras maneiras.
2. NMAP Todos os exames da ferramenta são realizados por fases, como enumeração de alvos, descoberta de hospedeiros, resolução DNS inversa, exame de portas, detecção de versão, detecção de sistema operacional, traceroute, exame de script e saída. Enumeração de alvos. Nesta fase o NMAP pesquisa os hospedeiros fornecidos pelo usuário, que pode ser por nome ou por IP, notações CIDIR de redes e etc. A ferramenta transforma estes dados numa lista de endereços Ipv4 ou Ipv6 para exame. Descoberta de hospedeiros. Nesta fase a ferramenta faz uma varredura na rede para descobrir quais hospedeiros estão no ar. O NMAP oferece muitas técnicas de descoberta de máquinas ativas, desde solicitações de Arp até combinações elaboradas de TCP, ICMP e outros tipos de exames, esta fase é geralmente executada por omissão. Resolução de DNS Inversa. Esta fase serve para que depois que o NMAP tiver determinado quais hospedeiros estão ativos ele procurará os DNS inverso de todos, determinando assim de qual domínio pertence estes hospedeiros.. Exame de portas. Esta fase é a operação fundamental do NMAP, as provas são enviadas e as respostas a estas provas são usadas para a classificação de portas remotas em estados tais como; open(aberta), closed(fechada), filterede(filtrada), unfiltered(não filtrada), open filtered(aberta ou filtrada) e closed filtered(fechada ou filtrada). - open(aberta) Uma aplicação está aceitando ativamente conexões TCP ou pacotes UDP nesta porta, encontrar estas é objetivo primário do exame de portas - Closed(fechada) Uma porta fechada ela é acessível (recebe e responde aos pacotes de provas do NMAP), mas não existe aplicações atendendo nela. - Filtered(filtrada) A ferramenta não determina se a porta está aberta ou fechada, porque a filtragem de pacotes impedem que as provas alcancem a porta. - Unfiltered(não filtrada) Significa que a porta está acessível, mas a ferramenta não foi capaz de determinar se ela está aberta ou fechada, somente o exame de ACK classifica uma porta neste estado. - Open filtered(aberto ou filtrada) É quando o NMAP não consegue determinar se a porta está aberta ou filtrada. Ocorre nos tipos de exame em que as portas abertas não dão nenhum tipo de resposta. Closed filtered(fechado ou filtrado) É quando o NMAP é incapaz de determinar se uma porta está fechada ou filtrada, está situação só ocorre no exame ocioso.
Detecção de versão. Nesta fase as portas que são encontradas na condição de aberta, o NMA será capaz de determinar qual serviço o servidor está executando no sistema remoto e a versão deste serviço. Ele faz este exame enviando uma série de provas e combinando as respostas com uma base de dados de milhares de assinaturas de serviços conhecidos. Detecção de Sistema Operacional. Nesta fase a ferramenta determina qual sistema operacional está rodando na máquina alvo, devido as diferenças existentes nos sistemas operacionais quanto a implementação dos padrões de rede, pela medição destas diferenças torna-se possível para a ferramenta determinar qual sistema operacional está rodando num hospedeiro remoto. Traceroute. O NMAP contém uma implementação otimizada do traceroute, ele pode entrar em rotas de redes para muitos hospedeiros em paralelo, usando pacotes de provas. Exame de script. Nesta fase a ferramenta usa uma coleção de scripts de propósito especial para obter mais informações de sistemas remotos. Saida. Quanto a saída, nesta fase o NMAP coleta toda a informação que ele reuniu e apresenta na tela ou salva num arquivo. A ferramenta pode apresentar a saída em vários formatos. 2.1. Evolução da ferramenta NMAP 1 de setembro de 1997 Não tem nº de versão 2.000 linhas de código 28 de abril de 2000 O Nmap 2.50 é liberado com um pacote de 461KB. A ferramenta NMAP sofreu diversas modicações desde a a sua criação em 1997. Na tabela 1, um breve resumo das modificações inseridas no período compreendido entre 1997 e 2010. 5 de setembro de 1997 Possui nº de versão 1.25 7 de setembro de 2000 É liberado a versão 2.54BETA1 primeira a rodar na plataforma Windows 14 de Março de 1998 Criador do Nessus utiliza código fonte do Nmap para criação da ferramenta 9 de julho de 2001 O exame ocioso de ID de IP, do Nmap, é apresentada com o Nmap 2.54BETA26 1 de Stembro de 1998 Primeiro aniversário da ferramenta Começo no trabalho de detecção de SO da ferramenta 21 de julho de 2003 Termina a primeira implementação da detecção de serviço/versão do NMAP 12 Dezembro de 1998 Surge a versão 2.00 da ferramenta com a detecção de SO 8 de Julho de 2007 Surgimento do Zenmap, é integrado um frontend gráfico Tabela 1 Resumo das modificações inseridas na ferramenta 11 de abril de 1999 Surge a versão 2.11 com interface 25 de Setembro de 2008 É liberado a versão 4.68, com cem melhorias
3. Funcionalidades da ferramenta NMAP Umas de suas funcionalidades que se destaca é a capacidade de se fazer uma avaliação da rede e qual serviços ela disponibiliza. Outra seria a identificação de computadores de uma rede que respondem as provas de ping, detecção de portas abertas de um deteminado host ou rede, detecção de serviços ativos e detecção de sistema operacional da máquina alvo. 4. Descoberta de hospedeiros O primeiro passo que o NMAP toma para o reconhecimento de redes é reduzir um conjunto de faixas de IP a uma lista de hospedeiros ativos ou interessantes. Desta forma, o administrador da rede determina seu método de exame de descoberta de hospedeiros que pode ser simplesmente através de exames por ping ou através de exames de serviços ativos. Entretanto, a descoberta de hospedeiro realizada pela ferramenta NMAP não utiliza somente a requisição de eco(ping), devido a configuração de Firewall feitas por administradores de rede que impedem este tipo de exame. A ferramenta disponibiliza uma série de recursos para a descoberta de hospedeiro, sendo algumas delas, exames de TCP SYN, ACK e exame ocioso. 4.1 Exame por TCP SYN(-sS) Neste tipo de exame a ferramenta manda um pacote com o flag SYN para o hospedeiro, rede e porta alvo, conforme figura 1, se obter alguma resposta já é descoberto se o hospedeiro está ativo e a porta escaneada está aberta ou não e logo após é enviado uma resposta RST para cortar a conexão, caso o tempo de conexão expire, o hospedeiro será marcado como fora do ar. Figura 1-Imagem capturada do wireshark da prova de SYN da ferramenta NMAP
Neste caso o sinalizador SYN sugere ao sistema remoto que tente estabelecer uma conexão. Se a porta do destino estiver fechada um pacote RST(resetar) será enviado de volta. Se acontecer da porta estar aberta, o alvo dara um segundo passo de uma saudação TCP de três tempos, respondendo com um pacote TCP SYN/ACK. A máquina que está rodando o NMAP corta a conexão respondendo com um RST, em vez de enviar um pacote ACK, que complementaria a saudação de três tempos e estabeleceria um conexão completa. 4.2 Exame por TCP ACK(-sA) Este exame é muito similar ao ping por SYN. A diferença é que o pacote em vez de ir com o sinalizador SYN ligado, vai com ACK. Um pacote ACK supõe-se estar reconhecendo dados através de uma conexão TCP estabelecida, mas tal conexão não existe. Assim os hospedeiros remotos deverão sempre responder com um pacote RST, revelando a sua existência, neste processo. A razão para a ferramenta oferecer as provas de SYN e de ACK é maximizar as chances de ultrapassar firewalls já que em alguns casos máquinas ou redes alvos simplesmente estão bloqueadas para as provas de SYN que chegam, exceto por aqueles destinados a serviços públicos, como Website ou servidor de correio eletrônico, isto evita a chegada de outras conexões indesejadas. Este exame é muito utilizado para mapear conjuntos de regras do firewall, determinando se eles são orientados à conexão ou não, e quais portas estão filtradas. Esta prova é bem interessante quando se envia um pacote com o sinalizador ACK ligado a sistemas não filtrados por firewall, as portas abertas e fechadas, vão responder com um pacote RST, revelando sua situação, conforme figura 2, é uma prova ótima para controlar as regras de firewall da rede. Figura2 - Imagem da captura do wireshark da prova de ACK da ferramenta NMAP
4.3 Exame Ocioso(-sI) O NMAP também oferece técnicas engenhosas de exames de portas para descoberta de hospedeiros. O exame ocioso como ficou conhecido, permite um exame de portas completamente cego. O atacante pode realmente examinar um alvo sem enviar um único pacote a ele, em vez disto usa uma máquina intermediária para realizar a ação, ou seja, utiliza uma máquina ociosa da grande rede como hospedeiro zumbi. Relatórios de sistemas de detecção de intrusos (IDS), apontam para a máquina zumbi como sendo o atacante. A maneira como este exame ocorre por trás dos bastidores, é da seguinte forma, o pacote é enviado com o flag SYN sinalizado(estabelecimento de sessão) à porta. A máquina alvo respondera com um pacote SYN/ACK(requisição de sessão reconhecida) se a porta estiver aberta e se a porta estiver fechada RST(resetar). Esta é a base do exame por SYN.Uma máquina que recebe um pacote SYN/ACK não solicitado responde com um RST. Um RST não solicitado será ignorado. Todo pacote IP na internet tem um número de identificação de fragmento (ID de IP). Como muitos sistemas operacionais simplesmente incrementam este número para cada pacote que eles enviam, a prova de ID de IP pode dizer a um atacante quantos pacotes foram enviados desde a última prova. Através deste traços, conforme figura 3, é possível examinar uma rede alvo enquanto se forja a identidade, de forma que pareça que uma máquina zumbi fez o exame. Figura 3 - Imagem capturada do wireshark, exemplo realizado em uma rede local. Este tipo de exame é bem complexo, primeiro é forjado um pacote SYN a partir do zumbi e enviado a porta desejada do alvo, dependendo do estado da porta, a reação do alvo poderá ou não fazer com que a ID do IP zumbi seja incrementada. Provando novamente a ID do IP Zumbi, o estado da porta alvo será, então, determinado pela comparação desta nova ID de IP com a que foi guardada anteriormente. Depois deste processo, a ID de IP do Zumbi deverá ter sido incrementada de um ou dois. Um incremento de um indica que o zumbi não enviou nenhum pacote, com exceção de sua resposta a prova do atacante. Esta falta de envio de pacotes significa que a porta não está aberta(o alvo deve ter enviado ao zumbi ou um pacote RST, que foi ignorado, ou absolutamente nada). Um incremento de dois indica que o zumbi enviou um pacote entre as duas provas. Este pacote extra significa que a porta está aberta(o alvo presumidamente enviou ao zumbi um pacote SYN/ACK em resposta ao SYN forjado, que induziu um pacote RST do zumbi). Incrementos maiores que dois normalmente representam um mal hospedeiro zumbi. No caso da utilização deste tipo de exame a máquina zumbi deve se encontrar ociosa, por isso o nome de exame ocioso.
5. Conclusão Através deste trabalho que teve como objetivo fazer um estudo do software NMAP e comprovar as técnicas utilizadas pela ferramenta para descoberta de hospedeiros, concluiu-se através deste estudo, com a utilização do analisador de protocolos Wireshark e Tcpdump, a comprovação de descobertas de hospedeiros através da utilização das flags de conexão de três tempos do protocolo TCP IP e máquinas zumbis.
6. Referências Bibliográficas Guia de Referência do Nmap (Página do Manual) Disponível em : <http://nmap.org/man/pt_br> Lyon, Gordon (2009) Exame de Redes com NMA Rio de Janeiro, Brasil