Nmap network security scanner man page (Portuguese translation)
XXX
XXX WARNING: old character encoding and/or character set
XXX
NMAP(1) NMAP(1)
NOME
nmap - Ferramenta de exploração de rede e scanner de segurança.
SYNOPSIS
nmap [Tipo(s) de Scan] [Opções] <computador ou rede #1 ... [#N]>
DESCRICAO
Nmap é projetado para permitir aos administradores de sistemas e
indivÃduos curiosos explorar grandes redes para determinar quais com-
putadores estão ativos e quais serviços são fornecidos. Nmap suporta
um grande número de técnicas de scan, como: UDP, TCP connect(), TCP SYN
(half open), ftp proxy (bounce attack), Reverse-ident, ICMP (ping
sweep), FIN, ACK sweep, Xmas Tree, SYN sweep, IP Protocol, and Null
scan. Veja as seções de Tipos de Scan para maiores detalhes. Nmap,
também, oferece um número de avançadas caracterÃsticas, como: detecção
remota do SO via TCP/IP fingerprinting, stealth scanning, dynamic delay
e retransmission calculations, scanning paralelo, detecção de hosts
inativos através de pings paralelos, decoy scanning, detecção de portas
filtradas, scanning direto de RPC (não-portmapper), fragmentation scan-
ning e flexibilidade do alvo e especificação de porta.
Esforços significantes tem sido gastos na performance do nmap para
usuários comuns, usuários não-root. Infelizmente, várias interfaces
crÃticas do kernel (como os sockets raw) requerem privilégios de root.
Nmap deve ser executado como root sempre que possÃvel.
O resultado da execução do nmap é usualmente uma lista de portas inter-
essantes na(s) máquina(s) sendo explorada(s). Nmap sempre fornece o
nome do serviço, o número, o estado, e o protocolo das portas "bem con-
hecidas". O estado pode ser tanto ’aberto’ (open), ’filtrado’(filtered)
ou não filtrado (unfiltered). Aberto significa que a máquina alvo
aceitará (accept()) conexões na porta. Filtrado significa que o fire-
wall, filtro ou outro obstáculo da rede está cobrindo a porta e pre-
venindo o nmap de determinar quando a porta está aberta. Não filtrado
significa que a porta é conhecida pelo nmap para estar fechada e nenhum
firewall/filtro parece estar interferindo com a tentativa de determina-
lá pelo nmap. Portas não filtradas são um caso comum e são mostradas,
somente, quando a maioria das portas exploradas estão no estado fil-
trado.
Dependendo da opção usada, o nmap pode, também, reportar as seguintes
caracterÃsticas do host remoto: SO em uso, sequenciabilidade do TCP, os
nomes dos usuários executando os programas em determinadas portas, o
nome DNS, quando um host tem um endereco de smurf, e várias outras.
OPÃÇÃÕES
Opções que juntamente fazem sentido podem geralmente ser combinadas.
Várias opções são especÃficas para certos modos de scan. Nmap tenta
capturar e avisar o usuário sobre erros ou combinações não suportadas
de opções.
Se você está impaciente, você pode ir direto para a seção de exemplos
no final, os quais demonstram o uso comum do nmap. Você pode, também,
executar nmap -h para uma rápida página de referência, a qual lista
todas as opções.
TIPOS DE SCAN
-sT TCP connect() scan: Esta é a mais básica forma de TCP scanning.
A chamada de sistema, connect(), provida pelo seu sistema opera-
cional é usada para abrir uma conexão para toda porta interes-
sante na máquina. Se a porta está no estado listening, connect()
irá ter sucesso, por outro lado a porta não será alcançada. Uma
grande vantagem desta técnica é que você não precisa de nenhum
privilégio especial. Qualquer usuário em UNIX está livre para
usar esta chamada.
Este tipo de scan é facilmente detectável pelo log do host alvo,
o qual mostrará o grupo de conexões e mensagens de erro para os
serviços os quais aceitam, accept(), a conexão somente para
tê-la imediatamente desligada.
-sS TCP SYN scan: Esta técnica é muito conhecida como "half-open"
scanning, porque não abre uma conexão TCP completa. É enviado um
pacote com o flag SYN setado, como se fosse abrir uma conexão
real e é esperado pela resposta. Uma resposta SYN/ACK indica que
a porta está no estado listening. O flag RST é uma indicação de
estado não listening. Se o flag SYN/ACK é recebido, o flag RST é
imediatamente enviado para encerrar a conexão (atualmente o
núcleo do SO faz isso por nós). A principal vantagem desta
técnica de scanning é que poucos sites irão registra-lá no
arquivo de log. Desafortunadamente é necessário privilégios de
super usuário (root) para construir estes pacotes SYN customiza-
dos.
-sF -sX -sN
Modos Stealth FIN, Xmas Tree, ou Null scan: Algumas vezes nem
mesmo a técnica SYN scanning é clandestina suficiente. Vários
firewalls e filtros de pacotes observam por SYNs para portas
restritas, e programas como Synlogger e Courtney estão
disponÃveis para detectar este tipo de scan. Por outro lado,
scans avançados (stealth FIN, Xmas Tree, ou Null scan), podem
ser capazes de passar através destes filtros sem serem molesta-
dos.
A idéia é que portas fechadas são exigidas por responder aos
pacotes de teste com um RST, enquanto portas abertas precisam
ignorar os pacotes em questão (veja RFC 793 pp 64). A técnica de
scan FIN utiliza o limitado pacote FIN como teste, enquanto a
técnica de scan Xmas Tree seta os flags FIN, URG e PUSH. A
técnica de scan Null não seta nenhum flag. Desafortunadamente a
Microsoft (como usual) decidiu completamente ignorar o padrão e
faz as coisas do seu próprio jeito. Então este tipo de scan não
funcionará contra sistemas executando Windows95/NT. Do lado pos-
itivo, está é uma ótima maneira de distinguir entre duas
plataformas. Se o scan encontrar portas abertas, é possÃvel
saber que a máquina não utiliza o Windows. Se as técnicas de
scan -sF, -sX ou -sN mostram todas as portas fechadas, mesmo
assim a técnica de scan SYN (-sS) mostra portas sendo abertas,
você poderá estar olhando para uma máquina Windows. Esta é a
maneira menos usada pelo nmap para testar a detecção do SO.
Exitem, também, alguns outros sistemas que são descobertos da
mesma maneira que descobrimos o windows. Estes incluem Cisco,
BSDI, HP/UX, MVS, and IRIX. Todos acima enviam resets (RST) de
portas abertas quando estes devem, somente, descartar o pacote.
-sP Ping scanning: Algumas vezes você somente quer saber quais os
hosts da rede estão ativos. O Nmap pode fazer isso enviando um
pacote de requisição ICMP (ICMP echo request) para todo endereço
IP especificado da rede. Os hosts que respondem estão vivos.
Desafortunadamente, vários sites, como a microsoft.com, blo-
queiam pacotes de requisição ICMP (echo request). Então, o nmap
pode, também, enviar um pacote ACK TCP para (por definição) a
porta 80. Se nós pegarmos o flag RST novamente, a máquina esta
viva. A terceira técnica envolve o envio de pacotes SYN e a
espera pelo pacote com o flag RST ou os flags SYN/ACK. O método
connect() é usado por usuários comuns (não root).
Por definição (para super usuários), o nmap usa tanto as técni-
cas do ICMP e a do flag ACK em paralelo. Você pode mudar as -P
opções descritas mais a frente.
Note que o ping, por definição, é feito de qualquer forma, e
somente os hosts que respondem são scanneados. Somente use esta
opção se você desejar vasculhar sem fazer qualquer scan real de
portas.
-sU UDP scans: Este método é usado para determinar quais portas UDP
(User Datagram Protocol, RFC 768) estão abertas no host. A
técnica implica em enviar 0 bytes de dados de pacotes UDP para
cada porta da máquina alvo. Se nós recebermos uma mensagem de
ICMP port unreachable (porta ICMP não alcançada), então a porta
está fechada. Por outro lado nós assumimos que a porta está
aberta.
Várias pessoas pensam que a técnica UDP scanning é supérfluo.
Eu, usualmente, lembro desta como uma recente falha no rpcbind
do Solaris. O Rpcbind pode ser encontrado escondido em uma porta
UDP não documentada em algum lugar acima de 32770. Então não
importa que a porta 111 esteja bloqueada por um firewall. Porém,
você pode encontrar quais as portas altas, maiores de 30.000,
que estão no estado listening? Com o scanner UDP você pode!
Existe, também, o programa cDc Back Orifice backdoor o qual se
oculta em uma porta UDP configurável em máquinas Windows. Alguns
serviços comumente vulneráveis que utilizam o UDP são: snmp,
tftp, NFS, etc.
Desafortunadamente UDP scanning é algumas vezes, dolorosamente,
vagarosa desde que a maioria dos hosts implementam a sugestão da
RFC 1812 (seção 4.3.2.8) de limitar a taxa de mensagens de erro
ICMP. Por exemplo, o núcleo do Linux (em net/ipv4/icmp.h) limita
a geração de mensagens de destination unreachable para 80 por 4
segundos, com 1/4 segundos de penalidade se esta for excedida. O
Solaris tem um limite muito mais restrito (mais ou menos 2 men-
sagens por segundo) e assim gasta um tempo maior para realizar o
scan. Nmap detecta esta taxa limitante e reduz conformemente,
por outro lado inunda a rede com pacotes sem uso que irão ser
ignorados pela máquina alvo.
Como é tÃpico, a Microsoft ignorou a sugestão da RFC e não
parece ter feito nenhuma taxa limitante por completo no Win95 e
no NT. Então é possÃvel scannear, rapidamente , todas as portas
de 64K das máquinas windows. Beleza!
-sO Scan do Protocolo IP: Este método é usado para determinar quais
protocolos IPs são usados no host. A técnica consiste em enviar
pacotes IP raw sem promover nenhum cabeçalho para cada protocolo
especÃfico na máquina alvo. Se nós recebermos uma mensagem do
protocolo ICMP unreachable, então o protocolo não está sendo
usado. Por outro lado nós assumimos que está aberto. Note que
vários hosts (AIX, HP-UX, Digital UNIX) e firewalls podem não
enviar mensagens de protocolo unreachable. Assim faz parecer que
todos os protocolos estão "abertos".
Isso porque a técnica implementada é muito similar ao scanning
da porta UDP, onde a taxa limite de ICMP pode ser aplicada
também. Porém o campo do protocolo IP tem somente 8 bits, então
no máximo 256 protocolos podem ser testados, os quais devem ser
possÃveis de serem testados em tempo razoável.
-sA ACK scan: Este método avançado é usualmente usado para mapear o
conjunto de regras de um firewall. Em particular, esta pode aju-
dar a determinar quando um firewall é stateful ou somente um
filtro de pacotes simples que bloqueia pacotes SYN de chegada.
Este tipo de scan envia pacotes com o flag ACK setado para uma
porta especÃfica. Se um RST voltar, a porta é classificada como
"não filtrada". Se não voltar nada ou um ICMP unreachable
voltar, a porta é classificada como "filtrada". Note que o nmap
usualmente não imprime portas "não filtradas", obtendo, assim,
nenhuma porta mostrada na saÃda é usualmente um sinal que todos
os testes foram suscedidos (e retornado RSTs). Esta técnica de
scan nunca irá, obviamente, mostrar portas no estado "aberto".
-sW Window scan: Este scan avançado é muito similar ao ACK scan,
exceto que as vezes pode ser possÃvel detectar portas abertas
mesmo sendo filtradas, isso devido a anomalia do tamanho da
janela TCP reportado por vários sistemas operacionais. Sistemas
vulneráveis para isso incluem no mÃnimo várias versões do AIX,
Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, OpenVMS, Digital
UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, OpenBSD, Open-
Step, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX, and VxWorks. Vejam
no arquivo, na lista de discussão nmap-hackers, a lista com-
pleta.
-sR RPC scan. Este método trabalha em combinação com várias técni-
cas de scan de portas do Nmap. Ele pega todas as portas TCP/UDP
encontradas abertas e inunda elas com comandos NULL de programas
SunRPC numa tentativa de determinar quando elas são portas RPC,
e se são, qual programa e versão dos serviços. Com este método
você pode efetivamente obter a mesma informação como se usasse
’rpcinfo -p’ mesmo se o portmapper alvo estiver atrás de um
firewall (ou protegido pelo TCP wrappers). Decoy não trabalha
correntemente com RPC scan, em algum ponto eu posso adicionar o
suporte decoy para UDP RPC scans.
-b <ftp relay host>
FTP bounce attack: Uma interessante "caracterÃstica" do proto-
colo ftp (RFC 959) é sustentada para conexões ftp "proxy". Em
outras palavras, eu devo ser capaz de conectar do evil.com para
um servidor FTP, target.com, e requerer que o servidor envie um
arquivo para qualquer lugar na internet! Isto pode ter sido
explorado bem em 1985 quando a RFC foi escrita. Porém na inter-
net hoje, nós não podemos ter pessoas hijacking servidores ftp e
requisitando que os dados sejam jogados para arbitrários pontos
na internet. Como *Hobbit* escreveu em 1995, este protocolo
torna inútil "pode ser usado para portar virtualmente não deter-
mináveis emails ou news, forjando em servidores vários sites,
preenchendo discos, tentando saltar firewalls, e geralmente
sendo aborrecido, ficando, assim, difÃcil seguir a pista ao
mesmo tempo." O que nós iremos explorar disto é o scan de portas
TCP do servidor "proxy" de ftp. Então você pode conectar a um
servidor ftp atrás do firewall, e então scannear portas que
estão mais provávelmente bloqueadas (139 é uma boa). Se o servi-
dor ftp permitir ler de e escrever para algum diretório (como
/incoming), você pode enviar dados arbitrários para portas que
você achar abertas (nmap não faz isso por você).
Os argumentos passados para a opção ’b’ é o host que você quer
usar como proxy, na notação de padrão URL. O formato é: user-
name:password@server:port. Tudo, menos o server é opcional.
Para determinar quais servidores são vulneráveis para este
ataque, você pode ver meu artigo em Phrack 51. A versão atual-
izada está disponÃvel em nmap URL (http://www.inse-
cure.org/nmap).
OPÃÇÃÕES GERAIS
Nenhuma destas são requeridas, porém algumas podem ser absoluta-
mente proveitosas.
-P0 Pinga os hosts antes de scanneá-los. Isto permite scannear as
redes que não permitem ICMP echo requests (ou responses) através
dos seus firewalls. microsoft.com é um exemplo desta rede, e
então você deve sempre usar -P0 ou -PT80 quando portscanning
microsoft.com.
-PT Use TCP "ping" para determinar quais hosts estão ativos. Ao
invez de enviar pacotes ICMP echo request e esperar pelas
respostas, nós enviamos pacotes TCP ACK por toda parte na rede
alvo (ou para uma simples máquina) e então esperamos por
respostas. Hosts que estão ativos devem responder com um RST.
Esta opção preserva a eficiência de somente scannear hosts que
estão ativos, enquanto ainda permite scannear redes/hosts que
bloquearam pacotes ping. Para usuários não root, é usado o con-
nect(). Para setar a porta destino dos pacotes de teste usem
-PT<número da porta>. A porta default é 80, desde que está porta
é muitas vezes não filtrada.
-PS Está opção usa pacotes com SYN (connection request) ao invez de
pacotes com ACK para usuários root. Hosts que estão ativos devem
responder com RST (ou, raramente, um SYN|ACK).
-PI Está opção usa um pacote ping verdadeiro (ICMP echo request).
Esta encontra os hosts que estão ativos e também procura por um
endereço de broadcast para a subrede da sua rede. Estes são
endereços IPs que são externamente alcançáveis e traduzidos para
broadcast de pacotes IP de chegada para uma subrede de computa-
dores. Estes devem ser eliminados se encontrado, como ele per-
mitem por numerosos ataques de negação de serviço (DoS) (Smurf é
o mais comum).
-PB Este é o tipo de ping default. Ele usa tanto pacotes com ACK (
-PT ) e pacotes ICMP ( -PI ) sweeps em paralelo. Desta maneira
você pode obter os firewalls que filtram cada uma (porém não
ambas).
-O Esta opção ativa a identificação de hosts remotos via TCP/IP
fingerprinting. Em outras palavras, ela usa uma grande quanti-
dade de técnicas para detectar sutilezas na pilha de rede do
sistema operacional do computador que você está scanneando. Ele
usa estas informações para criar a ’fingerprint’ a qual é com-
parada com sua base de dados de conhecidos fingerprints de SOs
(o arquivo nmap-os-fingerprints) para decidir qual o tipo de
sistema que você está escanneando.
Se o Nmap está desabilitado para resolver o SO da máquina, e as
condições são boas (ex. ao menos uma porta aberta), Nmap irá
prover a URL que você pode usar para submeter a fingerprint se
você conhecer (com certeza) o SO sendo executado na máquina. Por
fazer isso você contribui para o conjunto de sistemas opera-
cionais conhecidos pelo nmap e então será mais correto para
todos.
A opção -O também possibilita classificar e fazer o prognostico
da sequência TCP. Esta é uma medida que descreve aproximadamente
qual a dificuldade em estabelecer uma conexão TCP forjada contra
um host remoto. Esta é útil para explorar o IP de origem
baseado na relação de confiança (rlogin, firewall filters, etc)
ou por esconder a origem do ataque. O número difficulty mostrado
é baseado em uma simples amostra estatÃstica e pode variar. Este
número é geralmente melhor apresentado como uma frase em Inglês
como "worthy challenge" ou "trivial joke".
-I Esta ativa o scanning do ident reverso TCP. Como notado por Dave
Goldsmith em 1996 na mensagem para a Bugtraq, o protocolo ident
(rfc 1413) permite revelar o username dos donos dos processos
conectados via TCP, mesmo se estes processos não iniciaram a
conexão. Então você pode, por exemplo, conectar a porta http e
então usar o identd para encontrar quando o servidor está sendo
executado como root. Isto pode somente ser feito com uma conexão
TCP completa para a porta alvo (ex.: a opção de scanning -sT).
Quando -I é usada, o identd do host remoto é pesquisado para
cada porta aberta encontrada. Obviamente isso não funciona se o
host não estiver rodando o identd.
-f Esta opção requere os flags SYN, FIN, XMAS, ou NULL scan para
usar cuidadosos pacotes IP fragmentados. A idéia é dividir o
cabeçalho TCP sobre vários pacotes para ficar difÃcil para o
filtro de pacotes, sistemas de detecção de intrusão, e outros
aborrecimentos para detectar o que você está fazendo. Seja
cuidadoso com isso! Vários programas tem preocupações lidando
com estes cuidadosos pacotes. Enquanto este método não obtem
pacotes filtrados e firewalls que enfileram todos os fragmentos
IP (como a opção CONFIG_IP_ALWAYS_DEFRAG no kernel do linux),
várias redes não conseguem assegurar o golpe de performance que
este fato causa, então é melhor deixar este desabilitado.
Note que esta opção, ainda, não esta funcionando em todos os
sistemas. Esta funciona bem para o Linux, FreeBSD, e OpenBSD e
outras pessoas tem reportado sucessos com outras variações
*NIX.
-v Modo Verbose. Esta é uma opção altamente recomendada e fornece
mais informações sobre o que esta acontecendo. Você pode usá-la
duas vezes para um melhor efeito. Use -d em conjunto se você
realmente quiser ficar louco com a quantidade de informações na
tela!
-h Esta cômoda opção mostra uma rápida tela de referência das
opções usadas no nmap. Como você deve ter notado, está man page
não é exatamente uma ’rápida referência’ :o)
-oN <logfilename>
Este log mostra o resultado do seu scan em uma forma humanamente
legÃÃvel no arquivo que você especificou como argumento.
-oX <logfilename>
Este log mostra o resultado do seu scan na forma de XML no
arquivo que você especificou como argumento. Isto permite aos
programas facilmente capturar e interpretar os resultados do
Nmap. Você pode fornecer o argumento ´-´(sem quotas) para colo-
car em uma stdout (para shell pipelines, etc). Neste caso uma
saÃda normal será suprimida. Tomar cuidado para as mensagem de
erro se você esta usando esta (elas, ainda, irão para stderr).
Também, note que ´-v´ pode causar algumas informações extras
para ser impressas.
-oG <logfilename>
Este log mostra o resultado do seu scan na forma do grepable no
arquivo que você especificou como argumento. Este simples for-
mato provê todas as informações em uma linha (então você pode
facilmente usar o grep para portas ou obter informações de SOs e
ver todos os endereços IPs). Este é o mecanismo preferido pelos
programas para interagir com o Nmap, porém agora é recomendado
usar a saÃda em XML (-oX). Este simples formato pode não conter
tantas informações quanto os outros formatos. Você pode fornecer
o argumento ´-´(sem quotas) para colocar em uma stdout (para
shell pipelines, etc). Neste caso uma saÃda normal será suprim-
ida. Tomar cuidado para as mensagem de erro se você esta usando
esta (elas, ainda, irão para stderr). Também, note que ´-v´ irá
fornecer várias informações extras para ser impressas.
-oS <logfilename>
thIs l0gz th3 r3suLtS of YouR ScanZ iN a s|<ipT kiDd|3 f0rM iNto
THe fiL3 U sPecfy 4s an arGuMEnT! U kAn gIv3 the 4rgument ´-´
(wItHOUt qUOteZ) to sh00t output iNT0 stDouT!@!!
--resume <logfilename>
O scan de rede que é cancelado devido a um control-C, inter-
rupção da rede, etc. pode ser resumido usando esta opção. O log-
filename precisa ser normal (-oN) ou parsable na máquina (-oM)
para registrar o scan abortado. Nenhuma outra opção pode ser
usada. Nmap começará na máquina depois que a última foi scan-
neada com sucesso e armazenada no arquivo de log.
-iL <inputfilename>
É feita a leitura de um arquivo alvo especificado na linha de
comando. O arquivo deve conter uma lista de hosts ou expressões
de rede separados por espaços, tabs, ou novas linhas. Use o
hÃfen (-) como inputfilename se você quisesse que o nmap leia
expressões do hosts de stdin (como no final do pipe). Veja a
seção especificação do alvo para maiores informações nas
expressões que você preencherá no arquivo.
-iR Esta opção fala para o Nmap para gerar seus próprios hosts para
scannear, usando simplesmente números randomicos :o). Isso nunca
irá terminar. Isso pode ser muito útil para tirar amostras
estatÃsticas da internet para estimar várias coisas. Se você
nunca estiver realmente entediado, tente nmap -sS -iR -p 80 para
encontrar vários servidores web para observar.
-p <port ranges>
Esta opção especifica quais portas você quer para descrever. Por
exemplo ’-p 23’ irá tentar somente a porta 23 do host(s) alvo.
´-p 20-30,139,60000-´ irá scannear portas entre 20 e 30, porta
139, e todas as portas maiores que 60000. Por definição é para
scannear todas as portas entre 1 e 1024 tão bem quanto qualquer
porta listada no arquivo de serviços o qual vem com o nmap. Para
o scan de protocolos IP (-sO), especifica o número do protocolo
que você deseja para (0-255).
-F Modo de scan rÃápido.
Especifica que você somente deseja scannear por portas catalo-
gadas no arquivo services o qual vem com o nmap (ou o arquivo de
protocolos para -sO). Este é obviamente muito mais rápido do que
scannear todas 65535 portas no host.
-D <decoy1 [,decoy2][,ME],...>
O processo de decoy scan será executado fazendo ele mostrar-se
para o host remoto que o(s) host(s) que você especificou como
decoys estão scanneando a rede alvo também. Então seus IDS pre-
cisarão reportar 5-10 scan de portas de um único endereço IP,
porém eles não saberão qual o endereço IP que os estava scanne-
ando e quais eram os decoys inocentes. Enquanto isto pode ser
descoberto através de uma rota, respostas soltas, e outras
mecanismos ativos, este é geralmente uma técnica extremamente
efetiva para esconder seu endereço IP.
Separando cada decoy host com vÃrgulas, você pode usar opcional-
mente ’ME’ como um dos decoys para representar a posição que
você quer seu endereço IP para ser usado. Se você colocar ’ME’
na sexta posição ou outra maior, várias detectores comuns de
scan de portas não serão razoáveis para mostrar seu endereço IP
por completo. Se você não usar ’ME’, o nmap irá colocar você em
uma posição randomica.
Note que os hosts que você usa como decoys devem estar ativos ou
você precisará acidentalmente inundar com pacotes SYN seu alvo.
Também, ele será muito fácil para determinar quais hosts estão
scanneando se somente um está atualmente ativo na rede. Você
deverá querer usar o endereço IP ao invez de nomes (então redes
decoy não irão ver você em seus nameserver logs).
Também, note que vários (estúpidos) "detectores de scan de por-
tas" irão firewall/deny roteamento para hosts que tentam fazer o
scan de portas. Então você precisa descuidadosamente causar a
perda de conexão da máquina que você está scanneando com a
máquina decoy que você esta usando. Isto pode causar maiores
problemas para a máquina alvo se o decoy está sendo usado, digo,
seu internet gateway ou até "localhost". Então você pode querer
ser cuidadoso com esta opção. A real moral da história é que os
detectores de scan de portas spoofable não devem gastar ações
contra a máquina que parece estar scanneando suas portas. Este
pode ser somente um decoy, ou seja, uma isca, uma armadilha!
Decoys são usados tanto em ping scan inicial (usando ICMP, SYN,
ACK, ou o que seja) e durante a fase de atual scanneamento de
porta. Decoy são também usados durante a detecção remota de SO (
-O ).
Este é um digno registrador que usa vários decoys que podem
atrasar seu scan e potencialmente até fazer este menos preciso.
Também, vários ISPs filtram pacotes spoofed, embora vários (cor-
rentemente a maioria) não restrigem pacotes IP spoofed por
inteiro.
-S <IP_Address>
Em várias circunstâncias, nmap pode não ser capaz de determinar
seu endereço de origem ( nmap irá avisá-lo se este é o caso).
Nesta situação, use -S com seu endereço IP (através da interface
que você deseja enviar pacotes).
Outro possÃvel uso deste flag é para spoofar o scan para fazer o
alvo pensar que alguÃém mais está scanneando. Imagine uma compan-
hia sendo repetidamente port scanned pelo seu competidor! Este
não é um uso suportado (ou o principal propósito) deste flag. Eu
penso somente que isso levanta uma interessante discussão, em
que as pessoas devem estar cientes antes que elas acusem outras
pessoas de estar scanneando suas portas. -e geralmente será
requerida para este tipo de uso.
-e <interface>
Fala para o nmap qual interface enviar e receber pacotes. Nmap
deve ser capaz de detectar isto, porém este contará para você se
não puder.
-g <portnumber>
Conjunto de números de portas de origens usadas no scan. Vários
ingênuos firewalls e filtros de pacotes instalados fazem uma
exceção em seus conjuntos de regras para permitir pacotes DNS
(53) ou FTP-DATA (20) para entrar e estabelecer a conexão. Obvi-
amente isto contesta completamente as vantagens de segurança do
firewall desde que intrusos podem somente mascarar como FTP ou
DNS por modificar suas portas de origem. Obviamente para UDP
scan você deve tentar 53 primeiro e TCP scans devem tentar 20
antes da porta 53. Note que isso é somente uma requisição --
nmap honrará isso somente quando esta estiver hábil para. Por
exemplo, você não pode amostrar todo TCP ISN de um host:porta
para um host:porta, então nmap muda a porta de origem mesmo que
seja usado -g.
Seja ciente que existe uma penalidade na performance em vários
scans por usar esta opção, porque eu algumas vezes armazeno
informações úteis no número da porta de origem.
-r Fala para o Nmap para NÃÃO randomizar a ordem na qual as portas
serão scanneada.
--randomize_hosts
Fala para o Nmap para embaralhar cada grupo acima de 2048 hosts
antes de scanneá-los. Isto pode fazer o scan menos evidente para
vários sistemas de monitoração de rede, especialmente quando
você combina estes com as opções de baixo tempo (slow timing)
(veja abaixo).
-M <max sockets>
Conjunto máximo de números de sockets que será usado em paralelo
pelo TCP connect() scan (por definição). Esta é útil para
diminuir um pouco o scan e anular a possibilidade de travar a
máquina remota. Outra aproximação é para usar -sS, a qual é
geralmente fácil para as máquinas descreverem.
OPÃÇÃÕES DE TEMPO
Geralmente o Nmap faz um bom trabalho em ajustar para as carac-
terÃsticas da rede um tempo de execução e scanning tão rápido
quanto possÃvel enquanto minimiza as chances do hosts/portas
serem não detectadas. Entretanto, existem vários casos onde a
polÃtica de tempo default do Nmap pode não encontrar seus obje-
tivos. As seguintes opções provêem um fino nÃvel de controle
sobre o tempo de scan:
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>
Estas são polÃticas de tempo preservados para convenientemente
expressar suas prioridades para o Nmap. Paranoid modo de scan
muito lento na esperança de prevenir a detecção pelo sistema
IDS. Este serializa todos os scans (scanning não paralelo) e
geralmente espera no mÃnimo 5 minutos entre o envio de pacotes.
Sneaky é similar, exceto que somente espera 15 segundos entre o
envio de pacotes. Polite tem o significado para facilitar a
carga na rede e reduzir as chances de travar a máquina. Ele
serializa os testes e espera no mÃÃnimo 0.4 segundos entre eles.
Normal é o comportamento default do Nmap, o qual tenta executar
tão rápido quanto possÃvel sem sobrecarregar a rede ou perder
hosts/portas. Aggressive esse modo adiciona um timeout de 5
minutos por host e nunca espera mais que 1.25 segundos para tes-
tar as respostas. Insane é somente adequando para redes muito
rápidas ou onde você não se importa em perder algumas
informações. Nesta opção o timeout dos hosts acontecem em 75
segundos e espera somente 0.3 segundos por teste individual.
Esta possibilita, de qualquer forma, uma varredura extremamente
rápida na rede :o). Você pode também referenciar isso por
números (0-5). Por exemplo, ´-T 0´ fornece para você o modo
Paranoid e ´-T 5´ é o modo Insane.
Estes modos, para preservar o tempo, NÃO devem ser usados em
combinação com controles de baixo nÃvel, como os fornecidos
abaixo.
--host_timeout <milliseconds>
Especifica a soma de tempo que o Nmap permite para gastar scan-
neando um simples host antes de desistir daquele IP. O modo de
tempo default não tem o timeout do host.
--max_rtt_timeout <milliseconds>
Especifica a soma máxima de tempo do Nmap tem permitido para
esperar pela resposta de teste antes de retransmitir ou ocorrer
um timeout de um particular teste. O modo default seta este
valor em 9000.
--min_rtt_timeout <milliseconds>
Quando um host alvo começa a estabelecer um padrão de resposta
muito rápido, Nmap irá contrair a soma de tempo fornecida por
teste. Isto aumenta a velocidade do scan, porém pode levar a
perder pacotes quando a resposta gasta mais tempo que o usual.
Com este parâmetro você pode garantir que o Nmap irá esperar ao
menos a soma de tempo fornecida antes de abrir mão do teste.
--initial_rtt_timeout <milliseconds>
Especifica o timeout do teste inicial. Isto é geralmente útil
quando scanning firewalled hosts com -P0. Normalmente o Nmap
pode obter boas estimativas RTT do ping e dos primeiros testes.
O modo default usa 6000.
--max_parallelism <number>
Especifica o número máximo de Nmap scans permitidos para serem
performados em paralelo. Ajustando este para 1 significa que o
Nmap nunca irá tentar scannear mais que uma porta por vez. Este,
também, afeta outros scans paralelos como o ping sweep, RPC
scan, etc.
--scan_delay <milliseconds>
Especifica a mÃÃnima soma de tempo que o Nmap precisa esperar
entre testes. Este é, na maioria das vezes, útil para reduzir a
carga da rede ou para diminuir a maneira de scan para esquivar-
se do IDS.
ESPECIFICAÃÇÃÃO DO ALVO
Tudo que não é uma opção (ou argumento de opção) no nmap é tratado como
especificação do host alvo. No caso mais simples são registrados sim-
ples hostnames ou endereços IPs na linha de comando. Se você quiser
scannear uma subrede de endereços IPs, você pode anexar â€â€™/maskâ€â€™ para o
hostname ou endereço IP. mask precisa estar entre 0 (faz o scan de
toda internet) e 32 (faz o scan de um simples host especificado). Use
/24 para scannear a classe de endereço ’C’ e /16 para a classe de
endereço ’B’.
Nmap, também, tem a mais poderosa notação a qual permite você especi-
ficar um endereço IP usando uma lista/fileira para cada elemento. Então
você pode scannear todo o endereço classe ’B’ da rede 192.168.*.*
especificando ’192.168.*.*’ ou ’192.168.0-255.0-255’ ou até
’192.168.1-50,51-255.1,2,3,4,5-255’. E é claro, você pode usar a
notação de máscara: ’192.168.0.0/16’. Estes todos são equivalentes.
Outra coisa interessante para fazer é dividir em pedaços a Internet de
outra maneira. Ao invez de scannear todos os hosts da classe ’B’, scan
’*.*.5.6-7’ com o objetivo de explorar todos os endereços IPs que ter-
minam em .5.6 ou .5.7 escolhendo seus próprios números. Para mais
informações dos hosts especÃficos para scannear, veja a seção de exemp-
los.
EXEMPLOS
Aqui existem vários exemplos de uso do nmap, do simples e normal para
um pouco mais complexo/esotérico. Note que números atuais e vários
nomes de domÃnios atuais são usados para tornar as coisas mais concre-
tas. Em seus lugares você deve substituir por endereços/nomes da sua
prÃópria rede. Eu não penso que scannear portas de outras rede é ile-
gal; nem deve o scanneamento de portas ser feito por outros como um
ataque. Eu tenho scanneado centenas de milhares de máquinas e tenho
recebido somente uma reclamação. Porém eu não sou advogado e alguma
pessoa pode estar irritado pelos testes do nmap
nmap -v target.example.com
Esta opção faz o scan de todas as portas TCP reservadas na máquina tar-
get.example.com. A opção -v significa ligar o modo verbose.
nmap -sS -O target.example.com/24
Lança um stealth SYN scan contra cada máquina que está ativa,
abrangendo todas as 255 máquinas de classe ’C’ onde target.example.com
reside. Este exemplo, também, tenta determinar o sistema operacional
que esta executando em cada host que esta ativo. Este requere
privilégios de root (super usuário) por causa da técnica SYN scan e da
detecção de SOs.
nmap -sX -p 22,53,110,143,4564 198.116.*.1-127
Envia um Xmas tree scan para a primeira metade de cada uma das 255 pos-
sibilidades de subredes de 8 bit no espaço de endereços classe ’B’ em
198.116. Nós estamos testando quando o sistema executa sshd, DNS,
pop3d, imapd, ou a porta 4564. Note que o Xmas scan não trabalha com a
Microsoft devido a sua deficiente pilha TCP. O mesmo acontece com
CISCO, IRIX, HP/UX, e BSDI.
nmap -v --randomize_hosts -p 80 â€â€™*.*.2.3-5â€â€™
Em lugar de focar somente um especÃfico IP, é interessante, algumas
vezes, abranger um fatia de toda a internet e fazer o scan de um
pequena amostra de cada fatia. Este comando encontra todos os servi-
dores web em máquinas com endereços IPs terminando em .2.3, .2.4, ou
.2.5. Se você é super usuário (root) você pode adicionar -sS. Também,
você irá encontrar mais máquinas interessantes começando com 127.,
então você pode querer usar ’127-222’ ao invez dos primeiros asterÃsti-
cos porque essa parte tem uma alta densidade de máquinas interessantes
(IMHO).
host -l company.com | cut â€â€™-d â€â€™ -f 4 | ./nmap -v -iL -
Fazer uma transferência de zona de DNS para encontrar hosts em com-
pany.com e então alimentar os endereços IPs para o nmap. Os comandos
acima são para minha caixa GNU/Linux. Você pode precisar de diferentes
comandos/opções em outros sistemas operacionais.
BUGS
Bugs? O que é bugs? Envie-me os bugs que você encontrar. Patches são
uma boa também :o) Lembrem-se de, também, enviar novos SO fingerprints
para que possamos aumentar nossa base de dados. O Nmap irá fornecer
para você uma URL de submissão quando um apropriado fingerprint for
encontrado.
AUTOR
Fyodor <fyodor@insecure.org>
TRADUTOR
Antônio Pires de Castro Jr <apcastro@ic.unicamp.br>; <apcastro@onde-
for.com.br> Texto traduzido em 17 de Outubro de 2000.
NOTA DO TRADUTOR
Esta tradução foi realizada usando a man page oficial do nmap (NMAP
2.54BETA7), e não possui nenhum compromisso com www.insecure.org. Este
trabalho foi realizado pela livre e expontânea vontade do tradutor.
Qualquer correção desta pode ser feita enviando um email para o tradu-
tor.
DISTRIBUIÃÇÃÃO
A mais nova versão do nmap pode ser obtida em http://www.inse-
cure.org/nmap/
nmap
(C) 1997,1998,1999,2000 por Fyodor (fyodor@insecure.org)
libpcap é, também, distribuÃda junto com nmap. Esta é uma copyrighted
por Van Jacobson, Craig Leres and Steven McCanne, todos do Laboratório
Nacional de Lawrence em Berkeley, University of California, Berkeley,
CA. A versão distribuÃda com o nmap pode ser modificada, a fonte orig-
inal está disponÃvel em ftp://ftp.ee.lbl.gov/libpcap.tar.Z .
Este programa é um software livre; você pode redistribuÃ-lo e/ou
modificá-lo sobre os termos da Licença Pública Geral GNU como publicado
pelo Free Software Foundation; Versão 2. Esta garante seu direito de
usar, modificar e redistribuir o Nmap sobre certas condições. Se esta
licença for inaceitável para você, o Insecure.Org pode estar querendo
negociar alternativas licenças (entre em contato com fyodor@inse-
cure.org).
O código de origem é fornecido para este software porque nós acredita-
mos que os usuários tem o direito de conhecer exatamente qual o pro-
grama ele irá usar antes de executá-lo. Isto, também, permite você
auditar o software para furos de segurança (nenhum foi encontrado).
O código de origem também permite você portar o Nmap para novas
plataformas, consertar bugs, e adicionar novas caracterÃsticas. Você
esta altamente encorajado para enviar suas mudanças para fyodor@inse-
cure.org para possÃveis encorporações em sua principal distribuição.
Por enviar estas mudanças para Fyodor ou uma das listas de discussão
dos desenvolvedores insecure.org, será assumido que você está ofere-
cendo nenhum limite a Fyodor, não-exclusivo direito de reusar, modi-
ficar, e relicenciar o código. Isto é importante por causa da incapaci-
dade para relicenciar códigos, isso tem causado devastadores problemas
para outros projetos de software livres (como KDE e NASM). O código
fonte do Nmap sempre estará disponÃvel. Se você desejar especificar
especiais condições de licença das suas contribuições, somente diga
quando você as enviar.
Este programa é distribuÃdo na esperança de ser útil, porém SEM NENHUMA
GARANTIA; sem mesmo implicar garantia de COMERCIABILIDADE ou ADAPTAÃÇÃÃO
PARA UM PROPÃÓSITO PARTICULAR. Veja a Licença Pública Geral GNU por
mais detalhes (esta está no arquivo COPYING da distribuição do nmap ).
Também deve ser notado que o Nmap tem sido conhecido por travar certas
aplicações pobremente escritas, pilhas TCP/IP, e mesmo certos sistemas
operacionais. O Nmap nunca deve ser executado contra sistemas crÃÃticos
de missÃão ao menos que vocÃê esteja preparado para sofrer com o tempo
ocioso. NÃós reconhecemos aqui que o Nmap pode travar seu sistema ou
rede e nÃós renunciamos todas responsabilidades por qualquer dano ou
problemas que o Nmap possa causar.
Por menosprezar os riscos de travar e por causa de vários usuários
malÃciosos gostarem de usar o Nmap para fazer o levantamento topológico
da rede antes de atacar o sistema, existem administradores que estão
preocupados e podem reclamar quando seus sistemas são scanneados. Por
isso, é muitas vezes conveniente requerer permissão antes de fazer,
mesmo que seja, um simples scan na rede.
O Nmap nunca deve ser executado com privilégios (ex.: suid root) por
razões de segurança.
Todas as versões do Nmap igual á ou maiores que 2.0 são acreditadas não
ter problemas, em todos os aspectos, com o bug do ano 2000 (Y2K).
Porém, não existe razão para acreditar que versões anteriores a 2.0 são
susceptÃveis a problemas, porém nós não as testamos.
NMAP(1)
Man(1) output converted with
man2html