Anda di halaman 1dari 34

Guia de Referncia do Nmap (Pgina do Manual) Name nmap Ferramenta de explorao de rede e segurana / scanner de portas Synopsis nmap

p [ <Tipo de Scan> ...] [ <Opes> ] { <especificao do alvo> } O Nmap (Network Mapper) uma ferramenta de cdigo aberto para explorao de rede e auditoria de segurana. Ela foi desenhada para escanear rapidamente redes amplas, embora tambm funcione muito bem contra hosts individuais. O Nmap utiliza pacotes IP em estado bruto (raw) de maneira inovadora para determinar quais hosts esto disponveis na rede, quais servios (nome da aplicao e verso) os hosts oferecem, quais sistemas operacionais (e verses de SO) eles esto executando, que tipos de filtro de pacotes/firewalls esto em uso, e dezenas de outras caractersticas. Embora o Nmap seja normalmente utilizado para auditorias de segurana, muitos administradores de sistemas e rede consideram-no til para tarefas rotineiras tais como inventrio de rede, gerenciamento de servios de atualizao agendados, e monitoramento de host ou disponibilidade de servio. A sada do Nmap uma lista de alvos escaneados, com informaes adicionais de cada um dependendo das opes utilizadas. Uma informao chave a tabela de portas interessantes. Essa tabela lista o nmero da porta e o protocolo, o nome do servio e o estado. O estado pode ser aberto (open), filtrado (filtered), fechado (closed), ou no-filtrado (unfilterd). Aberto (open) significa que uma aplicao na mquina-alvo est escutando as conexes/pacotes naquela porta. Filtrado (filtered) significa que o firewall, filtro ou outro obstculo de rede est bloqueando a porta de forma que o Nmap no consegue dizer se ela est aberta (open) ou fechada (closed). Portas fechadas (closed)no possuem uma aplicao escutando nelas, embora possam abrir a qualquer instante. Portas so classificadas como no filtradas (unfiltered)quando elas respondem s sondagens do Nmap, mas o Nmap no consegue determinar se as portas esto abertas ou fechadas. O Nmap reporta as combinaes aberta|filtrada (open|filtered)e fechada| filtrada (closed|filtered)quando no consegue determinar qual dos dois estados descrevem melhor a porta. A tabela de portas tambm pode incluir detalhes de verso de software quando a deteco de verso for solicitada. Quando um scan do protocolo IP solicitado (-sO), o Nmap fornece informaes dos protocolos IP suportados ao invs de portas que estejam abertas. Alm da tabela de portas interessantes, o Nmap pode fornecer informaes adicionais sobre os alvos, inclundo nomes de DNS reverso, possvel sistema operacional, tipos de dispositivos e endereos MAC. Um scan tpico do Nmap mostrado em Example 1, Uma amostra de scan do Nmap. Os nicos argumentos que o Nmap utiliza nesse exemplo so -A, para habilitar a deteco de SO e a verso, -T4 para execuo mais rpida, e os hostnames de dois alvos. Especificao de Alvo Tudo na linha de comando do Nmap que no for uma opo (ou argumento de uma opo) tratado como uma especificao de um host-alvo. O caso mais simples especificar um endereo IP como alvo ou um hostname para ser escaneado. Algumas vezes voc pode querer escanear uma rede inteira de hosts adjacentes. Para isso o Nmap suporta o estilo de endereamento CIDR. Voc pode acrescentar /<nmerodebits> em um endereo ou hostname e o Nmap ir escanear cada endereo IP para o qual os primeiros <nmerosdebits> sejam o mesmo que o IP de referncia ou o hostname dado. Por exemplo, 192.168.10.0/24 escanearia os 256 hosts entre 192.168.10.0 (binrio: 11000000 10101000

00001010 00000000) e 192.168.10.255 (binrio: 11000000 10101000 00001010 11111111), inclusive. 192.168.10.40/24 faria exatamente a mesma coisa. Dado que o host scanme.nmap.org est no endereo IP 205.217.153.62, a especificao scanme.nmap.org/16 escanearia os 65.536 endereos IP entre 205.217.0.0 e 205.217.255.255. O menor valor permitido /1, que equivale a escanear metade da Internet. O maior valor 32, que escaneia apenas o host nomeado ou endereo IP porque todos os bits de endereamento esto fixos. A notao CIDR curta mas nem sempre flexvel o suficiente. Por exemplo, voc pode querer escanear 192.168.0.0/16 mas desejar pular todos os IPs terminados em .0 ou .255 porque eles so normalmente endereos de broadcast. O Nmap suporta isso atravs de endereamento por faixa de octeto. Ao invs de especificar um endereo IP normal, voc pode especificar uma lista de nmeros separada por vrgulas ou faixa de nmeros para cada octeto. Por exemplo, 192.168.0-255.1-254 ir pular todos os endereos na faixa que terminarem com .0 e/ou .255. Faixas no precisam ser limitadas ao octeto final: o especificador 0-255.0-255.13.37 ir executar um scan em toda a Internet buscando os endereos IP terminados em 13.37. Esse tipo de amostragem ampla pode ser til em levantamentos e pesquisas da Internet toda. Endereos IPv6 podem apenas ser especificados utilizando o endereo ou hostname IPv6 completamente qualificado. Faixas CIDR e octetos no so suportados para o IPv6 porque eles raramente so teis. O Nmap aceita mltiplas especificaes de host na linha de comando, e elas no precisam ser do mesmo tipo. O comando nmap scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255 executa o que se espera que dele. Embora os alvos sejam normalmente especificados na linha de comando, as seguintes opes tambm esto disponveis para controlar a seleo de alvos: -iL <arquivodeentrada> (Entrada partir de uma lista) L a especificao de alvos partir de um <arquivodeentrada>. Passar uma lista enorme de hosts na linha de comando muito ruim, ainda que seja comumente desejvel. Por exemplo, seu servidor DHCP pode exportar uma lista de 10.000 endereos correntes em uso que voc deseja escanear. Ou talvez voc deseje escanear todos os endereos IP exceto aqueles usados para localizar hosts que usam endereos IP estticos no-autorizados. Simplesmente gere uma lista de hosts a escanear e passe o nome do arquivo para o Nmap como um argumento opo -iL. As entradas podem estar em qualquer um dos formatos aceitos pelo Nmap na linha de comando (endereo IP, hostname, CIDR, IPv6, ou faixas de octetos). Cada entrada deve ser separada por um ou mais espaos em branco, tabulaes ou quebra de linhas. Voc pode especificar um hfen (-) como nome de arquivo se quiser que o Nmap leia os nomes de hosts da entrada padro (standard input) ao invs de um arquivo. -iR <nmero de hosts> (Escolhe alvos aleatrios) Para levantamentos na Internet toda e outras pesquisas, voc pode querer escolher alvos de forma aleatria. O argumento <nmero de hosts> diz ao Nmap quantos IPs ele dever gerar. IPs indesejveis, tais como aqueles de certas redes privativas, multicast e faixas de endereos noalocadas so automaticamente desconsideradas. O argumento 0 (zero) pode ser especificado caso deseje um scan sem fim. Tenha em mente que alguns administradores de rede "torcem o nariz" para scans no-autorizados de suas redes e podem reclamar. Use esta opo por sua conta e risco! Se voc estiver realmente entediado em uma tarde chuvosa, tente o comando nmap -sS -iR 0 -p 80 para localizar servidores web aleatrios para navegar. --exclude <host1[,host2][,host3],...> (Exclui hosts/redes) Especifica uma lista de alvos, separados por vrgula, a serem excludos do scan mesmo que

faam parte da faixa de rede especificada. A lista que voc fornece utiliza a sintaxe normal do Nmap, portanto ela pode incluir nomes de hosts, blocos de rede CIDR, faixas de octetos, etc. Isso pode ser til quando a rede que voc deseja escanear inclui servidores de misso crtica intocveis, sistemas que reajam contrariamente a escaneamento de portas ou sub-redes administradas por outras pessoas. --excludefile <arquivo_excluso> (Exclui a lista do arquivo) Oferece a mesma funcionalidade que a opo --exclude, exceto que os alvos a excluir so fornecidos em um <"arquivo separado"> , delimitados por quebra de linhas, espao em branco ou tabulao, ao invs de na linha de comando. Descoberta de Hosts Um dos primeiros passos em qualquer misso de reconhecimento de uma rede reduzir um conjunto (s vezes enorme) de faixas de endereos IP, em uma lista de hosts ativos e interessantes. Escanear cada porta de cada endereo IP vagaroso e normalmente desnecessrio. claro que o que torna um host interessante depende muito do propsito do scan. Administradores de rede podem estar apenas interessados em hosts que executam um determinado servio, enquanto os auditores de segurana podem se importar com cada dispositivo que possuir um endereo IP. Um administrador pode se sentir vontade em usar o ping ICMP para localizar os hosts na rede interna, enquanto um profissional externo de anlise de vulnerabilidades (penetration tester) pode utilizar um conjunto diversificado de dezenas de sondagens em uma tentativa de burlar as restries do firewall. As necessidades para o descobrimento de host so muito diversas e, por isso, o Nmap oferece uma ampla variedade de opes para customizar as tcnicas utilizadas. A descoberta de host s vezes chamada de ping scan, mas ela vai muito alm dos simples pacotes ICMP de echo request associados com a ferramenta onipresente conhecida como ping. Os usurios podem pular a etapa do ping inteiramente com uma lista de scan (-sL) ou desabilitanto o ping (-P0), ou enfrentar a rede com combinaes arbitrrias de sondagens multi-portas TCP SYN/ACK, UDP e ICMP. O objetivo dessas sondagens solicitar respostas que mostrem que um endereo IP est realmente ativo ( utilizado por um host ou dispositivo de rede). Em muitas redes, apenas uma pequena percentagem dos endereos IP est ativa em um dado momento. Isso particularmente comum com o espao de endereamento privativo abenoado pela RFC1918 como, por exemplo, 10.0.0.0/8. Essa rede tem 16 milhes de IPs, mas eu j a vi sendo utilizado em empresas com menos de mil mquinas. A descoberta de hosts pode encontrar essas mquinas escassamente alocadas em um mar de endereos IP. Se nenhuma opo de descoberta de hosts for dada, o Nmap envia um pacote TCP ACK destinado a porta 80 e uma procura ICMP Echo Request a cada mquina-alvo. Uma exceo a isso que um scan ARP utilizado para cada alvo localizado na rede ethernet local. Para usurios Unix sem privilgios, com shell, um pacote SYN enviado ao invs do ack utilizando a chamada de sistema connect(). Esses valores padro equivalem s opes -PA -PE. Esta descoberta de host freqentemente suficiente para escanear redes locais, mas um conjunto de sondagens mais abrangentes recomendado para auditoria de segurana. As opes -P* (que selecionam tipos de ping) podem ser combinadas. Voc pode aumentar as chances de penetrar em um firewall rgido enviando muitos tipos de sondagens, utilizando diferentes portas/flags TCP e cdigos ICMP. Note tambm que a descoberta por ARP (-PR) feita por padro contra alvos na rede ethernet local mesmo que voc especifique outras opes -P* , porque quase sempre mais rpida e eficiente. Por definio, o Nmap faz a descoberta de host e ento executa um escaneamento de portas contra cada host que ele determina que est ativo. Isto verdade mesmo que voc especifique tipos de busca no-padronizadas de hosts, tais como sondagens UDP (-PU). Leia sobre a opo

-sP para saber como executar apenas uma descoberta de hosts, ou utilize -P0 para pular a descoberta de hosts e escanear as portas de todos os hosts-alvo. As seguintes opes controlam a descoberta de hosts: -sL (Scan Listagem) O scan listagem uma forma degenerada de descoberta de hosts que simplesmente lista cada host da rede especificada, sem enviar nenhum pacote aos hosts-alvos. Por padro o Nmap far a resoluo de DNS reverso dos hosts para descobrir seus nomes. Ainda surpreendente a quantidade de informaes teis que simples nomes de hosts podem dar. Por exemplo, fw.chi.playboy.com o firewall do escritrio de Chicago da Playboy Enterprises. Nmap tambm reporta o nmero total de endereos IP ao final. O scan listagem um bom teste de sanidade para assegurar que voc est com a lista correta de endereos IP dos seus alvos. Se os hosts mostrarem nomes de domnios que voc no reconhece, vale a pena investigar melhor para evitar scanear a rede da empresa errada. Uma vez que a idia apenas mostrar uma lista dos hosts-alvos, as opes de funcionalidade de nvel mais alto tais como scan de portas, deteco de SO, ou scan utilizando ping, no podem ser combinadas com esta opo. Se voc deseja desabilitar o scan utilizando ping enquanto executa funes de nvel elevado, leia a opo -P0. -sP (Scan usando Ping) Esta opo diz ao Nmap para somente executar um scan usando o ping (descoberta de hosts), e ento mostrar os hosts disponveis que responderam ao scan. Nenhum teste adicional (tais como escaneamento de portas e deteo de SO) executado. Isto um pouco mais intrusivo que o scan listagem, e pode ser usado para os mesmos propsitos. Permite um reconhecimento leve de uma rede-alvo sem chamar muita ateno. Saber quantos hosts esto ativos mais valioso para invasores que a lista fornecida pelo scan listagem com cada endereo IP e seu nome de host. Administradores de sistemas frequentemente acham esta opo valiosa. Ela pode ser facilmente utilizada para contar o nmero de mquinas disponveis em uma rede ou monitorar a disponibilidade dos servidores. Isto normalmente chamado de varredura com ping (ping sweep), e mais confivel do que fazer um ping em um endereo de broadcast, pois muitos hosts no respondem a pesquisas com broadcast. A opo -sP envia um ICMP echo request e um pacote TCP ACK para a porta 80 por padro. Quando executada por um usurio sem privilgios, um pacote SYN enviado (usando uma chamada connect()) para a porta 80 no alvo. Quando um usurio privilegiado tenta escanear alvos na rede ethernet local, requisies ARP (-PR) so utilizadas, a menos que --send-ip tenha sido especificado. A opo -sP pode ser combinada com qualquer um dos tipos de sondagens de descobrimento (as opes -P* , excluindo -P0) para maior flexibilidade. Se qualquer uma dessas opes de tipos de sondagens e nmero de porta for utilizada, as sondagens padro (ACK e echo request) so sobrepostas. Quando firewalls restritivos esto posicionados entre o host de origem que executa o Nmap e a rede-alvo, utilizar essas tcnicas avanadas recomendado. Do contrrio, hosts podem ser perdidos quando o firewall ignorar as sondagens ou as respostas delas. -P0 (Sem ping) Esta opo pula completamente o estgio de descoberta do Nmap. Normalmente o Nmap utiliza este estgio para determinar as mquinas ativas para escaneamento mais agressivo. Por padro, o Nmap apenas executa sondagens agressivas tais como escaneamento de portas, deteco de verses, ou deteces do SO contra hosts que foram verificados como ativos. Desabilitar a descoberta de hosts com -P0 faz com que o Nmap teste as funes de

