You are on page 1of 10

SysAdmin

Nmap

Invaso!
Qualquer um que trabalhe h mais de dois meses o mais famoso scanner de vulnerabilidades do mundo livre. Mas de que maneira o Nmap identica as brechas de segurana em sua rede? Neste artigo, examinaremos algumas de suas tcnicas.
Por Christian Ney
ato de varrer uma rede em busca de vulnerabilidades quase to antigo quanto as prprias redes. Nos saudosos tempos de outrora, em que o nico modo de conexo remota eram as linhas telefnicas, hackers usavam modems para testar blocos de nmeros de telefone. Esses vivaldinos registravam em um caderno todas as respostas obtidas um panaca gritalho, um sinal de fax, uma voz feminina, um outro modem atendendo ligao O processo era chamado de wardialing (em portugus, algo como guerra de discagem). Hoje, os chamados scanners de rede ou port scanners que so a coqueluche. Eles transmitem, em direo ao sistema sob teste, pacotes IP (ou TCP/UDP) especialmente manipulados. Dependendo da reao (ou falta dela) possvel identicar os tipos e modelos de sistemas, bem como mapear os servios oferecidos e as possveis vulnerabilidades existentes. O Nmap (The Network Mapper [1]), trazido luz por Fyodor em setembro de 1997 [2], provavelmente um dos mais completos scanners de rede que existem. Fyodor estava insatisfeito com os recursos que ferramentas como o Strobe [3] e o Pscan [4] ofereciam. Ele queria um programa que superasse qualquer outro conhecido e realmente conseguiu.

Entendendo as tcnicas de anlise com o Nmap

www.sxc.hu Davide Guglielmo

com redes de computadores j ouviu falar no Nmap,

O Nmap distribudo em praticamente e TCP de maneira a carem completaqualquer CD de Linux que voc possa mente irreconhecveis. No preciso encontrar por a. Se sua distribuio pre- ser um especialista para usar o Nmap, ferida no possuir o Nmap, escreva para mas os iniciantes talvez quem um poul reclamando bastante e depois baixe co confusos com a teoria envolvida e o programa a partir do site ocial [1]. O a quantidade de opes do programa. Nmap usa a tcnica de impresso digital Infelizmente temos que alertar: para usar TCP (TCP ngerprinting) para identi- o Nmap em toda a sua plenitude, necar o sistema operacional da mquina cessrio ter uma boa bagagem a respeito que estamos varrendo a mquina sob de redes e TCP/IP. Este artigo descreve ataque. O programa consegue determi- algumas das tcnicas que o Nmap usa nar h quanto tempo o computador est para descobrir vulnerabilidades. ligado (uptime) e realmente identicar os servios oferecidos, em um nvel de detalhe que inclui o nmero da porta, o nome do daemon responsvel e at a verso desse daemon. O nmero fabuloso de funes oferecidas pelo Nmap indica, por outro lado, que a quantidade de opes da linha de comando , tambm, espetacular. H no menos do que 15 mtodos de se varrer um dado n (tabela 1) e aproximadamente 20 variaes Figura 1: O Nmapfe, interface grca do Nmap, permite que e conguraes para cada usemos o programa sem ter que decorar a grande quantidade de opes da linha de comando e, de quebra, mostra como mtodo alguns deles seria esse comando (observe a linha na parte de baixo da tela). manipulam os pacotes IP

62

fevereiro 2006

edio 17 www.linuxmagazine.com.br

Nmap

SysAdmin

Tabela 1: Tcnicas de varredura


TCP SYN Conexo TCP TCP FIN rvore de Natal TCP Vazio (Null) Ping Deteco de Verses UDP Protocolo IP ACK Janela ACK RPC Lista Passivo ("Idle Scan") FTP Bounce

Tcnica

Sintaxe
-sS -sT -sF -sX -sN -sP -sV -sU -sO -sA -sW -sR -sL -sI -b

Varredura camuada ("stealth") Varredura por usurio comum (facilmente detectvel) Varredura camuada ("stealth") Varredura camuada ("stealth") Varredura camuada ("stealth") Determinar se o computador est ligado Identicar os servios e as verses dos daemons Identicar portas UDP abertas Identicar os protocolos suportados Identicar rewalls Varredura ACK mais especializada Identicar servios RPC "Boneco de testes" Varredura usando um "laranja" como despiste Forma antiga de ataque, presente por motivos histricos

Aplicao

Bandido, eu?
Muitos rotulam o Nmap como sendo uma ferramenta para malfeitores. De fato, os "chapus pretos" usam e abusam do Nmap como auxiliar no ataque e invaso s suas vtimas. Mas, assim como um martelo pode ser usado para colocar um prego na parede, tambm podemos rachar a cabea de algum com ele. Da mesma forma, o Nmap , nas mos dos administradores de rede, um grande aliado no diagnstico dos problemas de suas redes. Os responsveis por sistemas de informao tm por obrigao conhecer todas as falhas e brechas que a rede sob sua batuta possui. H muitas histrias de administradores que decidem fazer uma anlise abrangente de suas redes e descobrem estarrecidos que h muitos servios negligenciados ou mesmo esquecidos. O Nmap tambm ajuda no inventrio da rede, no teste de penetrao em rewalls e a documentar as atualizaes de todos os sistemas. Uma mo na roda, no? O Nmap foi, originalmente, desenvolvido para o Linux. Hoje, entretanto, h verses para Windows , Free/Open/Net/ *BSD e vrios sabores de Unix. Apesar de

