Nmap network security scanner man page (Portuguese translation)
NMAP(1) NMAP(1)
NOME
nmap - Ferramenta de exploração de rede e scanner de segu
rança.
SYNOPSIS
nmap [Tipo(s) de Scan] [Opções] <computador ou rede #1 ...
[#N]>
DESCRICAO
Nmap é projetado para permitir aos administradores de sis
temas e indivíduos curiosos explorar grandes redes para
determinar quais computadores 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 scan
ning, detecção de portas filtradas, scanning direto de RPC
(não-portmapper), fragmentation scanning 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. Infeliz
mente, várias interfaces críticas do kernel (como os sock
ets raw) requerem privilégios de root. Nmap deve ser exe
cutado como root sempre que possível.
O resultado da execução do nmap é usualmente uma lista de
portas interessantes 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 conhecidas". 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 firewall, filtro ou outro obstáculo da rede está
cobrindo a porta e prevenindo o nmap de determinar quando
a porta está aberta. Não filtrado significa que a porta é
conhecida pelo nmap para estar fechada e nenhum fire
wall/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 por
tas exploradas estão no estado filtrado.
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 operacional é usada para
abrir uma conexão para toda porta interessante na
máquina. Se a porta está no estado listening, con
nect() 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 van
tagem desta técnica de scanning é que poucos sites
irão registra-lá no arquivo de log. Desafortunada
mente é 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 é clandes
tina 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 molestados.
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 Win
dows95/NT. Do lado positivo, 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 win
dows. 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, bloqueiam 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écnicas do ICMP e a do flag ACK em par
alelo. 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 scan
neados. Somente use esta opção se você desejar vas
culhar 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 docu
mentada 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 por
tas 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 mensagens 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 "aber
tos".
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 ajudar 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 repor
tado 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, OpenStep, QNX,
Rhapsody, SunOS 4.X, Ultrix, VAX, and VxWorks.
Vejam no arquivo, na lista de discussão nmap-hack
ers, a lista completa.
-sR RPC scan. Este método trabalha em combinação com
várias técnicas 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 tra
balha 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 "carac
terística" do protocolo 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 internet hoje, nós não
podemos ter pessoas hijacking servidores ftp e req
uisitando 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 servidor ftp per
mitir 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 é: username: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
atualizada está disponível em nmap URL
(http://www.insecure.org/nmap).
OPÇÕES GERAIS
Nenhuma destas são requeridas, porém algumas podem
ser absolutamente 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
connect(). 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 fil
trada.
-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 computadores. Estes devem ser eliminados se
encontrado, como ele permitem 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 quantidade 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
é comparada com sua base de dados de conhecidos
fingerprints de SOs (o arquivo nmap-os-finger
prints) 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 sis
temas operacionais 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 conecta
dos 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 scan
ning -sT). Quando -I é usada, o identd do host
remoto é pesquisado para cada porta aberta encon
trada. 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 frag
mentos IP (como a opção CONFIG_IP_ALWAYS_DEFRAG no
kernel do linux), várias redes não conseguem asse
gurar 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 recomen
dada 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 colocar
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 argu
mento. Este simples formato provê todas as
informações em uma linha (então você pode facil
mente 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á suprimida. 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, interrupção da rede, etc. pode ser resumido
usando esta opção. O logfilename 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
scanneada 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 pro
tocolos 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 catalogadas 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 precisarão repor
tar 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 scanneando 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 opcionalmente '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 inun
dar com pacotes SYN seu alvo. Também, ele será
muito fácil para determinar quais hosts estão scan
neando 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 portas" 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 fil
tram pacotes spoofed, embora vários (correntemente
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á scan
neando. Imagine uma companhia 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 scan
neando 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 con
juntos de regras para permitir pacotes DNS (53) ou
FTP-DATA (20) para entrar e estabelecer a conexão.
Obviamente 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 req
uisiçã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 perfor
mance 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 moni
toraçã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 caracterí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 objetivos. 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 con
venientemente 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 par
alelo) 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 testar 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 acon
tecem 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 scanneando um simples host antes de desistir
daquele IP. O modo de tempo default não tem o time
out do host.
--max_rtt_timeout <milliseconds>
Especifica a soma máxima de tempo do Nmap tem per
mitido 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 estima
tivas 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 scann
ear 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 pre
cisa 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 sim
ples são registrados simples 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 especi
ficado). 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ê especificar 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 terminam 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 exemplos.
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 usa
dos para tornar as coisas mais concretas. 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 é
ilegal; nem deve o scanneamento de portas ser feito por
outros como um ataque. Eu tenho scanneado centenas de mil
hares de máquinas e tenho recebido somente uma reclamação.
Porém eu não sou advogado e alguma pessoa pode estar irri
tado pelos testes do nmap
nmap -v target.example.com
Esta opção faz o scan de todas as portas TCP reservadas na
máquina target.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 possibilidades 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 acon
tece 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, é interes
sante, 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 servidores 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ísticos porque essa parte tem uma alta den
sidade 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 company.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 coman
dos/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 encon
trado.
AUTOR
Fyodor <fyodor@insecure.org>
TRADUTOR
Antônio Pires de Castro Jr <apcastro@ic.unicamp.br>;
<apcastro@ondefor.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 tradutor.
DISTRIBUIÇÃO
A mais nova versão do nmap pode ser obtida em
http://www.insecure.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
original está disponível em ftp://ftp.ee.lbl.gov/libp
cap.tar.Z .
Este programa é um software livre; você pode redis
tribuí-lo e/ou modificá-lo sobre os termos da Licença
Pública Geral GNU como publicado pelo Free Software Foun
dation; Versão 2. Esta garante seu direito de usar, modi
ficar 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@insecure.org).
O código de origem é fornecido para este software porque
nós acreditamos que os usuários tem o direito de conhecer
exatamente qual o programa ele irá usar antes de exe
cutá-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 car
acterísticas. Você esta altamente encorajado para enviar
suas mudanças para fyodor@insecure.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á oferecendo nenhum limite a Fyodor, não-exclusivo
direito de reusar, modificar, e relicenciar o código. Isto
é importante por causa da incapacidade para relicenciar
códigos, isso tem causado devastadores problemas para out
ros 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 PARTICU
LAR. 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 respon
sabilidades 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 acred
itar que versões anteriores a 2.0 são susceptíveis a prob
lemas, porém nós não as testamos.
NMAP(1)
Man(1) output converted with
man2html