escaneamento solicitadas contra todos os endereos IP alvos especificados. Portanto se um espao de endereamento alvo do tamanho de uma classe B (/16) for especificado na linha de comando, todos os 65.536 endereos IP sero escaneados. O segundo caracter da opo -P0 um zero e no a letra O. A descoberta de hosts apropriada desconsiderada como no scan listagem, mas ao invs de parar e mostrar a lista de alvos, o Nmap continua a executar as funes solicitadas como se cada alvo IP estivesse ativo. -PS [listadeportas] (Ping usando TCP SYN) Esta opo envia um pacote TCP vazio com a flag SYN marcada. A porta de destino padro a 80 (configurada em tempo de compilao pela varivel DEFAULT_TCP_PROBE_PORT no nmap.h), mas uma porta alternativa pode ser especificada como um parmetro. At uma lista de portas separadas por vrgula pode ser especificada (p.ex. -PS22,23,25,80,113,1050,35000), nesse caso as sondagens sero tentadas contra cada porta em paralelo. A flag SYN sugere aos sistemas remotos que voc est tentando estabelecer uma comunicao. Normalmente a porta de destino estar fechada e um pacote RST (reset) ser enviado de volta. Se acontecer de a porta estar aberta, o alvo ir dar o segundo passo do cumprimento-de-trs-vias (3-way-handshake) do TCP respondendo com um pacote TCP SYN/ACK TCP. A mquina executando o Nmap ento derruba a conexo recm-nascida respondendo com um RST ao invs de enviar um pacote ACK que iria completar o cumprimentode-trs-vias e estabelecer uma conexo completa. O pacote RST enviado pelo kernel da mquina que est executando o Nmap em resposta ao SYN/ACK inesperado, e no pelo prprio Nmap. O Nmap no se importa se a porta est aberta ou fechada. Tanto a resposta RST ou SYN/ACK discutidas anteriormente dizem ao Nmap se o hosts est disponvel e responsivo. Em caixas UNIX, apenas o usurio privilegiado root capaz, normalmente, de enviar e receber pacotes TCP em estado bruto. Para usurios no privilegiados um contorno automaticamente empregado em concordncia com a chamada de sistema connect() iniciada contra cada porta-alvo. Isso tem o efeito de enviar um pacote SYN ao host alvo, em uma tentativa de se estabelecer uma conexo. Se o connect() retornar com sucesso rpido ou com uma falha ECONNREFUSED, a pilha TCP subjacente deve ter recebido um SYN/ACK ou RST e o host marcado como disponvel. Se a tentativa de conexo for deixada largada at que um timeout ocorra, o host marcado como indisponvel. Esse contorno tambm usado para conexes IPv6, pois o suporte a construo de pacotes IPv6 em estado bruto ainda no est disponvel no Nmap. -PA [listadeportas] (Ping usando TCP ACK) O ping usando TCP ACK muito similar ao recm-discutido ping usando SYN. A diferena, como voc poderia imaginar, que a flag TCP ACK marcada ou invs da flag SYN. Tal pacote ACK finge reconhecer dados de uma conexo TCP estabelecida, quando nenhuma conexo existe de fato. Ento os hosts remotos deveriam sempre responder com pacotes RST, revelando sua existncia no processo. A opo -PA utiliza a mesma porta padro que a sondagem SYN (80) e pode tambm obter uma lista de portas destino no mesmo formato. Se um usurio privilegiado tenta isto, ou se um alvo IPv6 especificado, o contorno connect() discutido anteriormente utilizado. Esse contorno imperfeito pois o connect() est realmente enviando um pacote SYN ao invs de um ACK. O motivo para oferecer ambas as sondagens ping, que utilizam SYN e ACK, maximizar as chances de passar por firewalls. Muitos administradores configuram roteadores e outros firwalls simples para bloquear pacotes SYN entrantes exceto aqueles destinados a servios pblicos como o site web da empresa ou servidor de correio eletrnico. Isso evita as demais conexes

entrantes na organizao, permitindo aos usurios fazer conexes desobstruidas Internet. Essa aproximao no-orientada conexo (non-stateful ou stateless) consome uns poucos recursos no firewall/roteador e amplamente suportada por filtros de hardware e software. O firewall de software Netfilter/iptables do Linux oferece a convenincia da opo --syn para implementar essa abordagem stateless. Quando regras stateless do firewall tais como essas so implementadas, sondagens de ping usando SYN (-PS) muito provavelmente sero bloqueadas quando forem enviadas portas fechadas. Em tais casos, a sondagem ACK se destaca pois ela simplesmente passa por essas regras. Outro tipo comum de firewall utiliza regras orientadas a conexo que descartam pacotes inesperados. Esta caracterstica era encontrada inicialmente apenas em firewalls de alto-nvel, embora tenha se tornado mais comum com o passar dos anos. O sistema Netfilter/iptables do Linux suporta esta caracterstica atravs da opo --state, que categoriza os pacotes baseados no estado da conexo. Uma sondagem SYN tem maiores chances de funcionar contra um sistema assim, pois pacotes ACK inesperados so normalmente reconhecidos como falsos e descartados. Uma soluo para esse dilema enviar ambas as sondagens SYN e ACK especificando -PS e -PA. -PU [listadeportas] (Ping usando UDP) Outra opo de descoberta de hosts o ping usando UDP, que envia um pacote UDP vazio (a menos que --data-length seja especificado) para as portas informadas. O argumento "listadeportas" tem o mesmo formato que os discutidos anteriormente nas opes -PS e -PA. Se nenhuma porta for especificada, o padro 31338. Esse padro pode ser configurado em tempo de compilao alterando DEFAULT_UDP_PROBE_PORT no nmap.h. Uma porta alta incomum utilizada como padro porque enviar para portas abertas normalmente indesejado para este tipo particular de scan. Ao bater contra uma porta fechada na mquina-alvo, a sondagem UDP deve causar um pacote ICMP de porta inalcanvel como resposta. Isso diz ao Nmap que a mquina est ativa e disponvel. Muitos outros tipos de erros ICMP, tais como host/rede inalcanvel ou TTL excedido so indicativos de um host inativo ou inalcanvel. A falta de resposta tambm interpretada dessa forma. Se uma porta aberta alcanada, a maioria dos servios simplesmente ignoram o pacote vazio e falham em retornar qualquer resposta. por isso que a porta de sondagem padro 31338, que pouco provavelmente estar em uso. Uns poucos servios, tal como o chargen, ir responder a um pacote UDP vazio, e com isso revelar ao Nmap que a mquina est disponvel. A principal vantagem deste tipo de scan que ele passa por firewalls e filtros que apenas examinam o TCP. Por exemplo, uma vez eu tive um roteador broadband sem-fio Linksys BEFW11S4. A interface externa desse dispositivo filtrava todas as portas TCP por padro, mas as sondagens UDP ainda causavam mensagens de porta inalcanvel, entregando assim o dispositivo. -PE; -PP; -PM (Tipos de Ping do ICMP) Alm dos tipos incomuns de descoberta de hosts TCP e UDP discutidos anteriormente, o Nmap pode enviar os pacotes-padro que normalmente so enviados pelo onipresente programa ping. O Nmap envia um pacote ICMP do tipo 8 (echo request) ao endereo IP alvo, esperando como resposta um tipo 0 (Echo Reply) do host disponvel. Infelizmente para muitos exploradores de rede, muitos hosts e firewalls atualmente bloqueiam esses pacotes, ao invs de responder como requerido pela RFC 1122. Por essa razo, scans puramente ICMP so raramente confiveis o suficiente contra alvos desconhecidos na Internet. Mas para administradores de sistemas monitorando uma rede interna eles podem ser uma abordagem prtica e eficiente. Utilize a opo -PE para ativar esse comportamento echo request.

Embora o echo request seja a pesquisa padro de um ping ICMP, o Nmap no pra aqui. A padronizao do ICMP (RFC 792) tambm especifica timestamp request, information request, e pacotes address mask request como cdigos 13, 15, e 17, respectivamente. Apesar do propsito ostensivo dessas pesquisas seja obter informaes tais como a mscara do endereo e hora corrente, eles podem ser facilmente utilizados para descoberta de hosts. Um sistema que responda est ativo e disponvel. O Nmap no implementa atualmente os pacotes de requisio de informaes, pois eles no so amplamente suportados. A RFC 1122 insiste que um host NO DEVERIA implementar essas mensagens. Pesquisas de marcao de hora (Timestamp) e mscara de endereo podem ser enviadas com as opes -PP e -PM , respectivamente. Uma resposta timestamp reply (cdigo ICMP 14) ou uma resposta address mask reply (cdigo 18) revela que o host est disponvel. Essas duas pesquisas podem ser valiosas quando os administradores bloqueiam pacotes echo request especificamente e esquecem que outras pesquisas ICMP podem ser usadas com o mesmo propsito. -PR (Ping usando ARP) Um dos cenrios de uso mais comuns do Nmap escanear a LAN ethernet. Na maioria das LANs, especialmente aquelas que utilizam a faixa de endereamento privativo abenoado pela RFC1918, a vasta maioria dos endereos IP no so utilizados nunca. Quando o Nmap tenta enviar um pacote IP em estado bruto, tal como um ICMP echo request, o sistema operacional deve determinar o endereo fsico de destino (ARP) correspondente ao IP-alvo de forma que ele possa enderear adequadamente o frame ethernet. Isso normalmente lento e problemtico, pois os sistemas operacionais no foram escritos com a expectativa de que precisariam fazer milhes de requisies ARP contra hosts indisponveis em um curto perodo de tempo. O scan ARP encarrega o Nmap e seus algoritmos otimizados de fazer as requisies ARP. E se ele conseguir uma resposta de volta, o Nmap no precisa nem se preocupar com os pacotes ping baseados em IP, uma vez que ele j sabe que o host est ativo. Isso torna o scan ARP muito mais rpido e mais confivel que os scans baseados em IP. Portanto isso feito por padro quando se escaneia hosts ethernet que o Nmap detecta estarem posicionados em uma rede ethernet local. Mesmo se tipos diferentes de ping (tais como -PI ou -PS) seja especificados, o Nmap usa o ARP no lugar para cada um dos alvos que estiverem na mesma LAN. Se voc no quiser de forma nenhuma fazer um scan ARP, especifique --send-ip. -n (No faa resoluo DNS) Diz ao Nmap para nunca fazer uma resoluo DNS reversa nos endereos IP ativos que ele encontrar. Uma vez que o DNS normalmente lento, isso acelera as coisas. -R (resoluo DNS para todos os alvos) Diz ao Nmap para sempre fazer uma resoluo DNS reversa nos endereos IP-alvos. Normalmente isto apenas executado quando uma mquina est ativa. --system-dns (Usa a resoluo DNS do sistema) Por padro, o Nmap resolve o endereo IP atravs do envio de pesquisas (queries) diretamente aos servidores de nome configurados em seu host, e ento escuta as respostas. Muitas das pesquisas (dezenas) so executadas em paralalo para um melhor desempenho. Especifique esta opo se desejar utilizar a resoluo DNS do seu sistema (um endereo IP por vez, atravs da chamada getnameinfo()). Isto mais lenta e raramente til, a no ser que haja um bug no cdigo de DNS do Nmap ,por favor, entre em contato conosco se for o caso. A resoluo DNS do sistema sempre usada em escaneamento IPv6. --dns-servers <servidor1[,servidor2],...> (Servidores a utilizar para a pesquisa DNS reversa)

Por padro o Nmap ir tentar determinar os seus servidores DNS (para a resoluo DNS reversa) atravs do arquivo resolv.conf (UNIX) ou do registry (Win32). Opcionalmente voc pode usar esta opo para especificar servidores alternativos. Esta opo no honrada se voc estiver usando --system-dns ou um escaneamento IPv6. Utilizar mltiplos servidores DNS , normalmente, mais rpido e mais furtivo do que pesquisar apenas em um servidor. O melhor desempenho frequentemente obtido especificando-se todos os servidores que tem autoridade sobre a faixa de endereos IP. Fundamentos do Escaneamento de Portas Embora o Nmap tenha crescido em funcionalidade ao longo dos anos, ele comeou como um eficiente scanner de portas, e essa permanece sua funo principal. O simples comando nmap <alvo> escaneia mais de 1660 portas TCP no host <alvo>. Embora muitos scanner de portas tenham tradicionalmente agrupado todas as portas nos estados aberto ou fechado, o Nmap muito mais granular. Ele divide as portas em seis estados: aberto(open), fechado(closed),filtrado(filtered), no-filtrado(unfiltered), open|filtered, ou closed|filtered. Esses estados no so propriedades intrnsecas da porta, mas descrevem como o Nmap as v. Por exemplo, um scan do Nmap da mesma rede como alvo pode mostrar a porta 135/tcp como aberta, enquanto um scan ao mesmo tempo com as mesmas opes, partir da Internet poderia mostrar essa porta como filtrada. Os seis estados de porta reconhecidos pelo Nmap aberto (open) Uma aplicao est ativamente aceitando conexes TCP ou pacotes UDP nesta porta. Encontrar esse estado freqentemente o objetivo principal de um escaneamento de portas. Pessoas conscientes sobre a segurana sabem que cada porta aberta um convite para um ataque. Invasores e profissionais de avaliao de segurana querem explorar as portas abertas, enquanto os administradores tentam fechar ou proteger com firewalls sem bloquear usurios legtimos. Portas abertas so tambm interessantes para scans no-relacionados segurana pois mostram os servios disponveis para utilizao na rede. fechado (closed) Uma porta fechada est acessvel (ela recebe e responde a pacotes de sondagens do Nmap), mas no h nenhuma aplicao ouvindo nela. Elas podem ser teis para mostrar que um host est ativo em um determinado endereo IP (descoberta de hosts, ou scan usando ping), e como parte de uma deteo de SO. Pelo fato de portas fechadas serem alcanveis, pode valer a pena escanear mais tarde no caso de alguma delas abrir. Os administradores deveriam considerar o bloqueio dessas portas com um firewall. Ento elas apareceriam no estado filtrado, discutido a seguir. filtrado (filtered) O Nmap no consegue determinar se a porta est aberta porque uma filtragem de pacotes impede que as sondagens alcancem a porta. A filtragem poderia ser de um dispositivo firewall dedicado, regras de roteador, ou um software de firewall baseado em host. Essas portas frustram os atacantes pois elas fornecem poucas informaes. s vezes elas respondem com mensagens de erro ICMP tais como as do tipo 3 cdigo 13 (destino inalcanvel: comunicao proibida administrativamente), mas os filtros que simplesmente descartam pacotes sem responder so bem mais comuns. Isso fora o Nmap a tentar diversas vezes s para o caso de a sondagem ter sido descartada por congestionamento da rede ao invs de filtragem. Isso reduz a velocidade do scan dramaticamente.