ter todo o seu potencial explorado apenas na linha de comando, h interfaces grcas para ele tanto no Unix (Nmapfe, figura 1) quanto em sistemas que vieram de algum lugar do noroeste dos Estados Unidos (Nmapwin [5]). possvel at colocar o Nmap em um servidor e controllo pelo browser (PHP-Nmap [6] figura 2). A pgina ocial do Nmap possui uma lista bastante grande com projetos baseados no Nmap [7]. H at uma verso do programa para o Zaurus, assistente pessoal porttil (PDA) da Sharp que usa Linux como sistema operacional.

gem ICMP Echo Request a mesma usada pelo comando ping e o mtodo prprio do Nmap, muito mais moderno e eciente. Lembre-se de que a maioria dos sistemas operacionais de hoje pode ser congurada para no responder a um ping. P Depois, o Nmap faz uma consulta ao DNS para tentar determinar o nome de host associado ao endereo IP do alvo. Este estgio pode ser desativado se o usurio assim preferir. P Por m, o Nmap varre o alvo usando a tcnica selecionada pelo usurio quando emitiu o comando. Para interromper o processo de varredura, basta pressionar [Ctrl]+[C]. possvel pedir ao Nmap que grave um arquivo de registro (log) que, alm de servir para sua anlise futura, permite que ele continue o teste de onde parou. H quatro estados distintos de porta reconhecidos pelo Nmap veja a tabela 2. Um dos pontos fortes do Nmap a grande quantidade de tcnicas de varredura disponveis. Em vez de simplesmente iniciar uma conexo TCP completa uma negociao em trs etapas conhecida como three-way handshake o programa transmite pacotes especialmente armados para contrariar todas as disposies das RFCs vigentes (RFC

O truque das trs cartas


O Nmap possui um mtodo de varredura composto por trs estgios. Por padro, esses trs estgios so: P O Nmap tenta determinar se o sistema sob ataque (vamos cham-lo de "alvo") est "vivo" isto , funcionando e conectado. O usurio pode escolher entre o mtodo tradicional que usa uma mensa-

Figura 2: Mesmo sem oferecer um grande nmero de opes, a interface web para o Nmap, escrita em PHP, um recurso bastante interessante.
fevereiro 2006 edio 17

www.linuxmagazine.com.br

63

SysAdmin

Nmap

mos uma resposta, no h como determinar se o alvo est desconectado, se a resposta foi bloqueada por um rewall ou se, simplesmente, o sistema operacional do alvo no responde a pings. O ping serve apenas como investigao preliminar, dando ao pesquiFigura 3: Sem privilgios de root, o nmero de tcnicas sador uma maneira rpida de ataque possveis de ser iniciadas com o Nmap reduz-se de vericar quais sistemas signicativamente. reagem, economizando tempo precioso anal, Request For Comments, uma espcie tarefas mais demoradas ainda esto por de documento normativo). vir, portanto melhor concentr-las em Analisando a maneira como o alvo alvos realmente "vivos". responde a esses pacotes "Frankenstein", o Nmap tira concluses a respeito de suas caractersticas e A varredura do tipo "Lista" (-sL) permite vulnerabilidades. Para a maioria das que os usurios veriquem todas as contcnicas, necessrio rodar o Nmap guraes do Nmap antes de iniciar um como root, j que o programa traba- ataque real. Isso pode evitar que erros e lha com os chamados raw sockets para esquecimentos embaraosos ponham a poder montar seus prprios pacotes perder toda a condencialidade do ataadulterados solenemente esnobando a que. Uma varredura do tipo Lista diz pilha TCP/IP do sistema operacional. ao usurio quais sistemas o Nmap vai O Nmap de grande valia para os ad- investigar (e de que forma o far), mas ministradores de sistemas de informa- sem disparar um ataque verdadeiro. Em o. Voc pode varrer todas as portas suma, uma simulao. de uma mquina cata de problemas. Mesmo com essa precauo, ainda h Mais ainda: se necessrio, pode varrer que se ter cuidado redobrado durante tesredes inteiras! A varredura do tipo ping tes de penetrao. Lembre-se sempre de bastante til nessas horas. Como o que o Nmap, por padro, tenta resolver nome sugere, o comando ping gera uma os nomes DNS das mquinas sob ataque. mensagem ICMP Echo Request e a envia Certique-se sempre de desativar esse mquina alvo. Se o alvo existir, estiver comportamento denunciador. ligado e conectado, ir responder com ICMP Echo Reply. A varredura ping do Nmap funciona de forma semelhante. Se o usurio no tiver privilgios de O protocolo ICMP no usa nenhuma root (figura 3) o Nmap s consegue faporta, portanto o Nmap no pode us- zer varreduras usando conexes TCP lo para investigar muita coisa. Por ou- completas (connect()). Essa tcnica tro lado, uma varredura desse tipo usa usa as funes do prprio sistema apenas um par de pacotes para cada n operacional para estabelecer conexes tornando-a bem rpida. O resultado, que atendam aos requisitos da RFC entretanto, impreciso: se no receber- vigente para o TCP/IP.

Um grama de precauo