no-filtrado (unfiltered) O estado no-filtrado significa que uma porta est acessvel, mas que o Nmap incapaz de determinar se ela est aberta ou fechada. Apenas o scan ACK, que usado para mapear conjuntos de regras de firewall, classifica portas com este estado. Escanear portas no-filtradas com outros tipos de scan, tal como scan Window, scan Syn, ou scan FIN, podem ajudar a responder se a porta est aberta. open|filtered O Nmap coloca portas neste estado quando incapaz de determinar se uma porta est aberta ou filtrada. Isso acontece para tipos de scan onde as portas abertas no do nenhuma resposta. A falta de resposta tambm pode significar que um filtro de pacotes descartou a sondagem ou qualquer resposta que ela tenha provocado. Portanto no sabe-se com certeza se a porta est aberta ou se est sendo filtrada. Os scans UDP, IP Protocol, FIN, Null, e Xmas classificam portas desta forma. closed|filtered Este estado usado quando o Nmap incapaz de determinar se uma porta est fechada ou filtrada. apenas usado para o scan IPID Idle scan. Tcnicas de Escaneamento de Portas Como um novato executando um reparo automotivo, posso brigar por horas tentando usar minhas ferramentas rudimentares (martelo, fita adesiva, grifo, etc.) nas tarefas. Quando eu falho miseravelmente e reboco minha lata-velha para um mecnico de verdade ele invariavelmente pesca aqui e ali em um enorme ba de ferramentas at pegar a coisa perfeita que torna a tarefa uma brincadeira. A arte de escanear portas similar. Os experts entendem as dezenas de tcnicas de escaneamento e escolhem as que so apropriadas (ou uma combinao) para uma dada tarefa. Usurios inexperientes e script kiddies, por outro lado, tentam resolver todos os problemas com o scan SYN padro. Uma vez que o Nmap gratuito, a nica barreira para a maestria em escaneamento de portas o conhecimento. Isso certamente melhor que no mundo automotivo, onde pode ser necessrio uma grande habilidade para determinar que voc precisa de um compressor de molas e ento voc tem que pagar milhares de dlares por um. A maioria dos tipos de scan est disponvel apenas para usurios privilegiados. Isso acontece porque eles enviam e recebem pacotes em estado bruto, o que requer acesso de root em sistemas Unix. Utilizar a conta de administrador no Windows recomendado, embora o Nmap s vezes funcione com usurios sem privilgios nessa plataforma quando o WinPcap foi carregado no SO. Requerer privilgio de root era uma sria limitao quando o Nmap foi lanado em 1997, pois muitos usurios apenas tinham acesso a contas de shell compartilhadas. Agora o mundo diferente. Computadores esto mais baratos, muito mais pessoas tem acesso direto e permanente Internet, e computadores de mesa Unix (incluindo Linux e MAC OS X) so comuns. Uma verso para o Windows do Nmap se encontra disponvel atualmente, permitindo que se rode em muito mais computadores de mesa. Por todas essas razes, os usurios tem menos necessidade de executar o Nmap partir de contas de shell compartilhadas e limitadas. Isso muito bom pois as opes privilegiadas tornam o Nmap muito mais poderoso e flexvel. Embora o Nmap tente produzir resultados precisos, tenha em mente que todas as dedues so baseadas em pacotes devolvidos pelas mquinas-alvo (ou firewalls na frente delas). Tais hosts podem ser no-confiveis e enviar respostas com o propsito de confundir ou enganar o Nmap. Muito mais comum so os hosts no-de-acordo-com-a-rfc que no respondem como deveriam s sondagens do Nmap. As sondagens FIN, Null e Xmas so particularmente suscetveis a esse problema. Tais questes so especficas de determinados tipos de scan e portanto so discutidos nas entradas individuais de cada um dos tipos.

Esta seo documenta as dezenas de tcnicas de escaneamento de portas suportadas pelo Nmap. Apenas um mtodo pode ser utilizado de cada vez exceto que um scan UDP (-sU) pode ser combinado com qualquer um dos tipos de scan TCP. Como uma ajuda para a memria, as opes dos tipos de escaneamento de portas esto no formato -s<C>, onde <C> um caracter proeminente no nome do scan, normalmente o primeiro. A nica exceo a essa regra para o scan depreciado FTP bounce (-b). Por padro, o Nmap executa um scan SYN, embora ele substitua por um scan connect se o usurio no tiver os privilgios adequados para enviar pacotes em estado bruto (requer acesso de root no UNIX) ou se alvos IPv6 forem especificados. Dos scans listados nesta seo, os usurios no privilegiados podem apenas executar os scans connect e ftp bounce. -sS (scan TCP SYN) O scan SYN a opo de scan padro e mais popular por boas razes. Pode ser executada rapidamente, escaneando milhares de portas por segundo em uma rede rpida, no bloqueada por firewalls intrusivos. O scan SYN relativamente no-obstrusivo e camuflado, uma vez que ele nunca completa uma conexo TCP. Ele tambm trabalha contra qualquer pilha TCP padronizada ao invs de depender de idiossincrasias de plataformas especficas como os scans Fin/Null/Xmas, Maimon e Idle fazem. Ele tambm permite uma diferenciao limpa e confivel entre os estados aberto (open), fechado (closed), e filtrado (filtered). Esta tcnica freqentemente chamada de escaneamento de porta entreaberta (half-open scanning), porque voc no abre uma conexo TCP completamente. Voc envia um pacote SYN, como se fosse abrir uma conexo real e ento espera uma resposta. Um SYN/ACK indica que a porta est ouvindo (aberta), enquanto um RST (reset) indicativo de uma no-ouvinte. Se nenhuma resposta recebida aps diversas retransmisses, a porta marcada como filtrada. A porta tambm marcada como filtrada se um erro ICMP de inalcanvel recebido (tipo 3, cdigo 1,2, 3, 9, 10, ou 13). -sT (scan TCP connect) O scan TCP connect o scan padro do TCP quando o scan SYN no uma opo. Esse o caso quando o usurio no tem privilgios para criar pacotes em estado bruto ou escanear redes IPv6. Ao invs de criar pacotes em estado bruto como a maioria dos outros tipos de scan fazem, o Nmap pede ao sistema operacional para estabelecer uma conexo com a mquina e porta alvos enviando uma chamada de sistema connect(). Essa a mesma chamada de alto nvel que os navegadores da web, clientes P2P, e a maioria das outras aplicaes para rede utilizam para estabelecer uma conexo. parte da interface de programao conhecida como API de Sockets de Berkeley. Ao invs de ler as respostas em pacotes em estado bruto diretamente dos fios, o Nmap utiliza esta API para obter informaes do estado de cada tentativa de conexo. Quando um scan SYN est disponvel normalmente a melhor escolha. O Nmap tem menos controle sobre a chamada de alto nvel connect() do que sobre os pacotes em estado bruto, tornando-o menos eficiente. A chamada de sistema completa as conexes nas portas-alvo abertas ao invs de executar o reset de porta entreaberta que o scan SYN faz. Isso no s leva mais tempo e requer mais pacotes para obter a mesma informao, mas tambm torna mais provvel que as mquinas-alvo registrem a conexo. Um sistema IDS decente ir detectar qualquer um deles, mas a maioria das mquinas no tem esse tipo de sistema de alarme. Muitos servios na maioria dos sistema Unix iro acrescentar uma nota no syslog, e s vezes uma mensagem de erro obscura, quando o Nmap se conecta e ento fecha a conexo sem enviar nenhum dado. Servios verdadeiramente patticos iro travar quando isso acontecer, embora isso seja incomum. Um administrador que v um punhado de tentativas de conexo nos registros vindos de um nico sistema deveria saber que foi escaneado com connect(). -sU (scans UDP)

Embora os servios mais populares na Internet trafeguem sobre o protocolo TCP, os servios UDP so amplamente difundidos. O DNS, o SNMP, e o DHCP (registrados nas portas 53, 161/162, e 67/68) so trs dos mais comuns. Pelo fato do escaneamento UDP ser normalmente mais lento e mais difcil que o TCP, alguns auditores de segurana ignoram essas portas. Isso um erro, pois servios UDP passveis de explorao so bastante comuns e invasores certamente no ignoram o protocolo inteiro. Felizmente o Nmap pode ajudar a inventariar as portas UDP. O scan UDP ativado com a opo -sU. Ele pode ser combinado com um tipo de escaneamento TCP como o scan SYN (-sS) para averigar ambos protocolos na mesma execuo. O scan UDP funciona enviando um cabealho UDP vazio (sem dados) para cada porta almejada. Se um erro ICMP de porta inalcanvel (tipo 3, cdigo 3) retornado, a porta est fechada. Outros erros do tipo inalcanvel (tipo 3, cdigos 1, 2, 9, 10, ou 13) marcam a porta como filtrada. Ocasionalmente um servio ir responder com um pacote UDP, provando que est aberta. Se nenhuma resposta recebida aps as retransmisses, a porta classificada como aberta|filtrada. Isso significa que a porta poderia estar aberta, ou talvez que filtros de pacotes estejam bloqueando a comunicao. Scans de verses (-sV) podem ser utilizados para ajudar a diferenciar as portas verdadeiramente abertas das que esto filtradas. Um grande desafio com o escaneamento UDP faz-lo rapidamente. Portas abertas e filtradas raramente enviam alguma resposta, deixando o Nmap esgotar o tempo (time out) e ento efetuar retransmisses para o caso de a sondagem ou a resposta ter sido perdida. Portas fechadas so, normalmente, um problema ainda maior. Elas costumam enviar de volta um erro ICMP de porta inalcanvel. Mas, ao contrrio dos pacotes RST enviados pelas portas TCP fechadas em resposta a um scan SYN ou connect, muitos hosts limitam a taxa de mensagens ICMP de porta inalcanvel por padro. O Linux e o Solaris so particularmente rigorosos quanto a isso. Por exemplo, o kernel 2.4.20 do Linux limita a quantidade de mensagens de destino inalcanvel a at uma por segundo (no net/ipv4/icmp.c). O Nmap detecta a limitao de taxa e diminui o ritmo de acordo para evitar inundar a rede com pacotes inteis que a mquina-alvo ir descartar. Infelizmente, um limite como o do Linux de um pacote por segundo faz com que um scan de 65.536 portas leve mais de 18 horas. Idias para acelerar o escaneamento UDP incluem escanear mais hosts em paralelo, fazer um scan rpido apenas das portas mais comuns primeiro, escanear por detrs de um firewall, e utilizar --host-timeout para pular os hosts lentos. -sN; -sF; -sX (scans TCP Null, FIN, e Xmas) Esses trs tipos de scan (existem outras opes, possveis com a opo --scanflags descrita na prxima seo) exploram uma brecha sutil na RFC do TCP para diferenciarem entre portas abertas e fechadas. A pgina 65 diz que se a porta [destino] estiver FECHADA .... um segmento entrante que no contenha um RST ir causar o envio de um RST como resposta. Ento a pgina seguinte discute os pacotes enviados portas abertas sem os bits SYN, RST ou ACK marcados, afirmando que: pouco provvel que voc chegue aqui, mas se chegar, descarte o segmento, e volte. Quando se escaneia sistemas padronizados com o texto desta RFC, qualquer pacote que no contenha os bits SYN, RST, ou ACK ir resultar em um RST como resposta se a porta estiver fechada, e nenhuma resposta se a porta estiver aberta. Contanto que nenhum desses trs bits estejam includos, qualquer combinao dos outros trs (FIN, PSH e URG) vlida. O Nmap explora isso com trs tipos de scan: scan Null (-sN)

No marca nenhum bit (o cabealho de flag do tcp 0) scan FIN (-sF) Marca apenas o bit FIN do TCP. scan Xmas(-sX) Marca as flags FIN, PSH e URG, iluminando o pacote como uma rvore de Natal. Esses trs tipos de scan so exatamente os mesmos em termos de comportamento, exceto pelas flags TCP marcadas no pacotes de sondagem. Se um pacote RST for recebido, a porta considerada fechada, e nenhuma resposta significa que est aberta|filtrada. A porta marcada como filtrada se um erro ICMP do tipo inalcanvel (tipo 3, cdigo 1, 2, 3, 9, 10, ou 13) for recebido. A vantagem principal desses tipos de scan que eles podem bisbilhotar atravs de alguns firewalls no-orientados conexo e de roteadores que filtram pacotes. Outra vantagem que esses tipos de scan so um pouco mais camuflados do que o scan SYN. Mas, no conte com isso -- a maioria dos produtos IDS modernos podem ser configurados para detect-los. O maior problema que nem todos os sistemas seguem a RFC 793 ao p-da-letra. Diversos sistemas enviam respostas RST para as sondagens independentemente do fato da porta estar aberta ou no. Isso faz com que todas as portas sejam classificadas como fechadas. A maioria dos sistemas operacionais que fazem isso so Microsoft Windows, muitos dispositivos Cisco, BSDI, e o IBM OS/400. Esse scan realmente funciona contra a maioria dos sistemas baseados em Unix. Outro ponto negativo desses scans que eles no conseguem diferenciar portas abertas de alguns tipos de portas filtradas, deixando voc com a resposta abera|filtrada. -sA (scan TCP ACK) Esse scan diferente dos outros discutidos at agora pelo fato de que ele nunca determina se uma porta est aberta (ou mesmo aberta|filtrada). Ele utilizado para mapear conjuntos de regras do firewall, determinando se eles so orientados conexo ou no e quais portas esto filtradas. O pacote de sondagem do scan ACK tem apenas a flag ACK marcada (a menos que voc use --scanflags). Quando se escaneia sistemas no-filtrados, as portas abertas e fechadas iro devolver um pacote RST. O Nmap ento coloca nelas o rtulo no-filtradas (unfiltered), significando que elas esto alcanveis pelo pacote ACK, mas se elas esto abertas ou fechadas indeterminado. Portas que no respondem, ou que devolvem certas mensagens de erro ICMP (tipo 3, cdigo 1, 2, 3, 9, 10, ou 13), so rotuladas como filtradas. -sW (scan da Janela TCP) Scan da Janela exatamente o mesmo que o scan ACK, exceto que ele explora um detalhe da implementao de certos sistemas de forma a diferenciar as portas abertas das fechadas, ao invs de sempre mostrar no-filtrada quando um RST devolvido. Ele faz isso examinando o campo Janela TCP (TCP Window) do pacote RST devolvido. Em alguns sistemas, as portas abertas usam um valor positivo de tamanho de janela (mesmo para pacotes RST), enquanto que as portas fechadas tem um valor igual a zero. Ento, ao invs de sempre mostrar uma porta como no-filtrada quando se recebe um RST de volta, o scan da Janela mostra a porta como aberta ou fechada se o valor da Janela TCP no reset for positivo ou zero, respectivamente. Este scan se baseia em um detalhe de implementao de uma minoria de sistemas na Internet, portanto no se pode confiar sempre nele. Sistemas que no suportam isso iro