Uma conexo TCP completa usa a manjadssima negociao em trs etapas do protocolo TCP, conhecida como three-way handshaking. Sem essa negociao prvia, impossvel estabelecer um canal de comunicao TCP entre dois computadores normalmente, entre um cliente e um servidor; por exemplo, entre o Internet Explorer e o IIS. A negociao funciona da seguinte maneira: o cliente que quer iniciar a conexo (em nosso caso, o Nmap) envia um pacote TCP com o sinalizador (ou ag) SYN ativado. O ag SYN avisa ao outro sistema que o primeiro quer se conectar a ele. O pacote TCP, alm do ag SYN, informa tambm as portas de origem e de destino (figura 4). Se, no alvo, a porta que est sendo testada estiver aberta (ou seja, aceitando conexes), o alvo responde com outro pacote TCP, esse com os ags SYN e

Tabela 2: Estados das portas


Aberta (Open) Filtrada (Filtered) possvel se conectar a essa porta sem restries. A porta est, provavelmente, sendo bloqueada por um rewall. Se as varreduras do tipo SYN e Conexo Completa descobrirem portas abertas e ltradas, o administrador do rewall pode ter cometido o grave erro de ter implementado uma regra DROP malfeita. NO-Filtrada As varreduras do tipo ACK ou (UNltered) Janela descobriram portas no ltradas pelo rewall. A comunicao com essas portas , a princpio, possvel, mas ser necessrio usar nelas outros tipos de varredura para obter mais informaes. Fechada A porta pode estar corretamen(Closed) te bloqueada pelo rewall ou mesmo nem existir no sistema sob ataque. Em ambos os casos, impossvel comunicar-se com essas portas.

Estado

Explicao

Amante moda antiga

64

fevereiro 2006

edio 17 www.linuxmagazine.com.br

Nmap

SysAdmin

Listagem 1: Varredura por conexo TCP completa


Porta fechada: 192.168.5.22 -> 192.168.5.10 TCP 60319 > 80 [SYN] 192.168.5.10 -> 192.168.5.22 TCP 80 > 60319 [RST, ACK]

Conexo "meia-boca"

Uma conexo completa, mesmo se fechada imediataPorta aberta: mente com aquele 192.168.5.22 -> 192.168.5.10 TCP 60320 > 80 [SYN] quarto pacote RST, 192.168.5.10 -> 192.168.5.22 TCP 80 > 60320 [SYN, ACK] tem uma desvanta192.168.5.22 -> 192.168.5.10 TCP 60320 > 80 [ACK] gem gritante: cone192.168.5.22 -> 192.168.5.10 TCP 60320 > 80 [RST, ACK] xes perfeitamente estabelecidas guListagem 2: Varredura com pacotes TCP-SYN ram nos registros (logs) do sistema Porta fechada: operacional. Como 192.168.5.22 -> 192.168.5.10 TCP 56522 > 80 [SYN] resultado, facli192.168.5.10 -> 192.168.5.22 TCP 80 > 56522 [RST, ACK] mo determinar quem Porta aberta: anda varrendo deter192.168.5.22 -> 192.168.5.10 TCP 60420 > 80 [SYN] minada rede. D para 192.168.5.10 -> 192.168.5.22 TCP 80 > 60420 [SYN, ACK] melhorar bastante o 192.168.5.22 -> 192.168.5.10 TCP 60420 > 80 [RST] quadro se voc tiver privilgios de root. [**] [100:1:1] spp_portscan: PORTSCAN U ACK ligados. Essa a segunda etapa da Como root, possvel varrer os al- DETECTED from 192.168.5.22 (THRESHOLD 4 U negociao. Na terceira etapa, o Nmap vos com a tcnica TCP-SYN. Alm de connections exceeded in 0 seconds) [**] envia um pacote TCP com o ag ACK economizar recursos da rede e do sis- 10/05-19:40:49.540435 ativado, o que estabelece denitiva- tema operacional, no depende deste mente a conexo. ltimo para nada e possui uma "camuPara despistar a maioria dos IDSs Se no houver nenhum programa ser- agem" natural. Em vez de estabelecer (mas no todos), basta dizer ao Nmap vidor naquela porta (ou seja, se a porta uma conexo TCP completa, o Nmap para "segurar a onda" e fazer tudo bem no estiver aceitando conexes) o siste- transmite o primeiro SYN do three- devagar. A idia esconder os pacotes ma operacional do alvo responde com way handshake. Uma porta fechada de teste na multido de pacotes do trum pacote TCP com o ag RST ligado, reagir com um RST para forar o fego normal da rede. Tambm possvel forando o encerramento da conexo. cancelamento da conexo. Uma porta tentar embaralhar a vista do IDS com Esse o modo correto de estabele- aberta responder com um SYN/ACK. tcnicas como TCP FIN, "rvore de Nacer uma conexo TCP com um dado Esse SYN/ACK j suciente para o tal" e "TCP Vazio". sistema remoto. Na varredura do tipo connect(), o Nmap usa o sistema 0 7 8 15 16 23 24 31 operacional para iniciar o three-way Porta de Origem Porta de Destino handshake. Se conseguir uma conexo, Nmero Seqencial a porta est aberta. Se receber um RST, Nmero de Reconhecimento a porta est fechada. Simples assim. Deslocamento Reservado Janela Observe que o Nmap manda, ele Verificao de Integridade (Checksum) Ponteiro de Urgncia mesmo, um RST para finalizar, o Opes mais rpido possvel, a conexo que ... Enchimento acabou de abrir, caso esta tenha xito. Deixar conexes abertas por muito Figura 4: O Nmap usa os campos do cabealho TCP para descobrir os detalhes dos sistemas sob ataque. Alm dos ags ACK, RST e SYN (em amarelo), algumas tcnicas usam combinaes pouco tempo torna muito fcil detectar o usuais dos outros ags (em rosa). ataque. Veja a listagem 1.
URG ACK PSH RST SYN FIN