normalmente devolver todas as portas como fechadas. claro que possvel que a mquina realmente no tenha nenhuma porta aberta. Se a maioria das portas escaneadas estiver fechada mas uns poucos nmeros de portas comuns (tais como 22, 25, 53) esto filtrados, o sistema muito provavelmente est vulnervel. De vez em quando, os sistemas iro mostrar exatamente o comportamento oposto. Se o seu scan mostrar 1000 portas abertas e 3 fechadas ou filtradas, ento essas trs podem muito bem ser as verdadeiramente abertas. -sM (scan TCP Maimon) O scan Maimon recebeu o nome de seu descobridor, Uriel Maimon. Ele descreveu a tcnica na Phrack Magazine, edio 49 (Novembro de 1996). O Nmap, que incluiu essa tcnica, foi lanado duas edies mais tarde. A tcnica exatamente a mesma que os scans Null, FIN e Xmas, exceto que a sondagem FIN/ACK. De acordo com a RFC 793 (TCP), um pacote RST deveria ser gerado em resposta a tal sondagem se a porta estiver aberta ou fechada. Entretanto, Uriel notou que muitos sistemas derivados do BSD simplesmente descartavam o pacote se a porta estivesse aberta. --scanflags (scan TCP Personalizado) Usurios verdadeiramente avanados do Nmap no precisam se limitar aos tipos de scans enlatados oferecidos. A opo --scanflags permite que voc desenhe seu prprio scan permitindo a especificao de flags TCP arbitrrias. Deixe sua imaginao correr solta enquanto dribla sistemas de deteco de intruso, cujos fabricantes apenas olharam rapidamente a pgina man do Nmap adicionando regras especficas! O argumento do --scanflags pode ser um valor numrico da marca (flag) como o 9 (PSH e FIN), mas usar nomes simblicos mais fcil. Apenas esprema alguma combinao de URG, ACK, PSH, RST, SYN, e FIN. Por exemplo, --scanflags URGACKPSHRSTSYNFIN marca tudo, embora no seja muito til para escaneamento. A ordem em que essas marcas so especificadas irrelevante. Alm de especificar as marcas desejadas, voc pode especificar um tipo de scan TCP (como o -sA ou -sF). Esse tipo-base diz ao Nmap como interpretar as respostas. Por exemplo, um scan SYN considera nenhuma-resposta como uma indicao de porta filtrada, enquanto que um scan FIN trata a mesma como aberta|filtrada. O Nmap ir se comportar da mesma forma que o tipo de scan-base escolhido, exceto que ele ir usar as marcas TCP que voc especificar. Se voc no escolher um tipo-base, o scan SYN utilizado. -sI <hostzumbi[:portadesondagem]> (scan Idle) Este mtodo avanado de scan permite um scan TCP realmente cego das portas do alvo (significando que nenhum pacote enviado para o alvo do seu endereo IP real). Ao invs disso, um ataque canal-lateral (side-channel) explora a previsvel gerao de seqencia de ID, conseqencia da fragmentao do IP, no host zumbi, para juntar informaes sobre as portas abertas no alvo. Sistemas IDS iro mostrar o scan como se viessem da mquina zumbi que voc especificou (que deve estar ativa e obedecer a alguns critrios). Este tipo fascinante de scan complexo demais para se descrever completamente aqui, neste guia de referncia, ento eu escrevi e postei um trabalho informal com detalhes completos em http://nmap.org/book/idlescan.html. Alm de ser extraordinariamente camuflado (devido sua natureza cega), este tipo de scan permite mapear relaes de confiana baseadas em IP entre mquinas. A listagem de portas mostra as portas abertas da perspectiva do host zumbi. Portanto voc pode tentar escanear algo usando vrios zumbis que voc acha que podem ser confiveis (via regras de roteador/filtro de pacotes).

Voc pode adicionar o sinal "dois-pontos", seguido do nmero da porta, ao nome do host zumbi se quiser sondar uma porta em particular no zumbi, verificando as mudanas de IPID. Do contrrio o Nmap ir utilizar a porta que ele normalmente usa por padro para pings tcp (80). -sO (Scans do protocolo IP) Scans do Protocolo IP permitem que voc determine quais protocolos IP (TCP, ICMP, IGMP, etc.) so suportados pelas mquina-alvo. Isso no , tecnicamente, um scan de portas, pois ele varia os nmeros do protocolo IP ao invs dos nmeros de portas TCP e UDP. Ainda assim, ele utiliza a opo -p para selecionar os nmeros de protocolos a escanear, mostra os resultados dentro do formato normal da tabela de portas e usa o mesmo mecanismo de escaneamento dos mtodos de descoberta de portas. Portanto ele parecido o suficiente com um scan de portas e por isso pertence este lugar. Alm de ser til de seu jeito, o scan de protocolo mostra o poder do software de cdigo aberto. Embora a idia fundamental seja bastante simples, eu no havia pensado em adicion-la e nem havia recebido nenhuma solicitao para essa funcionalidade. Ento, no vero de 2000, Gerhard Rieger concebeu a idia, escreveu uma excelente alterao (patch) implementando-a, e a enviou para a lista de discusso nmap-hackers. Eu incorporei a alterao na rvore do Nmap e lancei uma nova verso no dia seguinte. Poucos produtos de software comercial tem usurios entusiasmados o suficiente para desenhar e contribuir com melhorias! O scan de protocolo funciona de uma forma similar a um scan UDP. Ao invs de ficar repetindo alternando o campo de nmero de porta de um pacote UDP, ele envia cabealhos de pacote IP e faz a repetio alternando o campo de protocolo IP de 8 bits. Os cabealhos normalmente esto vazios, sem conter dados, e nem mesmo contendo o cabealho apropriado do suposto protocolo. As trs excees so o TCP, o UDP e o ICMP. Um cabealho de protocolo apropriado para estes includo, uma vez que alguns sistemas no os enviaro caso no tenham, e porque o Nmap tem as funes para cri-los Ao invs de observar as mensagens de erro ICMP de porta inalcanvel, o scan de protocolo fica de olho nas mensagens ICMP de protocolo inalcanvel. Se o Nmap recebe qualquer resposta de qualquer protocolo do host-alvo, o Nmap marca esse protocolo como aberto. Um erro ICMP de protocolo no-alcanvel (tipo 3, cdigo 2) faz com que o protocolo seja marcado como fechado. Outros erros ICMP do tipo inalcanvel (tipo 3, cdigo 1, 3, 9, 10, ou 13) fazem com que o protocolo seja marcado como filtrado (embora eles provem, ao mesmo tempo, que o ICMP est aberto). Se nenhuma resposta for recebida aps as retransmisses, o protocolo marcado como aberto|filtrado. -b <host para relay de ftp> (Scan de FTP bounce) Uma caracterstica interessante do protocolo FTP (RFC 959) o suporte conexes denominadas proxy ftp. Isso permite que um usurio conecte-se a um servidor FTP, e ento solicite que arquivos sejam enviados a um terceiro servidor. Tal caracterstica sujeita a abusos em diversos nveis, por isso a maioria dos servidores parou de suport-la. Um dos abusos permitidos fazer com que o servidor FTP escaneie as portas de outros hosts. Simplesmente solicite que o servidor FTP envie um arquivo para cada porta interessante do host-alvo. A mensagem de erro ir descrever se a porta est aberta ou no. Esta uma boa forma de passar por cima de firewalls porque os servidores FTP de empresas normalmente so posicionados onde tem mais acesso a outros hosts internos que os velhos servidores da Internet teriam. O Nmap suporta o scan de ftp bounce com a opo -b. Ela recebe um argumento no formato <nomedousurio>:<senha>@<servidor>:<porta>. <Servidor> o nome ou endereo IP de um servidor FTP vulnervel. Assim como em uma URL normal, voc pode omitir <nomedousurio>:<senha>, neste caso as credenciais de login annimo (usurio: anonymous senha:-wwwuser@) sero usados. O nmero da porta (e os dois-pontos) podem ser omitidos, e ento a porta FTP padro (21) no <servidor> ser utilizada. Esta vulnerabilidade espalhou-se em 1997 quando o Nmap foi lanado, mas foi corrigida

amplamente. Servidores vulnerveis ainda esto por a, ento pode valer a pena tentar se tudo o mais falhar. Se passar por cima de um firewall o seu objetivo, escaneie a rede-alvo procurando por uma porta 21 aberta (ou mesmo por qualquer servio FTP se voc escanear todas as portas com a deteco de verso), ento tente um scan bounce usando-as. O Nmap ir dizer se o host vulnervel ou no. Se voc estiver apenas tentando encobrir suas pegadas, voc no precisa (e, na verdade, no deveria) limitar-se a hosts na rede-alvo. Antes de sair escaneando endereos aleatrios na Internet, procurando por servidores FTP, considere que os administradores de sistemas podem no apreciar o seu abuso nos servidores deles. Especificao de Portas e Ordem de Scan Somado a todos os mtodos de scan discutidos anteriormente, o Nmap oferece opes para especificar quais portas so escaneadas e se a ordem de escaneamento aleatria ou sequencial. Por padro, o Nmap escaneia todas as portas at, e incluindo, 1024, bem como portas com numerao alta listadas no arquivo the nmap-services para o(s) protocolo(s) escaneados. -p <faixa de portas> (Escaneia apenas as portas especificadas) Esta opo especifica quais portas que voc deseja escanear e prevalece sobre o padro. Nmeros de portas individuais so suportadas, bem como as faixas separadas por um hfen (p.ex.: 1-1023). Os valores iniciais e/ou finais da faixa podem ser omitidos, o que faz com que o Nmap use 1 e 65535, respectivamente. Portanto, voc pode especificar -p- para escanear as portas de 1 at 65535. Escanear a porta zero permitido se voc especificar explicitamente. Para o escaneamento do protocolo IP (-sO), esta opo especifica os nmeros dos protocolos que voc deseja escanear (0-255). Quando escanear ambas as portas TCP e UDP, voc pode especificar um protocolo em particular, precedendo os nmeros de portas com T: ou U:. O qualificador dura at que voc especifique um novo qualificador. Por exemplo, o argumento -p U:53,111,137,T:2125,80,139,8080 escanearia as portas UDP 53, 111 e 137, bem como as portas TCP listadas. Note que para escanear ambas as portas UDP e TCP, voc tem que especificar -sU e pelo menos um tipo de scan TCP (tal como -sS, -sF ou -sT). Se nenhum qualificador de protocolo for informado, os nmeros de portas sero acrescentados todas as listas de protocolos. -F (Scan Rpido (portas limitadas)) Especifica que voc deseja apenas escanear as portas listadas no arquivo nmap-services que vem com o nmap (ou o arquivo de protocolos para o -sO). Isto muito mais rpido do que escanear todas as 65535 portas de um host. Pelo fato desta lista conter tantas portas TCP (mais de 1200), a diferena de velocidade de um scan TCP padro (cerca de 1650 portas) no dramtica. A diferena pode ser enorme se voc especificar seu prprio minsculo arquivo nmap-services usando a opo --datadir. -r (No usa as portas de forma aleatria) Por padro, o Nmap usa a ordem das portas a serem escaneadas de forma aleatria (exceto aquelas portas normalmente certamente acessveis que so movidas prximas ao incio por motivos de eficincia). Essa tcnica de busca aleatria normalmente desejvel, mas voc pode especificar -r para um escaneamento de portas sequencial. Deteco de Servio e Verso Aponte o Nmap para uma mquina remota e ele poder lhe dizer que as portas 25/tcp, 80/tcp e 53/udp esto abertas. Utilizar o banco de dados nmap-services, com cerca de 2.200 servios bastante conhecidos, do Nmap iria relatar que aquelas portas provavelmente correspondem a

um servidor de correio eletrnico (SMTP), a um servidor de pginas web (HTTP) e a um servidor de nomes (DNS) respectivamente. Essa pesquisa normalmente precisa -- a grande maioria de daemons escutando na porta TCP 25 , de fato, de servidores de correio eletrnico. Entretanto, voc no deveria apostar a sua segurana nesta informao! As pessoas podem e executam servios em portas estranhas. Mesmo que o Nmap esteja certo, e o servidor hipottico acima esteja executando os servios SMTP, HTTP e DNS, isso no informao o bastante. Quando fizer uma avaliao de vulnerabilidades (ou mesmo um simples inventrio da rede) de sua empresa ou clientes, voc realmente deseja saber qual o programa-servidor de correio eletrnico ou de nomes e as verses que esto rodando. Ter um nmero de verso exato ajuda substancialmente na determinao de quais exploraes (exploits) o servidor est vulnervel. A deteco de verso ajuda a obter esta informao. Depois que as portas TCP e/ou UDP forem descobertas usando qualquer um dos outros mtodos de scan, a deteco de verso interroga essas portas para determinar mais informaes sobre o que realmente est sendo executado nessas portas. O banco de dados nmap-service-probes do Nmap contm sondagens para pesquisar diversos servios e expresses de acerto (match expressions) para reconhecer e destrinchar as respostas. O Nmap tenta determinar os protocolos de servios (p.ex.: ftp, ssh, telnet, http), o nome da aplicao (p.ex.: ISC Bind, Apache httpd, Solaris telnetd), o nmero da verso, o nome do host, tipo de dispositivo (p.ex.: impressora, roteador), a famlia do SO (p.ex.: Windows, Linux) e s vezes detalhes diversos do tipo, se um servidor X est aberto para conexes, a verso do protocolo SSH ou o nome do usurio do KaZaA. claro que a maioria dos servios no fornece todas essas informaes. Se o Nmap foi compilado com o suporte ao OpenSSL, ele ir se conectar aos servidores SSL para deduzir qual o servio que est escutando por trs da camada criptografada. Quando os servios RPC so descobertos, o "amolador" de RPC (RPC grinder) do Nmap (-sR) automaticamente utilizado para determinar o nome do programa RPC e o nmero da verso. Algumas portas UDP so deixadas no estado aberta|filtrada depois que scan de porta UDP no consegue determinar se a porta est aberta ou filtrada. A deteco de verso ir tentar provocar uma resposta dessas portas (do mesmo jeito que faz com as portas abertas), e alterar o estado para aberta se conseguir. Portas TCP do tipo aberta|filtrada so tratadas da mesma forma. Note que a opo -A do Nmap habilita a deteco de verso, entre outras coisas. Um trabalho documentando o funcionamento, uso e customizao da deteco de verso est disponvel em http://insecure.org/nmap/vscan/. Quando o Nmap recebe uma resposta de um servio mas no consegue encontr-la em seu banco de dados, ele mostra uma identificao (fingerprint) especial e uma URL para que voc envie informaes se souber com certeza o que est rodando nessa porta. Por favor, considere dispor de alguns minutos para mandar essa informao de forma que sua descoberta possa beneficiar a todos. Graas a esses envios, o Nmap tem cerca de 3.000 padres de acerto para mais de 350 protocolos, tais como o smtp, ftp, http, etc. A deteco de verso habilitada e controlada com as seguintes opes: -sV (deteco de verso) Habilita a deteco de verso, conforme discutido acima. Alternativamente, voc pode usar a opo -A para habilitar tanto a deteco de SO como a deteco de verso. --allports (No exclui nenhuma porta da deteco de verso) Por padro, a deteco de verso do Nmap pula a porta TCP 9100 por causa de algumas impressoras que imprimem qualquer coisa que seja enviada para essa porta, levando a dezenas de pginas com requisies HTTP, requisies de sesses SSL binrias, etc. Esse comportamento pode ser alterado modificando-se ou removendo a diretiva Exclude no nmap-

service-probes, ou voc pode especificar --allports para escanear todas as portas independente de qualquer diretiva Exclude. --version-intensity <intensidade> (Estabelece a intensidade do scan de verso) Quando est executando um scan de verso (-sV), o nmap envia uma srie de sondagens, cada qual com um valor atribudo de raridade, entre 1 e 9. As sondagens com nmeros baixos so efetivas contra uma ampla variedade de servios comuns, enquanto as com nmeros altos so raramente teis. O nvel de intensidade especifica quais sondagens devem ser utilizadas. Quando mais alto o nmero, maiores as chances de o servio ser corretamente identificado. Entretanto, scans de alta intensidade levam mais tempo. A intensidade deve estar entre 0 e 9. O padro 7. Quando uma sondagem registrada na porta-alvo atravs da diretiva nmap-serviceprobes ports, essa sondagem tentada independentemente do nvel de intensidade. Isso assegura que as sondagens DNS sempre sero tentadas contra qualquer porta 53 aberta, e a sondagem SSL ser realizada contra a 443, etc. --version-light (Habilita o modo leve (light)) Esse um apelido conveniente para --version-intensity 2. Esse modo leve torna o escaneamento de verso muito mais rpido, mas ligeiramente menos provvel que identifique os servios. --version-all (Tenta simplesmente todas as sondagens) Um apelido para --version-intensity 9, assegurando que todas as sondagens sejam tentadas contra cada porta. --version-trace (Monitora as atividades do scan de verso) Isto faz com que o Nmap mostre informaes de depurao extensivas sobre o que o escaneamento de verso est fazendo. um sub-conjunto do que voc obteria com --packettrace. -sR (Scan RPC) Este mtodo trabalha em conjunto com os vrios mtodos de escaneamento de portas do Nmap. Ele pega todas as portas TCP/UDP descobertas no estado aberta e inunda-as com comandos NULL do programa SunRPC, em uma tentativa de determinar se elas so portas RPC e, se forem, quais programas e nmeros de verso elas mostram. Dessa forma voc pode obter efetivamente a mesma informao que o rpcinfo -p mesmo se o portmapper do alvo estiver atrs de um firewall (ou protegido por TCP wrappers). Chamarizes no funcionam ainda com o scan RPC. Isso habilitado automaticamente como parte do scan de verso (-sV) se voc o solicitar. Como a deteco de verso inclui isso e muito mais abrangente, o -sR raramente necessrio. Deteco de SO Uma das caractersticas mais conhecidas do Nmap a deteco remota de SO utilizando a identificao da pilha (stack fingerprinting) do TCP/IP. O Nmap envia uma srie de pacotes TCP e UDP ao host remoto e examina praticamente todos os bits das respostas. Aps executar dezenas de testes como a amostragem TCP ISN, suporte e ordenamento das opes do TCP, amostragem IPID e a checagem do tamanho inicial da janela, o Nmap compara os resultados com o banco de dados nmap-os-fingerprints com mais de 1500 identificaes de SO conhecidas e mostra os detalhes do SO se houver uma correspondncia. Cada identificao inclui uma descrio textual livre do SO e uma classificao que fornece o nome do fabricante (p.ex.: Sun), SO base (p.ex.: Solaris), gerao do SO (p.ex.: 10) e tipo de dispositivo (genrico, roteador,

switch, console de jogo, etc.). Se o Nmap no conseguir identificar o SO da mquina, e as condies forem favorveis (p.ex.: pelo menos uma porta aberta e uma porta fechada foram encontradas), o Nmap ir fornecer uma URL onde voc poder enviar a identificao se souber (com certeza) o SO em execuo na mquina. Fazendo isso, voc contribui para a gama de sistemas operacionais conhecidos pelo Nmap e, com isso, ele ser mais preciso para todos. A deteco de SO habilita diversos outros testes que usam as informaes coletadas durante o processo. Um deles a medio de uptime, que utiliza a opo timestamp do TCP (RFC 1323) para supor quando uma mquina foi reiniciada pela ltima vez. Isso apenas mostrado para as mquinas que fornecem essa informao. Outro a Classificao de Previsibilidade da Seqencia do TCP. Ele mede aproximadamente o grau de dificuldade de se estabelecer uma conexo TCP forjada contra um host remoto. til para se explorar relaes de confiana baseadas no IP de origem (rlogin, filtros de firewall, etc.) ou para ocultar a origem de um ataque. Esse tipo de enganao (spoofing) raramente executada hoje em dia, mas muitas mquinas ainda esto vulnerveis a ele. O nmero de dificuldade real baseado em amostragens estatsticas e pode variar. Normalmente melhor usar a classificao em ingls, do tipo worthy challenge (um desafio que vale a pena) ou trivial joke (uma piada, muito fcil). Isso s mostrado na sada normal do modo verbose (-v). Quando o modo verbose habilitado juntamente com o -O, a Gerao de Seqencia IPID tambm mostrada. A maioria das mquinas classificada como incremental , o que significa que elas incrementam o campo ID no cabealho IP para cada pacote que envia. Isso torna-as vulnervel a diversos ataques avanados de levantamento e forjamento de informaes. Um trabalho documentando o funcionamento, utilizao e customizao da deteco de SO est disponvel em mais de uma dezena de lnguas em http://insecure.org/nmap/osdetect/. A deteco de SO habilitada e controlada com as seguintes opes: -O (Habilita a deteco de SO) Habilita a deteo de SO, como discutido acima. Alternativamente, voc pode usar -A para habilitar tanto a deteco de SO quanto a deteco de verso. --osscan-limit (Limitar a deteco de SO a alvos promissores) A deteco de SO bem mais eficiente se ao menos uma porta TCP aberta e uma fechada for encontrada. Escolha esta opo e o Nmap no ir nem tentar a deteco de SO contra hosts que no correspondam a este critrio. Isso pode economizar um tempo considervel, particularmente em scans -P0 contra muitos hosts. Isso s importa quando a deteco de SO solicitada atravs de -O ou -A. --osscan-guess; --fuzzy (Resultados de tentativas de deteco de SO) Quano o Nmap no capaz de detectar uma correspondncia exata de SO, s vezes ele oferece possibilidades aproximada. A correspondncia tem que ser muito prxima para o Nmap fazer isso por padro. Qualquer uma dessas opes (equivalentes) tornam as tentativas do Nmap mais agressivas. O Nmap ainda assim ir dizer quando uma correspondncia imperfeita mostrada e o nvel de confiana (porcentagem) de cada suposio. Temporizao (Timing) e Desempenho Uma das minhas prioridades mais altas no desenvolvimento do Nmap tem sido o desempenho. Um scan padro (nmap <hostname>) de um host em minha rede local leva apenas um quinto de segundo. Isso mal d tempo de piscar o olho, mas esse tempo aumenta conforme voc est

escaneando dezenas ou centenas de milhares de hosts. Alm disso, certos tipos de scan, como o escaneamento UDP ou a deteco de verso, aumentam o tempo de escaneamento substancialmente. Da mesma forma algumas configuraes de firewall fazem o mesmo, particularmente quando limitam a taxa de resposta. Embora o Nmap se utilize de paralelismo e muitos outros algoritmos avanados para acelerar esses scans, o usurio tem o controle final sobre como o Nmap executa. Usurios avanados elaboram comandos do Nmap cuidadosamente para obter apenas as informaes que importam, sempre se preocupando com as restries de tempo. Tcnicas para melhorar os tempos de scan incluem omitir testes no-crticos e atualizar at a verso mais recente do Nmap (melhorias de desempenho so feitas freqentemente). Otimizar os parmetros de tempo tambm podem fazer uma grande diferena. Essas opes esto listadas abaixo. Algumas opes aceitam um parmetro de tempo. especificado em milissegundos por padro, embora voc possa acrescentar s, m ou h ao valor para especificar segundos, minutos ou horas. Dessa forma, os argumentos --host-timeout arguments 900000, 900s e 15m fazem a mesma coisa. --min-hostgroup <nmerodehosts>; --max-hostgroup <nmerodehosts> (Ajuste dos tamanhos dos grupos de scan paralelos) O Nmap tem a habilidade de fazer um scan de portas ou de verses em mltiplos hosts em paralelo. O Nmap faz isso dividindo a faixa de endereos IP-alvo em grupos, e ento escaneando um grupo de cada vez. No geral, grupos maiores so mais eficientes. A contrapartida que os resultados dos hosts no pode ser fornecido at que o grupo inteiro tenha terminado. Portanto, se o Nmap comeou com um tamanho de grupo igual a 50, o usurio no receberia nenhum relatrio (exceto pelas atualizaes mostradas no modo verbose) at que os primeiros 50 hosts tivessem completado. Por padro, o Nmap assume um compromisso para resolver esse conflito. Ele comea com um tamanho de grupo pequeno, igual a cinco, para que os primeiros resultados venham rpido, e ento aumenta o tamanho at que chegue em 1024. O nmero padro exato depende das opes fornecidas. Por questes de eficincia, o Nmap usa tamanhos de grupo maiores para o UDP ou para scans TCP com poucas portas. Quando o tamanho de grupo mximo especificado com --max-hostgroup, o Nmap nunca ir exceder esse tamanho. Especifique um tamanho mnimo com --min-hostgroup e o Nmap ir tentar manter o tamanho dos grupos acima desse nvel. O Nmap pode ter que usar tamanhos menores do que voc especificou, se no houverem hosts-alvo suficientes restantes em uma dada interface, para completar o mnimo especificado. Ambos podem ser configurados para manter o tamanho do grupo dentro de uma faixa especfica, embora isso raramente seja desejado. O uso primrio destas opes especificar um tamanho de grupo mnimo grande de forma que o scan completo rode mais rapidamente. Uma escolha comum 256 para escanear uma rede em blocos de tamanho Classe C. Para um scan com muitas portas, exceder esse nmero no ir ajudar muito. Para scans com poucos nmeros de portas, um tamanho de grupo de hosts de 2048 ou mais pode ser til. --min-parallelism <numprobes>; --max-parallelism <numprobes> (Ajuste da paralelizao das sondagens) Estas opes controlam o nmero total de sondagens que podem estar pendentes para um grupo de hosts. Elas so usadas para o escaneamento de portas e para a descoberta de hosts. Por padro, o Nmap calcula um paralelismo ideal e constantemente atualizado baseado no desempenho da rede. Se os pacotes estiverem sendo descartados, o Nmap reduz o ritmo e

libera menos sondagens pendentes. O nmero de sondagens ideal aumenta vagarosamente conforme a rede se mostre mais confivel. Estas opes estabelecem limites mnimo e mximo nessa varivel. Por padro, o paralelismo ideal pode cair at 1 se a rede se mostrar noconfivel e subir at diversas centenas em condies perfeitas. O uso mais comum estabelecer --min-parallelism em um nmero maior que 1 para melhorar a velocidade dos scans de hosts ou redes com desempenho ruim. Esta uma opo arriscada para se ficar brincando pois configurar um valor alto demais pode afetar a preciso. Configurar isso tambm reduz a habilidade do Nmap de controlar o paralelismo dinamicamente baseado nas condies da rede. Um valor igual a dez pode ser razovel, embora eu s ajuste esse valor como ltima alternativa. A opo --max-parallelism s vezes configurada para evitar que o Nmap envie aos hosts mais do que uma sondagem por vez. Isso pode ser til em conjunto com --scan-delay (discutido mais tarde), embora esta ltima normalmente sirva bem ao propsito por si s. --min-rtt_timeout <tempo>, --max_rtt-timeout <tempo>, --initial-rtt-timeout <tempo> (Ajuste de tempo de expirao (timeouts) das sondagens) O Nmap mantm um valor de tempo de expirao (timeout) de execuo para determinar quanto tempo ele deve esperar por uma resposta de uma sondagem antes de desistir ou retransmitir essa sondagem. Isso calculado com base nos tempos de resposta de sondagens anteriores. Se a latncia da rede se mostrar significativa e varivel, esse tempo de expirao pode subir para diversos segundos. Ele tambm comea com um nvel conservador (alto) e pode ficar desse jeito por um tempo, enquanto o Nmap escaneia hosts no-responsivos. Especificar valores --max-rtt-timeout e --initial-rtt-timeout mais baixos que o padro pode reduzir o tempo de scan significativamente. Isso particularmente verdadeiro para scans sem ping (-P0), e para aqueles contra redes bastante filtradas. Mas no se torne muito agressivo. O scan pode acabar levando mais tempo se voc especificar um valor to baixo que muitas sondagens iro expirar o tempo e serem retransmitidas enquanto a resposta ainda est em trnsito. Se todos os hosts esto em uma rede local, 100 milissegundos um valor de --max-rtttimeout razoavelmente agressivo. Se houver roteamento envolvido, faa um ping de um host da rede primeiro com o utilitrio ICMP ping, ou com um formatador de pacotes customizados como o hping2, que pode passar por um firewall mais facilmente. Descubra o tempo mximo de round trip em dez pacotes, mais ou menos. Coloque o dobro desse valor em --initial-rtt-timeout e o triplo ou qudruplo para o --max-rtt-timeout. Normalmente eu no configuro o rtt mximo abaixo de 100ms, no importa quais os tempos de ping. Eu tambm no excedo o valor 1000ms. --min-rtt-timeout uma opo raramente utilizada que poderia ser til quando uma rede to no-confivel que mesmo o padro do Nmap muito agressivo. Considerando que o Nmap apenas reduz o tempo de expirao para um valor mnimo quando a rede parece ser confivel, esta necessidade no comum e deveria ser reportada lista de discusso nmap-dev como um bug. --max-retries <nmerodetentativas> (Especifica o nmero mximo de retransmisses de sondagens de scan de portas) Quando o Nmap no recebe nenhuma resposta a uma sondagem de escaneamento de portas, isso pode significar que a porta est filtrada. Ou talvez a sondagem ou a resposta simplesmente se perdeu na rede. Tambm possvel que o host-alvo tenha habilitado uma limitao de trfego que tenha bloqueado temporariamente a resposta. Ento o Nmap tenta novamente retransmitindo a sondagem inicial. Se o Nmap perceber que a confiabilidade da rede est baixa, ele poder tentar muitas vezes ainda, antes de desistir de uma porta. Embora isso