Nmap perceber que a porta est aberta. Portanto, em vez de continuar com a conexo, o Nmap manda um RST para acabar com a festa veja a listagem 2. O sistema sob ataque nem percebe esse processo, j que a conexo no se concretizou; de quebra, nada registrado nos logs. Apesar de lograr o sistema operacional, esse truque simples no passa a perna em sistemas de deteco de intrusos (IDS) como o Snort [8] e o Prelude [9]. Esses IDSs monitoram todas as portas e, se detectarem um grande nmero de tentativas de conexo frustradas, identicam o processo como uma varredura maliciosa. O Snort registra as seguintes informaes depois de um portscan como esse:

fevereiro 2006 www.linuxmagazine.com.br

edio 17

65

SysAdmin

Nmap

Segredo de estado
As tcnicas TCP-FIN, rvore de Natal e TCP Vazio possuem uma capacidade de camuagem sem precedentes. Ao contrrio das duas tcnicas anteriores (TCP completa e TCP-SYN), estas no iniciam conexo alguma. Em vez disso, mandam um nico pacote ao sistema alvo. Os trs ataques diferem apenas nos ags TCP que ativam (veja a figura 4). Nenhum desses ags deveria estar ativo em trfego normal de rede e, por outro lado, nenhum deles possui o necessrio ag SYN para iniciar uma conexo. pela resposta a esses pacotes (ou falta dela) que o Nmap tenta inferir a disponibilidade do sistema alvo. Quando a porta est fechada, qualquer sistema operacional que atende s normas e RFCs pertinentes responder com um pacote RST, forando o encerramento da conexo. Por outro lado, se a porta estiver aberta (ou seja, h um servio qualquer "escutando" nela), o sistema sob ataque no saber o que fazer para responder a esse pacote "aliengena", j que no h uma conexo previamente estabelecida. Infelizmente, as RFCs no do instrues claras sobre como responder a pacotes dessa natureza. Como conseqncia, cada sistema operacional se comporta de um jeito diferente. A listagem 3 mostra como um sistema Linux responde a eles: simplesmente ignorando-os. Sistemas Windows lidam com isso de forma bastante diversa. Eles respondem a esse tipo de pacote com um RST. Como essa a mesma resposta tanto para portas abertas quanto para portas fechadas, no possvel discernir entre uma e outra. Pode parecer a forma correta de se fazer a coisa, mas isso traz um efeito colateral: s mquinas Windows tm esse comportamento, portanto essa uma maneira fcil de identicar se o sistema operacional rodando no alvo veio de Redmond.

Listagem 3: FIN, rvore de Natal e Vazio


FIN, Porta fechada: 192.168.5.22 -> 192.168.5.10 TCP 56485 > 80 [FIN] 192.168.5.10 -> 192.168.5.22 TCP 80 > 56485 [RST, ACK] FIN, Porta aberta: 192.168.5.22 -> 192.168.5.10 TCP 43406 > 80 [FIN] 192.168.5.22 -> 192.168.5.10 TCP 43407 > 80 [FIN] rvore de Natal, Porta fechada: 192.168.5.22 -> 192.168.5.10 TCP 49499 > 80 [FIN, PSH, URG] 192.168.5.10 -> 192.168.5.22 TCP 80 > 49499 [RST, ACK] rvore de Natal, Porta aberta: 192.168.5.22 -> 192.168.5.10 TCP 47109 > 80 [FIN, PSH, URG] 192.168.5.22 -> 192.168.5.10 TCP 47110 > 80 [FIN, PSH, URG] Vazio, Porta fechada: 192.168.5.22 -> 192.168.5.10 TCP 50508 > 80 [] 192.168.5.10 -> 192.168.5.22 TCP 80 > 50508 [RST, ACK] Vazio, Porta aberta: 192.168.5.22 -> 192.168.5.10 TCP 55971 > 80 [] 192.168.5.22 -> 192.168.5.10 TCP 55972 > 80 []

com o servio l presente cuidado, isso cria uma linha no arquivo de log. Pelo canal de comunicao, envia uma srie de pacotes de teste e, baseado nas reaes a eles, tenta identicar o software responsvel pelo servio e sua verso. O Nmap armazena os resultados em seu banco de dados de ataques sob o ttulo nmap-service-probes. A verso 3.93 inclui 2895 assinaturas de servios. O Nmap pode empregar essas mesmas tcnicas na deteco de todo o sistema alvo incluindo o sistema operacional. O chamado OS Fingerprinting (impresso digital do sistema operacional) um dos recursos mais espetaculares do A deteco de verses no procura por Nmap. Para falar a verdade, o Nmap o portas abertas. Em vez disso, faz testes mestre supremo nesse terreno, batendo numa porta em que, j se sabe de ante- qualquer outro programa, tanto livre mo, existe algum servio na escuta quanto comercial. (listagem 4). Os potenciais candidatos O processo de descoberta do sistema a isso foram identicados anteriormen- operacional leva em conta as sutis difete por varredura do tipo TCP-SYN. A renas no comportamento da pilha TCP/ deteco de verso abre uma conexo IP. O Nmap possui uma tabela com a normal com uma porta e se comunica maneira como cada sistema operacional

Se o alvo no responder, o Nmap rotula aquela porta como fechada ou ltrada (tabela 2). Os rewalls tendem a descartar pacotes desse tipo sem emitir qualquer comentrio. Outras tcnicas podem oferecer muito mais informaes sobre o sistema sob ataque. Uma delas a "Deteco de Verso". Mas cuidado: essa tcnica no tenta, de forma alguma, se esconder sob qualquer camuagem e usa rotinas de identicao de portas bastante agressivas. Se seu objetivo no ser descoberto, cuidado com ela!

At o osso

66

fevereiro 2006

edio 17 www.linuxmagazine.com.br

Nmap

SysAdmin

reage a determinados estmulos (isto , como responde a determinados pacotes). Comparando os resultados dos testes com essa tabela, possvel determinar qual sistema operacional est instalado no alvo. O Nmap 3.93 (a verso mais recente poca desta edio) possui no menos do que 1707 impresses digitais. O processo todo bastante discreto e difcil de ser detectado: nenhuma conexo iniciada entre o Nmap e o alvo e so usados, ao todo, apenas 30 pacotes bastante simples. O OS ngerprinting comea com um varredura de portas comum para determinar se h portas abertas no sistema alvo. Depois, dispara uma bateria de oito testes simples, que enviam pacotes especialmente criados para provocar respostas especcas. Alguns desses pacotes nunca ocorreriam em trfego normal de uma

Listagem 4: Deteco de verses


192.168.5.22 -> 192.168.5.10 TCP 59555 > 80 [SYN] 192.168.5.10 -> 192.168.5.22 TCP 80 > 59555 [SYN, ACK] 192.168.5.22 -> 192.168.5.10 TCP 59555 > 80 [ACK] 192.168.5.22 -> 192.168.5.10 HTTP GET / HTTP/1.0 192.168.5.3 -> 192.168.5.22 TCP 80 > 59555 [ACK] 192.168.5.3 -> 192.168.5.22 HTTP HTTP/1.0 200 Ok 192.168.5.22 -> 192.168.5.10 TCP 59555 > 80 [ACK] 192.168.5.22 -> 192.168.5.10 TCP 59555 > 80 [FIN, ACK] 192.168.5.3 -> 192.168.5.22 HTTP Continuation or non-HTTP traffic 192.168.5.22 -> 192.168.5.10 TCP 59555 > 80 [RST]

rede tpica e, portanto, o processo presa fcil para IDSs. Mas, se no houver um IDS, o sistema sendo testado nem percebe que est sendo escaneado. Ao mesmo tempo em que esses oito testes so disparados, os pacotes so analisados e a opo TCP timestamp determina o tempo de ativao (uptime) do alvo. Se o Nmap no conseguir identicar o sistema alvo, todos os dados dos testes so

apresentados. Com isso, o prprio usurio pode analisar e tentar descobrir o que que roda no alvo. Por outro lado, se o usurio j souber de antemo o SO do alvo mas o Nmap no for capaz de identic-lo, ele ou ela pode publicar a assinatura encontrada na pgina apropriada do site ocial [10]. Com isso, os usurios do Nmap podem ajudar o programa a identicar cada vez mais sistemas operacionais diferentes.

fevereiro 2006 www.linuxmagazine.com.br

edio 17

67

SysAdmin

Nmap

ajustado pelo alvo quando este respon- deteco de verso pode ajudar na suH situaes em que o Nmap no conse- de. Pacotes RST com um tamanho de presso da ambigidade. gue distinguir entre uma porta filtrada janela nulo (zero bytes) indicam que a Muitos sistemas limitam o envio de e uma porta aberta (veja a tabela 2). Para porta est aberta. mensagens ICMP a um determinado casos como esses, as varreduras do tipo O nmero de sistemas operacionais que nmero delas por segundo. O Nmap ACK so uma mo na roda. A varredura respondem a essa tcnica bastante pe- esperto o bastante para perceber esse com pacotes ACK bastante simples e queno [X-WInScan] e vai continuar min- comportamento e reduzir a velocidadeveras camuflada. Ela no consegue guando ao longo dos anos. Mesmo assim, de, engatando a segunda ou mesmo a detectar se uma porta est aberta ou a varredura de janela pode ser de grande primeira marcha. Por isso, varreduras fechada, mas serve a um outro prop- valia para obter informaes importantes no protocolo UDP podem demorar um sito muito especial: detecta a presena sobre a plataforma sob ataque. Isso a torna pouco para terminar. de um firewall e pode at ser usada especialmente interessante se precisarmos para pesquisar as regras de filtragem de mais informaes a respeito de sistemas desse firewall. reconhecidamente seguros. O Nmap possui um modo de varredura Para conseguir tal proeza, o Nmap exclusivo para o protocolo IP. Mas ele transmite, em direo a uma porta qualno serve para identicar portas abertas quer do alvo, um nico pacote TCP com Alm do protocolo TCP, o Nmap tambm ou ltradas. Em vez disso, simplesmente o ag ACK ativado. Se no houver um faz das suas com o UDP. H realmente informa ao usurio quais protocolos de rewall entre o Nmap e o alvo (ou se poucas opes de varredura com o UDP, camada 4 o alvo reconhece e consegue ele existir mas estiver congurado para j que esse protocolo por demais sim- trabalhar. Se o alvo for uma mquina deixar essa porta aberta), o alvo deve plrio e no tem nada parecido com os com Linux, o Nmap provavelmente vai responder com um pacote RST. Se a res- ags de controle do TCP. descobrir ICMP (Internet Control Mesposta for um ICMP Destination UnreachaSe por um lado poucos dados podem sage Protocol), IGMP (Internet Group ble, podemos ter certeza de que existe ser obtidos a partir disso, por outro o Multicast Protocol), TCP, UDP e IPv6 um rewall entre o Nmap e o alvo e que processo de varredura bem simples. (para tneis IPv6-sobre-IPv4). Para deele est bloqueando essa porta ou seja, Quando a porta est fechada, o alvo res- terminar esses protocolos, o programa a porta est ltrada. ponde com um ICMP Port Unreachable. testa todos os nmeros de protocolo de O Nmap tambm executa as chama- Quando est aberta, pode ser que o alvo 1 a 255 e espera pelas respostas. das Varreduras de Janela (Window envie algum tipo de dado ou, o que Essa informao permite ainda que o Scans), uma variao da varredura por mais provvel, que na mais profun- Nmap, alm de determinar os protocolos ACK, mas que tambm descobre por- da mudez. O silncio esconde o estado suportados, faa uma espcie de deteco tas abertas. Nesse tipo de varredura, o real da porta: o Nmap a classica como improvisada do sistema operacional. Por Nmap tambm envia um pacote ACK aberta, embora isso possa ser um falso exemplo, apenas roteadores e servidomas, entre outras coisas, analisa o ta- positivo j que a porta pode estar ltrada res especiais usam o protocolo Virtual manho da janela TCP (um dos campos (veja a tabela 2). Em caso de dvida, a Router Redundancy Protocol (VRRP) ou mais importantes do protocolo TCP) a alternativa livre, o CARP.