beneficie a exatido, isso tambm aumenta o tempo de escaneamento. Quando o desempenho crtico, os escaneamentos podem ser acelerados atravs da limitao do nmero de retransmisses permitidas. Voc pode at especificar --max-retries 0 para evitar qualquer retransmisso, embora isto seja raramente recomendado. O normal (sem nenhum padro -T) permitir dez retransmisses. Se a rede aparentar ser confivel e os hosts-alvo no estiverem limitando o trfego, o Nmap normalmente far apenas uma retransmisso. Portanto, a maioria dos escaneamentos de alvos no sero sequer afetados com a reduo do --max-retries para um valor baixo, como por exemplo trs. Tais valores podem acelerar significativamente o escaneamento de hosts lentos (com limitao de trfego). Voc normalmente perde alguma informao quando o Nmap desiste das portas rapidamente, embora isso seja prefervel a permitir que o --host-timeout expire e voc perca todas as informaes sobre o alvo. --host-timeout <tempo> (Desiste de hosts-alvo lentos) Alguns hosts simplesmente levam tempo demais para serem escaneados. Isso pode ser causado por um hardware ou software de rede com fraco desempenho ou pouco confivel, limitao na taxa dos pacotes ou por um firewall restritivo. Os poucos hosts mais lentos de todos os hosts escaneados podem acabar sendo responsveis pela maior parte do tempo total gasto com o scan. s vezes melhor cortar fora o prejuzo e pular esses hosts logo no incio. Especifique a opo --host-timeout com o valor mximo de tempo que voc tolera esperar. Eu normalmente especifico 30m para ter certeza de que o Nmap no gaste mais do que meia hora em um nico host. Note que o Nmap pode estar escaneando outros hosts ao mesmo tempo em que essa meia hora desse nico host est correndo, ento no uma perda de tempo total. Um host que expira o tempo pulado. Nenhum resultado de tabela de portas, deteco de SO ou deteco de verso mostrado para esse host. --scan-delay <tempo>; --max-scan-delay <tempo> (Ajusta o atraso entre sondagens) Esta opo faz com que o Nmap aguarde um tempo determinado entre cada sondagem enviada a um dado host. Isto particularmente til no caso de limitao de taxas de transferncia. Mquinas Solaris (entre muitas outras) iro normalmente responder pacotes de sondagens de scans UDP com apenas uma mensagem ICMP por segundo. Qualquer nmero maior que isso, enviado pelo Nmap, ser um desperdcio. Um --scan-delay de 1s ir manter uma taxa de transferncia baixa. O Nmap tenta detectar a limitao de taxa e ajusta o atraso no scan de acordo, mas no di especificar explicitamente se voc j sabe qual a taxa que funciona melhor. Quando o Nmap ajusta o atraso no scan aumentando para tentar igualar com a limitao na taxa de transferncia, o scan fica consideravelmente mais lento. A opo --max-scan-delay especifica o maior atraso que o Nmap ir permitir. Estabelecer um valor muito baixo pode levar uma retransmisso de pacotes intil e possveis portas perdidas, quando o alvo utiliza limitao rgida de taxa de transferncia. Outro uso do --scan-delay para evitar os sistemas de preveno e deteco de intruso (IDS/IPS) baseados em limites. --defeat-rst-ratelimit Muitos hosts usam h bastante tempo a limitao de taxa de transferncia para reduzir o nmero de mensagens de erro ICMP (tais como os erros de porta-inalcanavel) enviados. Alguns sistemas agora aplicam limitaes de taxa similares aos pacotes RST (reset) que eles geram. Isso pode tornar o Nmap consideravelmente mais lento pois o obriga a ajustar seu tempo de forma a refletir essas limitaes de taxa. Voc pode dizer ao Nmap para ignorar essas limitaes de taxa (para scans de porta como o Scan SYN que no trata portas que no

respondem como abertas) especificando --defeat-rst-ratelimit. Utilizar esta opo pode reduzir a preciso, pois algumas portas iro aparecer como norespondendo porque o Nmap no esperou tempo suficiente para uma resposta RST com taxa limitada. No caso de um scan SYN, o "no-respondendo" resulta na porta sendo rotulada como filtrada ao invs de no estado fechada que vemos quando os pacotes RST so recebidos. Esta opo til quando voc se importa apenas com as portas abertas e distinguir entre portasfechadas e filtradas no vale o tempo extra. -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> (Estabelece um padro de temporizao) Embora os controles de temporizao de ajuste fino discutidos nas sees anteriores sejam poderosos e efetivos, algumas pessoas os consideram confusos. Ainda mais, escolher os valores apropriados pode, s vezes, tomar mais tempo do que o prprio scan que voc est tentando otimizar. Por isso, o Nmap oferece uma aproximao mais simples, com seis padres de temporizao. Voc pode especific-los com a opo -T e os nmeros (0 - 5) ou os nomes. Os nomes de padres so paranico (paranoid, 0), furtivo (sneaky, 1), educado (polite, 2), normal (3), agressivo (agressive, 4) e insano (insane, 5). Os dois primeiros so para evitar um IDS. O modo educado (ou polido), diminui o ritmo de escaneamento para usar menos banda e recursos da mquina alvo. O modo normal o padro e, portanto, -T3 no faz nada. O modo agressivo acelera os scans assumindo que voc est em uma rede razoavelmente rpida e confivel. Finalmente, o modo insano assume que voc est em uma rede extraordinariamente rpida ou est disposto a sacrificar alguma preciso pela velocidade. Esses padres permitem que o usurio especifique o quo agressivo desejam ser, ao mesmo tempo que deixam o Nmap escolher os valores de temporizao exatos. Os padres tambm fazem ajustes pequenos na velocidade onde ainda no existem opes para controle de ajuste fino. Por exemplo, -T4 proibe que o atraso dinmico de escaneamento exceda 10ms para portas TCP e -T5 corta esse valor para 5 milissegundos. Padres podem ser utilizados em conjunto com controles de ajuste fino e esses controles que voc especificar iro ter precedncia sobre o padro de temporizao do parmetro. Eu recomendo usar -T4 quando escanear redes razoavelmente modernas e confiveis. Mantenha essa opo mesmo que voc adicione controles de ajuste fino, de forma que voc possa se beneficiar com as pequenas otimizaes extras que ela habilita. Se voc tiver uma conexo ethernet ou de banda-larga decente, eu recomendaria sempre utilizar -T4. Algumas pessoas adoram o -T5 embora seja agressivo demais para o meu gosto. As pessoas s vezes especificam -T2 porque acham que diminui a probabilidade de travar os hosts ou porque elas se consideram educadas no geral. Normalmente elas no percebem o quo lento o -T Polite realmente . Esses scans podem levar dez vezes mais tempo que um scan padro. Travamento de mquinas e problemas com a banda so raros com as opes de temporizao padro (-T3) e, portanto, eu normalmente as recomendo para escaneadores precavidos. Omitir a deteco de verso bem mais eficaz do que ficar brincando com os valores de temporizao para reduzir esses problemas. Embora o -T0 e o -T1 possam ser usados para evitar alertas no IDS, eles iro leva muito mais tempo para escanear milhares de mquinas ou portas. Para um scan to amplo, prefira estabelecer os valores exatos de temporizao que voc precisa ao invs de depender dos valores "engessados" de -T0 e -T1. O principal efeito de T0 serializar o scan de forma que apenas uma porta escaneada por vez, e ento, aguardar cinco minutos entre o envio de cada sondagem. T1 e T2 so similares mas aguardam apenas 15 segundos e 0,4 segundos, respectivamente, entre as sondagens. T3 o comportamento padro do Nmap, que inclui o paralelismo. T4 faz o mesmo que --max-rtttimeout 1250 --initial-rtt-timeout 500 --max_retries 6 e estabelece o atraso mximo de scan TCP

em 10 milissegundos. T5 faz o mesmo que --max-rtt-timeout 300 --min-rtt-timeout 50 --initial-rtttimeout 250 --max-retries 2 --host-timeout 15m e estabelece o atraso mximo de scan TCP em 5ms. Evitando e enganando o Firewall/IDS Muitos pioneiros da Internet vislumbraram uma rede mundial aberta com um espao de endereamento IP universal que permitisse conexes virtuais entre quaisquer dois ns. Isso permite que os hosts atuem como verdadeiros semelhantes, servindo e obtendo informaes uns dos outros. As pessoas poderiam acessar seus computadores domsticos do trabalho, mudando os ajustes do controle de climatizao ou abrindo as portas para convidados. Essa viso de conectividade universal foi sufocada pela falta de espao de endereamento e preocupaes com a segurana. No incio dos anos 1990, as empresas comearam a instalar firewalls para o propsito claro de reduzir a conectividade. Rede enormes foram isoladas da Internet-sem-fronteiras por proxies de aplicativos, traduo de endereamento de rede (network address translation) e filtros de pacotes. O fluxo irrestrito de informaes deu a vez regulamentao acirrada de canais de comunicao autorizados e ao contedo que neles trafegam. As obstrues de rede, como o firewall, podem tornar o mapeamente de uma rede extremamente difcil. E isso no vai se tornar mais fcil, pois sufocar as sondagens casuais , freqentemente, o objetivo principal de se instalar esses dispositivos. Apesar disso, o Nmap oferece muitas ferramentas para ajudar a entender essas redes complexas, e para verificar que os filtros esto funcionando como esperado. Ele at suporta mecanismos para passar por cima de defesas mal implementadas. Um dos melhores mtodos para se entender a postura de segurana de uma rede tentar derrub-la. Pense com a mente de uma pessoa que quer ataclo, e aplique tcnicas desta seo contra a sua rede. Lance um scan FTP bounce, um scan idle, um ataque de fragmentao ou tente "tunelar" (criar um tnel) atravs de um de seus prprios proxies. Alm de restringir a atividade de rede, as empresas esto monitorando o trfego cada vez mais, com sistemas de deteco de intruso (IDS). Todos os principais IDS vm com regras designadas para detectar escaneamentos feitos com o Nmap porque os scans so, s vezes, precursores de ataques. Muitos desses produtos foram recentemente metamorfoseados em sistemas de preveno de intruso (IPS) que bloqueiam o trfego considerado malicioso de forma ativa. Infelizmente, para administradores de rede e vendedores de IDS, detectar confiavelmente as ms intenes atravs da anlise de dados de pacotes um problema difcil. Atacantes com pacincia, habilidade e a ajuda de certas opes do Nmap podem normalmente passar por um IDS sem serem detectados. Enquanto isso, os administradores devem lidar com um alto nmero de resultados do tipo falso-positivo, onde atividades inocentes so diagnosticadas erroneamente e recebem alertas ou so bloqueadas. De vez em quando, as pessoas sugerem que o Nmap no deveria oferecer opes que permitam evitar as regras de firewalls ou passar desapercebidos por IDSs. Elas argumentam que essas caractersticas so to sujeitas m-utilizao por atacantes quanto so utilizadas por administradores para aumentar a segurana. O problema com esta lgica que esses mtodos ainda assim seriam utilizados pelos atacantes, que encontrariam outras ferramentas ou ento acrescentariam essa funcionalidade no Nmap. Enquanto isso, os administradores achariam muito mais difcil executar suas tarefas. Instalar apenas servidores FTP modernos e corrigidos uma defesa muito melhor do que tentar evitar a distribuio de ferramentas que implementem o ataque FTP bounce. No existe uma carta mgica (ou opo do Nmap) para detectar e subverter firewalls e sistemas IDS. necessrio habilidade e experincia. Um tutorial est alm do escopo deste guia de referncia, que apenas lista as opes relevantes e descreve suas funes.

-f (fragmenta os pacotes); --mtu (usando a MTU especificada) A opo -f faz com que o scan solicitado (incluindo scans usando ping) utilize pequenos pacotes IP fragmentados. A idia dividir o cabealho TCP em diversos pacotes para tornar mais difcil para os filtros de pacotes, os sistemas de deteco de intruso, e outros aborrecimentos, detectar o que voc est fazendo. Tenha cuidado com isto! Alguns programas tem problemas para lidar com estes pequenos pacotes. O sniffer da velha-guarda chamado Sniffit sofria uma falha de segmentao assim que recebia o primeiro fragmento. Especifique esta opo uma vez e o Nmap dividir os pacotes em 8 bytes ou menos aps o cabealho IP. Portanto, um cabealho TCP de 20 bytes seria dividido em 3 pacotes. Dois com oito bytes do cabealho TCP e um com os quatro restantes. claro que cada fragmento tambm tem um cabealho IP. Especifique -f novamente para usar 16 bytes por fragmento (reduzindo o nmero de fragmentos). Ou ento, voc pode especificar o seu prprio tamanho de quebra com a opo --mtu. No especifique tambm o -f se voc usar o --mtu. A quebra deve ser um mltiplo de 8. Embora os pacotes fragmentados no passem por filtros de pacotes e firewalls que enfilerem todos os fragmentos IP, tal como a opo CONFIG_IP_ALWAYS_DEFRAG do kernel do Linux faz, algumas redes no aguentam o impacto no desempenho que isso causa, deixando a opo desabilitada. Outros no conseguem habilitar isso porque os fragmentos podem seguir por rotas diferentes na rede. Alguns sistemas de origem desfragmentam pacotes de sada no kernel. O Linux e o mdulo de reastreamento de conexo do iptables um exemplo desse tipo. Faa um scan enquanto executa um sniffer como o Ethereal para ter a certeza de que pacotes enviados esto fragmentados. Se o SO do seu host estiver causando problemas, tente a opo --send-eth para passar por cima da camada IP e enviar frames ethernet em estado bruto. -D <chamariz1 [,chamariz2][,ME],...> (Disfara um scan usando chamarizes) Faz com que um scan com chamarizes seja executado, o que parece ao host remoto que, o(s) host(s) que voc especificou como chamarizes tambm estejam escaneando a rede-alvo. Com isso, o IDS poder reportar 5 a 10 scans de portas de endereos IP nicos, mas no saber qual IP estava realmente escaneando e qual era um chamariz inocente. Embora isso possa ser desvendado atravs de rastreamento de caminho de roteador, descarte de respostas (responsedropping) e outros mecanismos ativos, normalmente uma tcnica eficaz para esconder o seu endereo IP. Separe cada host-chamariz com vrgulas, e voc pode opcionalmente usar ME como um dos chamarizes para representar a posio do seu endereo IP real. Se voc colocar ME na 6a. posio ou acima, alguns detectores de scan de portas comuns (como o excelente scanlogd da Solar Designer) pouco provavelmente iro mostrar o seu endereo IP. Se voc no utilizar o ME, o nmap ir coloc-lo em uma posio aleatria. Observe que os hosts que voc utilizar como chamarizes devem estar ativos ou voc poder, acidentamente, inundar com SYN os seus alvos. Tambm ser bastante fcil determinar qual o host que est escaneando se houver apenas um host realmente ativo na rede. Voc pode preferir usar endereos IP ao invs de nomes (de forma que as redes chamarizes no vejam voc em seus logs dos servidores de nomes). Chamarizes so utilizados tanto no scan com ping inicial (usando ICMP, SYN, ACK ou qualquer outro), como tambm durante a fase real de escaneamento de portas. Chamarizes tambm so usados durante a deteco de SO remoto (-O). Chamarizes no funcionam com a deteco de verso ou com o scan TCP connect. Vale a pena observar que usar chamarizes demais pode deixar seu scan lento e potencialmente at torn-lo menos preciso. Outra coisa, alguns provedores de internet (ISP) iro filtrar os seus pacotes disfarados, mas muitos no restringem pacotes IP disfarados. -S <Endereo_IP> (Disfara o endereo de origem)

Em algumas circunstncias, o Nmap pode no conseguir determinar o seu endereo de origem (o Nmap ir dizer se for esse o caso). Nesta situao, use o -S com o endereo IP da interface que voc deseja utilizar para enviar os pacotes. Outro uso possvel para esta flag para disfarar o scan e fazer com que os alvos achem que alguma outra pessoa est escaneando-as. Imagine uma empresa que est constantemente sofrendo scan de portas de um concorrente! A opo -e normalmente seria requerida para este tipo de uso e -P0 seria recomendvel. -e <interface> (Usa a interface especificada) Diz ao Nmap qual interface deve ser utilizada para enviar e receber pacotes. O Nmap deveria ser capaz de detectar isto automaticamente, mas ele informar se no conseguir. --source-port <nmerodaporta>; -g <nmerodaporta> (Disfara o nmero de porta de origem) Um erro de configurao surpreendentemente comum confiar no trfego com base apenas no nmero da porta de origem. fcil entender como isso acontece. Um administrador configura um firewall novinho em folha, s para ser inundado com queixas de usurios ingratos cujas aplicaes param de funcionar. Em particular, o DNS pode parar de funcionar porque as respostas DNS UDP de servidores externos no conseguem mais entrar na rede. O FTP outro exemplo comum. Em tranferncias FTP ativas, o servidor remoto tenta estabelecer uma conexo de volta com o cliente para poder transferir o arquivo solicitado. Solues seguras para esses problemas existem, freqentemente na forma de proxies no nvel da aplicao ou mdulos de firewall para anlise de protocolo. Infelizmente tambm h solues mais fceis e inseguras. Observando que as respostas DNS chegam pela porta 53 e o FTP ativo pela porta 20, muitos administradores caem na armadilha de apenas permitir trfego vindo dessas portas. Eles normalmente assumem que nenhum atacante ir notar e explorar essas brechas no firewall. Em outros casos, os administradores consideram isso uma medida provisria de curto prazo at que eles possam implementar uma soluo mais segura. Ento, eles normalmente se esquecem de fazer as atualizaes de segurana. Administradores de rede sobrecarregados no so os nicos a carem nessa armadilha. Diversos produtos foram empacotados com essas regras inseguras. Mesmo a Microsoft culpada. Os filtros IPsec que vieram com o Windows 2000 e com o Windows XP contm uma regra implcita que permite todo o trfego TCP ou UDP da porta 88 (Kerberos). Em outro caso bastante conhecido, verses do firewall pessoal Zone Alarm, at a verso 2.1.25, permitiam qualquer pacote UDP entrante com a porta de origem 53 (DNS) ou 67 (DHCP). O Nmap oferece as opes -g e --source-port (elas so equivalentes) para explorar essas fraquezas. Apenas fornea um nmero de porta e o Nmap ir enviar pacotes dessa porta onde for possvel. O Nmap utiliza nmeros de porta diferentes para que certos testes de deteco de SO funcionem direito, e as requisies DNS ignoram a flag --source-port porque o Nmap confia nas bibliotecas de sistema para lidar com isso. A maioria dos scans TCP, incluindo o scan SYN, suportam a opo completamente, assim como o scan UDP. --data-length <nmero> (Acrescenta dados aleatrios nos pacotes enviados) Normalmente o Nmap envia pacotes minimalistas contendo apenas o cabealho. Dessa forma os pacotes TCP tm normalmente 40 bytes e os echo requests ICMP tem s 28. Esta opo faz com que o Nmap acrescente o nmero informado de bytes aleatrios na maioria dos pacotes que envia. Os pacotes de deteco de SO (-O) no so afetados, pois a preciso exige consistncia das sondagens, mas a maioria dos pacotes de ping e scan de portas funcionam