Sem ltros

Baixo nvel

S TCP no basta

0 Verso IHL*

7 8 Tipo de Servio (TOS)

15 16

23 24 Tamanho Total do Pacote (TL) Flags Deslocamento de Fragmento (FO) Verificao de Integridade (Checksum)

31

Chamando todos os carros!


As Varreduras de RPC so capazes de identicar servios (e portas) especiais como NFS e NIS, que dependem da tecnologia RPC. Essa tcnica de varredura s vale a pena como complemento das anteriores e ativa automaticamente a deteco de verses. Para descobrir servios RPC escondidos, a tcnica usa a instruo especial

Identificao IP (IPID) Tempo de Vida (TTL) Protocolo

Endereo IP de origem Endereo IP de destino Opes *IHL: Tamanho do cabealho IP

... Enchimento

Figura 5: O cabealho IP contm o campo IPID (rosa), que indica o nmero de fragmentos contguos.

68

fevereiro 2006

edio 17 www.linuxmagazine.com.br

Nmap

SysAdmin

PROC=0. Ela no pede ao alguma ao

servio RPC, mas fora-o a revelar sua existncia em outras palavras, "cutuca para que saia da moita". Servios noRPC no reconhecem a instruo e no respondem. Como o processo todo depende da interao com um aplicativo rodando no alvo, no nada discreto. Por outro lado, com um pouco de sorte possvel obter muitas dicas do sistema sob investigao.

Arenques vermelhos

Mesmo as tcnicas de varredura mais discretas e camuadas do Nmap deixam muitos rastros. Em um teste de penetra o, o auditor pode precisar de detalhes que s uma varredura "barulhenta" tem Figura 6: A varredura passiva uma tcnica bastante engenhosa que usa um "laranja" como condies de revelar. Voc certamente ser detectado. A ni- intermedirio ou "zumbi". Os pacotes enviados ao alvo originam-se, na realidade, do zumbi. O agressor tira concluses a partir da progresso do nmero guardado no campo IPID do cabealho IP. ca coisa que pode fazer, ento, tentar evitar a sua identicao. Uma das maneiras de fazer isso inundar a rede sob at 128 falsas varreduras simultneas. Se pouqussimo trfego quanto menos, ataque com pacotes "impostores". Isso vai sua mquina for parruda, e sua conexo melhor, sendo nenhum trfego a situabarrotar os registros dos IDSs com infor- rpida o bastante, pode aumentar o valor ao ideal. maes falsas e dar bastante trabalho da constante MAX_DECOYS no arquivo P O IPID dos zumbis precisa ser facilaos administradores de segurana. nmap.h parte do cdigo fonte do Nmap mente previsvel. Para servir como Isso o que se chama decoy em por- e recompil-lo. zumbi, o laranja escolhido deve tugus, chamariz, isca, engodo, armaaumentar o valor do IPID em uma dilha Quando o Nmap usa um decoy, unidade para cada novo pacote. O simula um sem-nmero de varreduras baixo trfego (condio anterior) simultneas. O pulo do gato: cada var- As Varreduras Passivas (Idle scans) tenvital para garantir que o IPID (campo redura vem de um IP diferente! Obvia- tam descobrir as portas abertas do alvo de identicao do cabealho IP) no mente, todos os IPs so falsos (menos usando uma terceira mquina, que funcioseja to perturbado veja a figura 5. o seu) e isso dilui a possibilidade de na como "laranja". No h troca de pacotes O prprio Nmap capaz de identicar determinao da origem do ataque. No entre a mquina que roda o Nmap e o alvo, os candidatos a zumbi mais apropriados. tenha dvida alguma, o procedimento portanto o auditor (ou o "hacker") est a Ele manda seis pacotes SYN/ACK para ser detectado anal, a rede do alvo salvo. O Nmap faz uso de um truque bas- o laranja e verica os IPIDs dos pacotes sofrer uma avalanche de varreduras. tante engenhoso de impostura de IPs (mais RST que voltam em resposta. Se o laranja Mas exatamente o rudo feito por esse conhecido como spoong) para fazer o escolhido no servir, o Nmap interrompe tropel que torna muito mais difcil iden- "laranja" (chamado de "zumbi") ricochetear o processo com a mensagem: ticar o legtimo agressor. pacotes vindos do Nmap em direo ao Do ponto de vista do administrador, alvo. Para que o truque funcione, algumas Idlescan is unable to obtain meaningful U usar decoys um excelente teste do de- condies devem ser satisfeitas: results from proxy 192.168.5.99 U sempenho dos ns da rede, do rewall P O "zumbi" (algumas vezes e sarcas- (192.168.5.99). e dos sistemas de deteco de intrusos ticamente chamado de "proxy") deve I'm sorry it didn't work out. (IDS). Por padro, o Nmap pode simular estar ativo e conectado, mas deve ter QUITTING!

meia-noite encarnarei no teu cadver

fevereiro 2006 www.linuxmagazine.com.br

edio 17

69

SysAdmin

Nmap

Se os IPIDs progredirem de forma previsvel, o Nmap repete o processo por mais quatro vezes, usando pacotes cujo endereo de origem pertence ao sistema a ser investigado ou seja, o alvo. Com isso, o zumbi manda pacotes RST em resposta a esse estmulo, mas como o endereo de origem est forjado, essas respostas so enviadas para o alvo, no para o computador que est rodando o Nmap. Para obter os resultados, o Nmap manda um pacote SYN/ACK adicional, mas dessa vez com seu prprio endereo de origem. O zumbi s servir para intermediar uma varredura passiva se o IPID no RST seguinte for cinco unidades maior do que o pacote original.

Viso alm do alcance

porque recebeu um SYN/ACK do alvo e teve de responder com um RST provando que a porta no alvo est aberta. O Nmap precisa, ento, enviar um pacote de teste ao zumbi para monitorar a perturbao do IPID veja a gura 6 para mais detalhes. Para acelerar o processo, o Nmap considera de antemo que a maioria das portas estar fechada. Ele inicia o teste em 30 portas TCP escolhidas aleatoriamente e manda pacotes SYN a cada uma delas. Se o IPID aumentar, o Nmap infere a quantidade de portas abertas no alvo. Em uma prxima etapa, o programa reduz o nmero de portas aleatrias at identicar os nmeros das que esto realmente abertas.

O Nmap tambm possui funes para gerao de arquivos de registro, seja para documentao ou para comparar duas varreduras. A opo -oA permite trs formatos de sada, permitindo a anlise tanto manual como automtica dos dados. O NDiff [11] bastante til para comparar dados de diferentes varreduras.

Problemas com licenas


Empresas com liais distantes podem no ter (e, normalmente, nunca tm) pessoal tcnico em todos os escritrios. O Nmap pode dar uma mozinha nesse detalhe tambm, monitorando tudo o que acontece nesses locais. Isso desejvel no s pelo aspecto da segurana: vericar os programas que esto instalados em cada mquina pode prevenir muitas dores de cabea com programas no autorizados (ou mesmo piratas) instalados pelos usurios. Uma varredura simples com ping lista as mquinas da lial; tcnicas mais complexas recolhem informaes sobre as verses e atualizaes dos programas e ajuda a identicar os funcionrios que no respeitam as regras a respeito de software no autorizado:

Toda a preparao que vimos at aqui tinha o nico propsito de vericar se Os exemplos que preparamos a seguir o zumbi era idneo. A partir de agora, foram especialmente criados para moscomea a segunda fase do processo: trar que o Nmap no uma ferramenta executar a varredura passiva propria- voltada para malfeitores, mas sim um mente dita. O Nmap usa uma aborda- auxiliar e tanto para os atarefadssimos gem semelhante para investigar o alvo: administradores de rede de hoje em dia. manda para ele pacotes SYN, forjando Antes de colocar a mo na massa, recoum pacote cujo endereo de origem o mendamos uma pitada de precauo: endereo IP do zumbi. O alvo vai respon- truques e experimentos com protocolos der, obviamente, para o zumbi. no so um mar calmo e sereno. Cuidado a que est toda a graa do processo. com as minas submarinas. possvel nmap -vv -sS -O -T Polite -n -oA U Se a porta sendo testada no alvo estiver que justo aquele seu servidor importante filiais fechada, o alvo vai mandar um RST para apresente comportamento inesperado. 192.168.6.0/24 o zumbi, que o ignora solenemente. Se, claro que tirar do ar um sistema funpelo contrrio, a porta no alvo estiver damental uma maneira enftica de O comando mostrado inicia uma varreaberta, esta iniciar a segunda etapa mostrar a seu chefe as vulnerabilidades dura SYN -sS para investigar toda a rede da negociao (o three-way handshake) existentes, mas pode custar seu emprego. 192.168.6.0 (classe C) e coletar informarespondendo com um pacote SYN/ACK. Imagine, por exemplo, que seus testes es a respeito dos sistemas operacionais O zumbi no sabe de nada a respeito paralisem o sistema de Voz sobre IP da (-O). Como no queremos consultas ao dessa tentativa de conexo e responde empresa, deixando todas as liais sem DNS, usamos a opo -n. Para economicom um RST dessa forma incremen- telefone. Catastrco, no acha? zar a banda do link com a lial, usamos tando seu prprio IPID. Para testes de rotina, escreva em um -T Polite para diminuir a cadncia dos A lgica, ento, simples: se o IPID arquivo de texto os nmeros IP de seus testes. -oA filiais registra dados mais do "laranja" no se alterar desordenada- sistemas mais crticos e especique, com detalhados nos logs. O Nmap possui trs mente, porque recebeu um RST do alvo a opo --excludefile, esse arquivo. formatos de registro: o mais legvel para portanto a porta no alvo est fechada. Isso permitir varrer toda a sua rede sem humanos o filiais.nmap; h ainda o J se o IPID do zumbi for perturbado, colocar em risco seu contracheque. filiais.gnmap, fcil de ser esmiuado