assim. Isso atrasa um pouco as coisas, mas pode tornar um scan ligeiramente menos chamativo. --ttl <valor> (Establece o valor do campo time-to-live) Estabelece que o campo tempo-de-vida (time-to-live) dos pacotes enviados ter o valor informado. --randomize-hosts (Torna aleatria a ordem dos hosts-alvo) Informa ao Nmap que ele deve embaralhar cada grupo de, no mximo, 8096 hosts antes de escane-los. Isso torna os scans menos bvios a vrios sistemas de monitoramento de rede, especialmente quando voc combina isso com as opes de temporizao lentas. Se voc deseja fazer isso em grupos maiores, aumente o PING_GROUP_SZ no nmap.h e recompile. Uma soluo alternativa gerar uma lista de endereos IP-alvos com um scan de lista (-sL -n -oN <nomedoarquivo>), embaralhar a lista com um script Perl e ento fornecer a lista completa para o Nmap com -iL. --spoof-mac <endereo mac, prefixo, ou nome do fabricante> (Disfara o endereo MAC) Solicita ao Nmap que utilize o endereo MAC informado para todos os frames ethernet em estado bruto (raw) que ele enviar. Esta opo implica em --send-eth para assegurar que o Nmap realmente envie pacotes no nvel ethernet. O MAC fornecido pode assumir diversos formatos. Se for apenas a string 0, o Nmap ir escolher um MAC completamente aleatrio para a sesso. Se a string informada for um nmero par de dgitos hexa (com os pares opcionalmente separados por dois pontos), o Nmap ir usa-la como o MAC. Se menos do que 12 dgitos hexa forem informados, o Nmap preenche o restante dos 6 bytes com valores aleatrios. Se o argumento no for um 0 ou uma string hexa, o Nmap ir procurar no nmap-mac-prefixes para encontrar o nome de um fabricante contendo a string informada (no sensvel a maisculas ou minsculas). Se encontrar, o Nmap usa o OUI (prefixo de 3 bytes) do fabricante e preenche os 3 bytes restantes aleatoriamente. Exemplos de argumentos --spoof-mac vlidos so Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2 e Cisco. --badsum (Send packets with bogus TCP/UDP checksums) Solicita ao Nmap que utilize uma soma de verificao (checksum) TCP ou UDP invlida para os pacotes enviados aos hosts. Uma vez que virtualmente todos as pilhas (stack) IP do host iro rejeitar esses pacotes, quaisquer respostas recebidas so provavelmente vindas de um firewall ou IDS que nem se incomodou em verificar a soma de verificao. Para mais detalhes desta tcnica, veja http://www.phrack.org/phrack/60/p60-0x0c.txt Sada (Output) Qualquer ferramenta de segurana s til se a sada que ela gera tambm o for. Testes e algoritmos complexos so de pouco valor se no forem apresentados de uma forma organizada e compreensvel. Dado o nmero de formas que o Nmap utilizado pelas pessoas e por outros softwares, nenhum formato ir agradar a todos. Ento o Nmap oferece diversos formatos, incluindo o modo interativo para humanos lerem diretamente e o XML para fcil interpretao por um software. Alm de oferecer diversos formatos de sada, o Nmap fornece opes para controlar a verbosidade da sada, bem como das mensagens de depurao. Os tipos de sada podem ser enviados para a sada padro (standard output) ou para arquivos, o qual o Nmap pode acrescentar ou ento sobrescrever. Arquivos de sada tambm podem ser utilizados para se retomar scans abortados.

O Nmap torna a sada disponvel em cinco formatos diferentes. O padro chamado de sada interativa (interactive output), e enviada para a sada padro (stdout). H tambm a sada normal (normal output), que similar interativa exceto pelo fato de mostrar menos informaes e alertas sobre a execuo uma vez que se espera que seja feita uma anlise somente aps o scan completar, ao invs de interativamente. A sada XML um dos tipos de sada mais importantes pois permite a converso para HTML, facilmente analisada por programas como a interface grfica do Nmap, ou pode ser importada em banco de dados. Os dois tipos restantes de sada so a simples sada para o grep (grepable output) que inclui a maioria das informaes de um host-alvo em uma nica linha e a s4d4 sCRiPt KiDDi3 (sCRiPt KiDDi3 0utPUt) para usurios que se consideram 1r4d0z (|<-r4d). Embora a sada interativa seja a padro e no tenha associada nenhuma opo de linha de comando, as outras quatro opes de formato utilizam a mesma sintaxe. Elas recebem um argumento, que o nome do arquivo onde os resultados devem ser armazenados. Formatos mltiplos podem ser especificados, mas cada formato s pode ser especificado uma vez. Por exemplo, voc pode querer armazenar a sada normal para seu uso enquanto grava a sada XML do mesmo scan para anlise utilizando programas. Voc pode fazer isso com as opes -oX myscan.xml -oN myscan.nmap. Embora este captulo use nomes simples como myscan.xml por uma questo de brevidade, nomes mais descritivos normalmente so recomendados. Os nomes escolhidos so uma questo de preferncia pessoal, embora eu use nomes longos que incorporam a data do scan e uma palavra ou duas que descrevam o scan, colocados em um diretrio com o nome da empresa que eu estou escaneando. Mesmo que essas opes gravem os resultados em arquivos, o Nmap ainda assim mostra a sada interativa na stdout como de costume. Por exemplo, o comando nmap -oX myscan.xml target grava em XML no myscan.xml e enche a sada padro com os mesmos resultados interativos que teria mostrado se a opo -oX no tivesse sido especificada. Voc pode mudar isso passando um caracter hfen como argumento de um dos tipos de formato. Isso faz com que o Nmap desative a sada interativa e apenas grave os resultados no formato que voc especificou para a sada padro. Dessa forma, o comando nmap -oX - target ir enviar apenas a sada XML para a stdout. Erros srios ainda podem ser mostrados na sada padro de erros, stderr. Ao contrrio de alguns argumentos do Nmap, o espao em branco entre a flag da opo (como a -oX) e o nome do arquivo ou hfen obrigatrio. Se voc omitir as flags e informar argumentos como -oG- ou -oXscan.xml, uma caracterstica de compatibilidade retroativa do Nmap ir causar a criao de arquivos de sada do tipo normal format chamados G- e Xscan.xml respectivamente. O Nmap tambm oferece opes para controlar a verbosidade do scan e para acrescentar informaes nos arquivos de sada, ao invs de sobrepor. Todas essas opes esto descritas abaixo. Formatos de Sada do Nmap -oN <especificaodearquivo> (Sada normal) Solicita que a sada normal (normal output) seja direcionada para o arquivo informado. Conforme discutido acima, um pouco diferente da sada interativa (interactive output). -oX <especificaodearquivo> (Sada em XML) Solicita que a sada em XML (XML output) seja direcionada para o arquivo informado. O

Nmap inclui uma definio do tipo de documento (document type definition, DTD) que permite que os analisadores (parsers) XML validem a sada em XML do Nmap. Embora seja primeiramente voltada para ser usada por programas, tambm pode ajudar os humanos a interpretar a sada em XML do Nmap. A DTD define os elementos vlidos do formato, e geralmente enumera os atributos e valores que eles podem receber. A ltima verso est sempre disponvel em http://insecure.org/nmap/data/nmap.dtd. O XML oferece um formato estvel que facilmente interpretado por software. Interpretadores (parsers) XML gratuitos esto disponvel para as principais linguagens de computador, incluindo C/C++, Perl, Python e Java. As pessoas at j escreveram extenses para a maioria dessas linguagens para manipular a sada e a execuo especificamente do Nmap. Exemplos so o Nmap::Scanner e o Nmap::Parser em Perl CPAN. Em quase todos os casos em que uma aplicao no-trivial faz interface com o Nmap, o XML o formato preferido. A sada XML faz referncia uma folha de estilo que pode ser usada para formatar os resultados em HTML. A forma mais fcil de se utilizar isso simplesmente carregar a sada XML em um navegador web como o Firefox ou o IE. Por padro, isso s ir funcionar na mquina onde voc rodou o Nmap (ou em uma mquina similarmente configurada) devido ao caminho (path) do sistema de arquivos (filesystem) gravado de forma inaltervel do nmap.xsl. Utilize a opo --webxml ou --stylesheet para criar arquivos XML portveis que podem ser interpretados como um HTML em qualquer mquina conectada web. -oS <especificaodearquivo> (S4d4 ScRipT KIdd|3) A sada script kiddie como a sada interativa, com a diferena de ser ps-processada para atender melhor aos "hackers de elite" (l33t HaXXorZ) que antigamente rejeitavam o Nmap devido ao uso consistente de maisculas e minsculas e a grafia correta. Pessoas sem senso de humor devem observar que esta opo serve para se fazer graa dos script kiddies antes de me xingar por estar, supostamente, ajudando-os. -oG <especificaodearquivo> (Sada para o grep) Este formato de sada mencionado por ltimo porque est depreciado. O formato de sada XML muito mais poderoso e bastante adequado para usurio avanados. O XML um padro para o qual existem dezenas de excelentes interpretadores (parsers) disponveis, enquanto que a sada para o grep um quebra-galho feito por mim. O XML extensvel para suportar novas caractersticas do Nmap conforme elas forem lanadas, por outro lado, sempre tenho que omitir essas novas caractersticas da sada para o grep por falta de onde coloc-las. Apesar disso, a sada para o grep bastante popular. um formato simples que lista cada host em uma linha e pode ser pesquisado de forma trivial, e interpretado por qualquer ferramenta padro do Unix, como o grep, awk, cut, sed, diff, e Perl. Em mesmo uso-a para testes rpidos feitos na linha de comando. Descobrir todos os hosts com a porta ssh aberta ou que esto rodando o Solaris requer apenas um simples grep para identific-los, concatenado via pipe a um comando awk ou cut para mostrar os campos desejados. A sada para o grep consiste de comentrios (linhas comeadas com o smbolo #) e linhasalvo. Uma linha-alvo inclui uma combinao de 16 campos rotulados, separados por tab e seguidos por dois-pontos. Os campos so Host, Portas (Ports),Protocolos (Protocols), Estado Ignorado (Ignored State), SO (OS), ndice de Seqncia (Seq Index), IPID e Estado (Status). O campo mais importante , normalmente, Portas (Ports), que fornece detalhes de cada porta interessante. uma lista com a relao de portas, separada por vrgula. Cada porta representa uma porta interessante, e tem o formato de sete sub-campos separados por barra (/). Esses subcampos so: Nmero da Porta (Port number), Estado (State), Protocolo (Protocol), Proprietrio (Owner), Servio (Service), informao sobre o SunRPC (SunRPC info) e informao sobre a Verso (Version info).

Assim como na sada XML, esta pgina man no permite que se documente o formato todo. Uma viso mais detalhada sobre o formato de sada para o grep do Nmap est disponvel em http://www.unspecific.com/nmap-oG-output. -oA <nome-base> (Sada para todos os formato) Para facilitar, voc pode especificar -oA <nome-base> para armazenar os resultados de scan nos formatos normal, XML e para o grep de uma vez. Eles so armazenados nos arquivos <nome-base>.nmap, <nome-base>.xml e <nome-base>.gnmap, respectivamente. Como na maioria dos programas, voc pode colocar como prefixo aos nomes de arquivos o caminho de um diretrio, como ~/nmaplogs/foocorp/ no UNIX ou c:\hacking\sco no Windows. Opes de Verbosidade e depurao (debugging) -v (Aumenta o nvel de verbosidade) Aumenta o nvel de verbosidade, fazendo com que o Nmap mostre mais informaes sobre o progresso do scan. Portas abertas so mostradas conforme so encontradas, e estimativas de tempo para o trmino so fornecidas quando o Nmap acha que um scan ir demorar mais do que alguns minutos. Use duas vezes para uma verbosidade ainda maior. Usar mais do que duas vezes no surte nenhum efeito. A maioria das alteraes afetam apenas a sada interativa, e algumas tambm afetam a sada normal e script kiddie. Os outros tipos de sada foram feitos para serem processados por mquinas, ento o Nmap pode dar informaes bastante detalhadas por padro nesse formatos sem cansarem o usurio humano. Entretanto, existem algumas mudanas nos outros modos onde o tamanho da sada pode ser reduzido substancialmente pela omisso de alguns detalhes. Por exemplo, uma linha de comentrio, na sada para o grep, que fornece uma lista de todas as portas escaneadas s mostrada no modo verboso porque ela pode ser bem longa. -d [nvel] (Aumenta ou estabelece o nvel de depurao) Se mesmo o modo verboso no fornece dados suficientes para voc, o modo de depurao est disponvel para inund-lo com muito mais! Assim como na opo de verbosidade (-v), a depurao habilitada com uma flag na linha de comando (-d) e o nvel de depurao pode ser aumentado especificando-a mltiplas vezes. Alternativamente, voc pode estabelecer o nvel de depurao fornecendo um argumento para o -d. Por exemplo, -d9 estabelece o nvel nove. Esse efetivamente o nvel mais alto e ir produzir milhares de linhas, a menos que voc execute um scan muito simples com poucas portas e alvos. A sada da depurao til quando h a suspeita de um bug no Nmap, ou se voc simplesmente est confuso com o que o Nmap est fazendo e por qu. Como esta opo , na maioria das vezes, destinada a desenvolvedores, a linhas de depurao nem sempre so autoexplicativas. Voc pode obter algo como: Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000. Se voc no entender uma linha, suas nicas opes sero ignor-la, procurar no cdigo-fonte ou pedir ajuda na lista de discusso de desenvolvimento (nmap-dev). Algumas linhas so auto-explicativas, mas as mensagens ficam cada vez mais obscuras conforme o nvel de depurao aumentado. --packet-trace (Rastreia pacotes e dados enviados e recebidos) Faz com que o Nmap mostre um sumrio de todos os pacotes enviados ou recebidos. Isto bastante usado para depurao, mas tambm uma forma valiosa para novos usurio entenderem exatamente o que o Nmap est fazendo por baixo dos panos. Para evitar mostrar milhares de linhas, voc pode querer especificar um nmero limitado de portas a escanear, como -p20-30. Se tudo o que lhe interessa for saber o que se passa no subsistema de deteco de verso, use o --version-trace.