Exemplos

70

fevereiro 2006

edio 17 www.linuxmagazine.com.br

Nmap

SysAdmin

com a ferramenta grep. Por m, o arquivo XML filiais.xml mais palatvel para softwares interpretadores.

Remendos

Verstil e poderoso

Epidemia
Infestao por vermes de Internet ("worms") so uma ocorrncia bastante comum em redes com muitos computadores rodando Windows. Ferramentas de espionagem (spyware) e controle remoto como o BackOrice ainda so bastante comuns. O Nmap pode auxiliar administradores criativos a improvisar um "spybot de pobre", testando as portas normalmente usadas por programas maliciosos conhecidos:
nmap -vv -sS -n --excludefile excecoes.U txt -p wormports -oA infectados 192.168.5.0/24

O comando ativa o modo de detalhamento mximo -vv. Uma lista de portas conhecidas e potencialmente perigosas indicada com o parmetro -p. Os vermes usam essas portas para obedecer a comandos de seus mestres, baixar cdigo malicioso ou se auto-propagarem. As mquinas na rede 192.168.5.0/24 so testadas com uma varredura SYN (-sS), mas sem resoluo de nomes -n. Os computadores cujos endereos esto no arquivo excecoes.txt sero poupados do teste. Os resultados sero guardados nos arquivos infectados.nmap, infectados. gnmap e infectados.xml. O recurso de deteco da verso dos daemons (-sV) faz um trabalho muito bem feito ao detectar quais softwares maliciosos, spywares, cavalos de tria, vermes e vrus esto "na escuta" nas portas mais comuns. O Nmap consulta seu banco de dados interno para identicar os servios em questo. Entretanto, o processo demoradssimo e pode representar um gargalo em sua rede o que o torna impraticvel dependendo do caso.

Vermes, vrus e outros tipos de software O Nmap consegue lidar com uma quando mal se aproveitam de vulnerabilidades tidade enorme de tcnicas de varredura, conhecidas publicamente. O SQL Slam- todas muito sosticadas e a maioria basmer um belo exemplo de verme que tante difcil de ser detectada. O fato de ganhou notoriedade por sua capacidade a ferramenta poder ser empregada para de se alastrar. Mesmo o OpenSSL, um ns escusos no deve impedir que os servidor reconhecido por sua segurana, administradores a usem em aplicaes ganhou uma publicidade no muito boa legtimas. O uso de scanners uma forgraas ao verme Scalper. A nica manei- ma ecientssima de obter informaes ra de diminuir os riscos a atualizao abrangentes e detalhadas sobre sua rede constante dos sistemas. e o Nmap estrela maior no reino desPara testar e ter certeza de que no h sas controvertidas ferramentas. em sua rede nenhum servio com essas Christian Ney vulnerabilidades conhecidas, siga as insadministrador de trues do exemplo anterior. Colabore sistemas em uma para com o trfego de sua rede e divida empresa area regional europia, a deteco das verses dos daemons e mantendo sob a deteco do sistema operacional em seu cajado induas aes distintas: meras mquinas Unix e alguns nmap -vv -sS -A -n --excludefile U rewalls. Em seu tempo livre, contribui com dezenas de excecoes.txt -oA vuln_versoes U projetos de cdigo aberto. 192.168.5.0/24

Sobre o autor

Novamente, a varredura do tipo SYN (sS) vem em nosso auxlio. As opes so mais ou menos as mesmas. A novidade a opo -A, que combina a deteco de verses e a "impresso digital" do sistema operacional. Os resultados do uma viso geral das mquinas que precisam de atualizao ou remendos de segurana. Tenha em mente, entretanto, que muitos patches no atualizam o nmero da verso do programa. O Nmap no um substituto para um programa de administrao de atualizaes genuno. Use-o apenas como auxiliar ou "quebra-galho". Uma ltima dica: use um "sniffer" ou programa de captura de trfego (como o tcpdump [13] ou o Ethereal [14]) para monitorar como as varreduras funcionam. Reproduza todos os exemplos deste artigo e veja os resultados no sniffer. Diverso garantida.

Informaes
[1] Nmap: www.insecure.org/nmap/ [2] Fyodor, "A arte da varredura de portas",
Phrack 51:

www.phrack.org/phrack/51/P51-11 [3] Strobe: ftp.surfnet.nl/security/ coast/scanners/strobe/ [4] Pscan: www.packetstormsecurity. com/UNIX/scanners/pscan.c [5] Nmapwin: nmapwin.sourceforge.net [6] PHP-Nmap: phpnmap.sourceforge.net [7] Projetos derivados do Nmap: www.insecure. org/nmap/nmap_relatedprojects.html [8] Snort IDS: www.snort.org [9] Prelude IDS: www.prelude-ids.org [10] Identicando servos e portas: www. insecure.org/cgi-bin/nmap-submit.cgi [11] NDiff: www.vinecorp.com/ndiff/ [12] OpenSSL: www.openssl.org [13] TCPDump: www.tcpdump.org [14] Ethereal: www.ethereal.com
fevereiro 2006 edio 17

www.linuxmagazine.com.br

71

You might also like