--iflist (Lista as interfaces e rotas) Mostra a lista de interfaces e rotas do sistema conforme detectados pelo Nmap. Isto til para depurar problemas de roteamento ou erro de caracterizao de dispositivo (como, por exemplo, no caso do Nmap tratar uma conexo PPP como se fosse uma Ethernet). --log-errors (Registrar os erros/avisos em um arquivo de sida em modo normal) Avisos e erros mostrados pelo Nmap normalmente aparecem apenas na tela (sada interativa), deixando quaisquer arquivos de sada com formato normal especificados ntegros. Mas quando voc quer realmente ver essas mensagens no arquivo de sada que voc especificou, inclua esta opo. til quando voc no est vendo a sada interativa ou est tentando depurar um problema. As mensagens continuaro a aparecer no modo interativo. Isto no ir funcionar para a maioria dos erros ligados argumento invlidos na linha de comando, ocorre que o Nmap pode ainda no ter inicializado seus arquivos de sada ainda. Somado a isso, algumas mensagens de erro/aviso do Nmap utilizam um sistema diferente que ainda no suporta esta opo. Uma alternativa ao uso desta opo redirecionar a sada interativa (incluindo o fluxo de erros padro) para um arquivo. Embora a maioria dos shells Unix tornem essa uma alternativa fcil, pode ser difcil fazer o mesmo no Windows. Opes diversas (miscellaneous) de sada --append-output (Acrescenta no arquivo de sada, ao invs de sobrepor) Quando voc especifica um nome de arquivo na flag de formato de sada, como -oX ou -oN, esse arquivo sobreposto por padro. Se voc preferir manter o contedo existente do arquivo e acrescentar os novos resultados, especifique a opo --append-output. Todos os arquivos de sada especificados na execuo do Nmap tero os resultados acrescidos ao invs de sobrepostos. Isso no funciona bem com os dados de scan para XML (-oX) pois o arquivo resultante no ser adequadamente interpretado at que voc conserte manualmente. --resume <nomedoarquivo> (Retoma um scan abortado) Algumas execues extensas do Nmap podem levar muito tempo -- na ordem de dias. Tais scans nem sempre rodam at o fim. Podem haver restries que impeam que o Nmap seja executado durante o horrio de expediente, a rede pode cair, a mquina onde o Nmap est rodando pode sofrer um reboot planejado ou no, ou o Nmap pode simplesmente travar. O administrador que est rodando o Nmap poderia cancel-lo por qualquer outra razo, bastando teclar ctrl-C. Reiniciar um scan inteiro do comeo pode ser indesejvel. Felizmente, se forem mantidas logs normal (-oN) ou para o grep (-oG), o usurio pode pedir que o Nmap continue o escaneamento do alvo que estava verificando quando a execuo foi interrompida. Simplesmente especifique a opo --resume e informe o arquivo da sada normal/para o grep como argumento. Nenhum outro argumento permitido, pois o Nmap analisa o arquivo de sada e usa os mesmos argumentos especificados anteriormente. Basta chamar o Nmap com nmap --resume <nomedoarquivodelog>. O Nmap ir acrescentar os novos resultados ao arquivo de dados especificado na execuo anterior. Essa retomada de execuo no suporta o formato de sada XML porque combinar as duas execues em um arquivo XML vlido seria difcil. --stylesheet <caminho ou URL> (Informa a folha de estilo XSL usada para transformar a sada XML) O Nmap vem com uma folha de estilo (stylesheet) chamada nmap.xsl para visualizar ou traduzir a sada XML em HTML. A sada XML inclui uma diretiva xml-stylesheet que mostra para o nmap.xml onde ele foi inicialmente instalado pelo Nmap (ou para o diretrio corrente no Windows). Simplesmente carregue a sada XML do Nmap em um navegador moderno e ele deve conseguir achar o nmap.xsl no sistema de arquivos e utiliz-lo para interpretar os resultados. Se voc deseja utilizar uma folha de estilo diferente, especifique-a como um

argumento para --stylesheet. Voc deve informar o caminho completo ou a URL. Uma chamada comum --stylesheet http://insecure.org/nmap/data/nmap.xsl. Isso diz ao navegador para carregar a verso mais atual da folha de estilo da Insecure.Org. A opo --webxml faz a mesma coisa com menos teclas e menor memorizao. Carregar o XSL da Insecure.org torna mais fcil de se ver os resultados em uma mquina que no tenha o Nmap instalado (e, conseqentemente o nmap.xsl). Ento, a URL normalmente mais til, mas a localizao nmap.xsl em um filesystem local usada por padro por questes de privacidade. --webxml (Carrega a folha de estilo da Insecure.Org) Esta opo conveniente apenas um apelido para --stylesheet http://insecure.org/nmap/data/nmap.xsl. --no_stylesheet (Omite do XML a declarao da folha de estilo XSL) Especifique esta opo para evitar que o Nmap associe qualquer folha de estilo XSL sada XML. A diretiva xml-stylesheet omitida. Opes Diversas (Miscelnea) Esta seo descreve algumas opes importantes (e no-to-importantes) que realmente no couberam em nenhum outro lugar. -6 (Habilita o escaneamento IPv6) Desde 2002, o Nmap oferece suporte a IPv6 na maioria de suas opes mais populares. Em particular, o scan com ping (apenas TCP), o scan com connect e a deteco de verso, todo suportam IPv6. A sintaxe de comando a mesma de sempre, exceto que voc ir tambm adicionar a opo -6. claro que voc deve usar a sintaxe IPv6 se especificar um endereo no lugar de um nome de host. Um endereo pode se parecer com 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, portanto os nomes de host so recomendados. A sada a mesma de sempre, com o endereo IPv6 na linha portas interessantes sendo a nica dica visvel de se tratar realmente de IPv6. Muito embora o IPv6 no ter, exatamente, se alastrado pelo mundo, seu uso se torna mais significativo em alguns pases (normalmente asiticos) e a maioria dos sistemas operacionais modernos passam a suport-lo. Para usar o Nmap com o IPv6, tanto a origem, quanto o alvo de seu scan devem estar configurados para IPv6. Se o seu provedor (ISP) (como a maioria) no aloca endereos IPv6 para voc, alguns intermedirios, que fazem o tnel gratuitamente, esto amplamente disponveis e funcionam bem com o Nmap. Um dos melhores disponibilizado pela BT Exact em https://tb.ipv6.btexact.com/. Tambm tenho utilizado um, fornecido pela Hurricane Electric em http://ipv6tb.he.net/. Tneis 6para4 so outra abordagem gratuita e popular. -A (Opes agressivas de scan) Esta opo habilita opes adicionais avanadas e agressivas. Ainda no decidi exatamente qual das duas a certa. Atualmente ela habilita a Deteco de SO (-O) e o escaneamento de verso (-sV). Mais caractersticas podero ser adicionadas no futuro. A questo habilitar um conjunto completo de opes de escaneamento sem que as pessoas tenham que se lembrar de um grupo grande de flags. Esta opo apenas habilita as funes e no as opes de temporizao (como a -T4) ou opes de verbosidade (-v) que voc pode tambm querer. --datadir <nomedodiretrio> (Especifica a localizao dos arquivos de dados do scan) O Nmap obtm alguns dados especiais, em tempo de execuo, em arquivos chamados nmap-service-probes, nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes e nmap-

os-fingerprints. O Nmap primeiramente busca esses arquivos em um diretrio especificado na opo --datadir (se houver). Qualque arquivo que no seja encontrado l procurado no diretrio especificado pela varivel de ambiente NMAPDIR. A seguir vem o ~/.nmap para se achar os UIDs reais e efetivos (apenas em sistemas POSIX) ou a localizao do executvel do Nmap (apenas Win32) e, ento, a localizao definida na compilao, que pode ser /usr/local/share/nmap ou /usr/share/nmap . Como ltimo recurso, o Nmap ir procurar no diretrio corrente. --send-eth (Use a transmisso pela ethernet em estado bruto) Solicita ao Nmap para que envie pacotes na ethernet (data link) em estado bruto (raw) ao invs de usar a camada de nvel mais alto IP (rede). Por padro, o Nmap escolhe o que for melhor para a plataforma onde est rodando. Soquetes (sockets) em estado bruto (camada IP) so normalmente mais eficientes em mquinas UNIX, enquanto que os frames ethernet so necessrios nas operaes do Windows, uma vez que a Microsoft desabilitou o suporte a soquetes em estado bruto. O Nmap ainda usa pacotes IP em estado bruto no UNIX, independentemente desta opo, quando no h outra alternativa (como no caso de conexes no-ethernet). --send-ip (Envia no nvel do IP em estado bruto) Pede ao Nmap que envie os pacotes pelos soquetes IP em estado bruto ao invs de enviar pelo nvel mais baixo dos frames ethernet. o complemento da opo --send-eth discutida anteriormente. --privileged (Assume que o usurio altamente privilegiado) Informa ao Nmap para simplesmente assumir que ele tem privilgio suficiente para executar transmisses de soquetes em estado bruto, farejar (sniff) pacotes e operaes similares que normalmente requerem privilgio de root em sistemas UNIX. Por padro, o Nmap se encerra se tal operao solicitada mas o geteuid() no zero. --privileged til com as possibilidades oferecidas pelo kernel do Linux, e sistemas similares, que pode ser configurado para permitir que usurios no-privilegiados executem scans de pacotes em estado bruto. Assegure-se de informar esta flag de opo antes de outras flags de opo que requeiram privilgios (scan SYN, deteco de OS, etc.). A varivel NMAP_PRIVILEGED pode ser configurada como uma alternativa equivalente de --privileged. --release-memory (Release memory before quitting) Esta opo til apenas para depurao de vazamentos de memria (memory-leak). Ela faz com que o Nmap libere memria alocada pouco antes de encerrar de forma a tornar os vazamentos de memria reais mais fceis de se ver. Normalmente o Nmap pula essa parte pois o SO faz isso de qualquer forma no encerramento de um processo. --interactive (Inicial em modo interativo) Inicia o Nmap em modo interativo, que oferece um prompt interativo do Nmap, permitindo o incio de mltiplos scans (tanto sncronos quanto em background). Isto til para pessoas que escaneiam a partir de sistemas multi-usurios e que normalmente querem testar a segurana sem deixar todo mundo saber exatamente quais sistemas eles esto escaneando Use --interactive para ativar este modo e ento tecle h para uma ajuda (help). Esta opo raramente utilizada porque um shell adequado mais familiar e tem mais opes. Esta opo inclui um operador exclamao (!) para a execuo de comandos de shell, o que uma das muitas razes de no se instalar o Nmap com setuid root.

-V; --version (Mostra o nmero da verso) Mostra o nmero da verso do Nmap e sai. -h; --help (Mostra a pgina do sumrio de ajuda) Mostra uma pequena tela com as flags de comandos mais comuns. Executar o nmap sem nenhum argumento faz a mesma coisa. Interao em Tempo de Execuo Durante a execuo do Nmap, todas as teclas pressionadas so capturadas. Isso permite que voc interaja com o programa sem abort-lo ou reinici-lo. Algumas teclas especiais iro mudar as opes, enquanto outras iro mostrar uma mensagem de estado dando informaes sobre o scan. A conveno que letras minsculas aumentam a quantidade de informao e letras maisculas diminuem. Voc tambm pode pressionar ? para obter ajuda. v/V Aumenta / Diminui a quantidade de informaes (Verbosity) d/D Aumenta / Diminui o Nvel de Depurao (Debugging Level) p/P Habilita / Desabilita o Rastreamento de Pacotes (Packet Tracing) ? Mostra uma tela de ajuda da interao em tempo de execuo Qualquer outra letra Mostra uma mensagem de estado como esta: Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan Service scan Timing: About 28.00% done; ETC: 16:18 (0:00:15 remaining) Exemplos Aqui esto alguns exemplos de utilizao do Nmap, desde o simple e rotineiro, at o um pouco mais complexo e esotrico. Alguns endereos IP reais e nomes de domnio foram utilizados para tornar as coisas mais concretas. Nesses lugares voc deve substituir os endereos/nomes pelos da sua prpria rede. Embora eu no ache que o escaneamento de portas de outras redes seja, ou deva ser considerado, ilegal alguns administradores de rede no apreciam o escaneamento no-solicitado de suas redes e podem reclamar. Obter a permisso antecipadamente a melhor opo. Para fins de teste, voc tem permisso para escanear o host scanme.nmap.org. Esta permisso inclui apenas o escaneamento via Nmap e no tentativas de explorar vulnerabilidades ou ataques de negao de servio (denial of service). Para preservar a banda, por favor no inicie mais do que uma dzia de scans contra o host por dia. Se esse servio de alvo livre para escaneamento for abusado, ser derrubado e o Nmap ir reportar Failed to resolve given hostname/IP: scanme.nmap.org. Essas permisses tambm se aplicam aos hosts scanme2.nmap.org, scanme3.nmap.org, e assim por diante, embora esses hosts ainda no existam.

nmap -v scanme.nmap.org Esta opo escaneia todas as portas TCP reservadas na mquina scanme.nmap.org . A opo -v habilita o modo verboso (verbose). nmap -sS -O scanme.nmap.org/24 Inicia um scan SYN camuflado contra cada mquina que estiver ativa das 255 possveis da rede classe C onde o Scanme reside. Ele tambm tenta determinar qual o sistema operacional que est rodando em cada host ativo. Isto requer privilgio de root por causa do scan SYN e da deteco de SO. nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127 Inicia uma enumerao de hosts e um scan TCP na primeira metade de cada uma das 255 subredes de 8 bits possveis na classe B do espao de endereamento 198.116. Tambm testa se os sistemas esto executando sshd, DNS, pop3d, imapd ou a porta 4564. Para cada uma destas portas encontradas abertas, a deteco de verso usada para determinar qual aplicao est executando. nmap -v -iR 100000 -P0 -p 80 Pede ao Nmap para escolher 100.000 hosts de forma aleatria e escane-los procurando por servidores web (porta 80). A enumerao de hosts desabilitada com -P0 uma vez que enviar primeiramente um par de sondagens para determinar se um hosts est ativo um desperdcio quando se est sondando uma porta em cada host alvo. nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20 Este exemplo escaneia 4096 endereos IP buscando por servidores web (sem usar o ping) e grava a sada nos formatos XML e compatvel com o programa grep. Bugs Como seu autor, o Nmap no perfeito. Mas voc pode ajudar a torn-lo melhor enviando relatrios de erros (bug reports) ou mesmo escrevendo correes. Se o Nmap no se comporta da forma que voc espera, primeiro atualize para a verso mais atual disponvel em http://insecure.org/nmap/. Se o problema persistir, pesquise um pouco para determinar se o problema j foi descoberto e encaminhado. Tente procurar no Google pela mensagem de erro ou navegar nos arquivos da Nmap-dev em http://seclists.org/. Se no encontrar nada, envie uma mensagem com um relatrio do erro para <nmap-dev@insecure.org>. Por favor, inclua tudo o que souber sobre o problema, bem como a verso do Nmap que voc est executando e em qual verso e sistema operacional voc est rodando-o. Correes codificadas para consertar os erros so ainda melhores que os relatrios de erro. Instrues bsicas para a criao de arquivos de correes com as suas alteraes esto disponveis em http://insecure.org/nmap/data/HACKING.