Nmap Security Scanner
Intro
Ref Guide
Install Guide
Download
Changelog
Book
Docs
Security Lists
Nmap Hackers
Nmap Dev
Bugtraq
Full Disclosure
Pen Test
Basics
More
Security Tools
Pass crackers
Sniffers
Vuln Scanners
Web scanners
Wireless
Exploitation
Packet crafters
More
Site News
Site Search:
Exploit World
Advertising
About/Contact
Credits
Sponsors:
|

Qualquer ferramenta de segurança só é útil se a saída que ela gera
também o for. Testes e algorítmos complexos são de pouco valor se não
forem apresentados de uma forma organizada e compreensível. Dado o
número de formas que o Nmap é utilizado pelas pessoas e por outros
softwares, nenhum formato irá agradar a todos. Então o Nmap oferece
diversos formatos incluindo o modo interativo para humanos lerem
diretamente e o XML para fácil interpretação por um software. Além de oferecer diversos formatos de saída, o Nmap fornece opções
para controlar a verbosidade da saída assim como as mensagens de
depuração. Os tipos de saída podem ser enviados para a saída padrão
(standard output) ou para arquivos, o qual o Nmap pode acrescentar ou
então sobrescrever. Arquivos de saída também podem ser utilizados para
se retomar rastreios(scans) abortados. O Nmap torna a saída disponível em cinco formatos diferentes. O
default é chamado de saída interativa (interactive
output) e é enviada para a saída padrão (stdout). Há também a
saída normal (normal output) que é similar à
interativa excepto pelo facto de mostrar menos
informações e alertas sobre a execução uma vez que se espera que seja
feita uma análise somente após o rastreio(scan) completar, ao invés de
interativamente. A saída XML é um dos tipos de saída mais importantes pois permite
a conversão para HTML, é facilmente analisada por programas como a
interface gráfica do Nmap ou pode ser importada em banco de
dados. Os dois tipos restantes de saída são a simples saída para
o grep (grepable output) que inclui a maioria das informações
de um anfitrião(host)-alvo em uma única linha e a s4íd4 sCRiPt KiDDi3
(sCRiPt KiDDi3 0utPUt) para usuários que se consideram 1r4d0z
(|<-r4d). Embora a saída interativa seja a default e não tenha associada
nenhuma opção de linha de comando, as outras quatro opções de formato
utilizam a mesma sintaxe. Elas recebem um argumento que é o nome do
arquivo onde os resultados devem ser armazenados. Formatos múltiplos
podem ser especificados mas cada formato só pode ser especificado uma
vez. Por exemplo, pode querer armazenar a saída normal para seu uso
enquanto grava a saída XML do mesmo rastreio(scan) para análise utilizando
programas. Você pode fazer isso com as opções -oX myscan.xml -oN
myscan.nmap. Embora este capítulo use nomes simples como
myscan.xml por uma questão de brevidade, nomes mais
descritivos normalmente são recomendados. Os nomes escolhidos são uma
questão de preferência pessoal, embora eu use nomes longos que
incorporam da data do rastreio(scan) e uma palavra ou duas que descrevam o rastreio(scan),
colocados em um diretório com o nome da empresa que eu estou
rastreando. Mesmo que essas opções gravem os resultados em arquivos, o Nmap
ainda assim mostra a saída interativa na stdout como de costume. Por
exemplo, o comando nmap -oX myscan.xml target grava
em XML no myscan.xml e enche a saída padrão com os
mesmos resultados interativos que teria mostrado se a opção
-oX não tivesse sido especificada. Você pode mudar isso
passando um caracter hífen como argumento de um dos tipos de formato.
Isso faz com que o Nmap desactive a saída interativa e apenas grave os
resultados no formato que especificou para a saída padrão. Dessa
forma, o comando nmap -oX - target irá enviar apenas
a saída XML para a stdout. Erros sérios ainda podem ser mostrados na
saída padrão de erros, stderr. Ao contrário de alguns argumentos do Nmap o espaço em branco
entre a flag da opção (como a -oX) e o nome do arquivo
ou hífen é obrigatório. Se omitir as flags e informar argumentos
como -oG- ou -oXscan.xml, uma
característica de compatibilidade retroactiva do Nmap irá causar a
criação de arquivos de saída do tipo normal format
chamados G- e Xscan.xml
respectivamente. O Nmap também oferece opções para controlar a verbosidade do rastreio(scan)
e para acrescentar informações nos arquivos de saída ao invés de
sobrepor. Todas essas opções estão descritas abaixo. Formatos de Saída do Nmap -oN <especificaçãodearquivo> (Saída
normal)Solicita que a saída normal (normal
output) seja direcionada para o arquivo informado.
Conforme discutido acima, é um pouco diferente da saída
interativa (interactive output). -oX <especificaçãodearquivo> (Saída em
XML)Solicita que a saída em XML (XML output)
seja direcionada para o arquivo informado. O Nmap inclui uma
definição do tipo de documento (document type definition, DTD) que
permite que os analisadores (parsers) XML validem a saida em XML
do Nmap. Embora seja primeiramente voltada para ser usada por
programas também pode ajudar os humanos a interpretar a saída em
XML do Nmap. A DTD define os elementos válidos do formato e
geralmente enumera os atributos e valores que eles podem receber.
A última versão está sempre disponível em http://www.insecure.org/nmap/data/nmap.dtd. O XML oferece um formato estável que é facilmente
interpretado por software. Interpretadores (parsers) XML gratuitos
estão disponível para as principais linguagens de computador,
incluindo C/C++, Perl, Python e Java. As pessoas até já escreveram
extensões para a maioria dessas linguagens para manipular a saída
e a execução especificamente do Nmap. Exemplos são o Nmap::Scanner
e o Nmap::Parser em
Perl CPAN. Em quase todos os casos em que uma aplicação
não-trivial faz interface com o Nmap, o XML é o formato
preferido. A saída XML faz referência a uma folha de estilo que pode
ser usada para formatar os resultados em HTML. A forma mais fácil
de se utilizar isso é simplesmente carregar a saída XML em um
navegador web como o Firefox ou o IE. Por default, isso só irá
funcionar na máquina onde rodou o Nmap (ou em uma máquina
similarmente configurada) devido ao caminho (path) do sistema de
arquivos (filesystem) gravado de forma inalterável do
nmap.xsl. Veja a opção
--stylesheet para ver uma forma de criar um
arquivo XML portável que possa ser interpretado como um HTML em
qualquer máquina conectada à web. -oS <especificaçãodearquivo> (S4íd4
ScRipT KIdd|3)A saída script kiddie é como a saída interativa, com a
diferença de ser pós-processada para atender melhor ao "hacker de
elite" ('l33t HaXXorZ') que antigamente rejeitava o Nmap devido ao
uso consistente de maiúsculas e minúsculas e a grafia correta.
Pessoas sem senso de humor devem observar que esta opção serve
para se fazer graça dos script kiddies antes de me lixar por
estar, supostamente, “ajudando-os”. -oG <especificaçãodearquivo> (Saída
para o grep)Este formato de saída é mencionado por último porque está
depreciado. O formato de saída XML é muito mais poderoso e é
bastante adequado para usuário avançados. O XML é um padrão para o
qual existem dezenas de excelentes interpretadores (parsers)
disponíveis, enquanto que a saída para o grep é um quebra-galho
feito por mim. O XML é estensível para suportar novas
características do Nmap conforme elas forem lançadas, por outro
lado, sempre tenho que omitir essas novas características da saída
para o grep por falta de onde colocá-las. Apesar disso a saída para o grep é bastante popular. É um
formato simples que lista cada anfitrião(host) em uma linha e pode ser
pesquisado de forma trivial e interpretado por qualquer
ferramenta padrão do Unix como o grep, awk, cut, sed, diff e
Perl. Eu mesmo uso-a para testes rápidos feitos na linha de
comando. Descobrir todos os anfitriões(hosts) com a porta ssh aberta ou que
estão com o SO Solaris requer apenas um simples grep para
identificá-los, concatenado via pipe a um comando awk ou cut para
mostrar os campos desejados. A saída para o grep consiste de comentários (linhas
começadas com o símbolo #) e linhas-alvo. Uma linha-alvo inclui
uma combinação de 16 campos rotulados, separados por tab e
seguidos por dois-pontos. Os campos são Host,
Portas (Ports),Protocolos
(Protocols), Estado Ignorado (Ignored
State), SO (OS), Índice de
Seqüência (Seq Index), IPID e
Estado (Status). O campo mais importante é normalmente Portas
(Ports), que fornece detalhes de cada porta
interessante. É uma lista com a relação de portas separada por
vírgula. Cada porta representa uma porta interessante e tem o
formato de sete sub-campos separados por barra (/). Esses
sub-campos são: Número da Porta (Port number),
Estado (State), Protocolo
(Protocol), Proprietário (Owner),
Serviço (Service), informação sobre o
SunRPC (SunRPC info) e informação sobre a
Versão (Version info). Assim como na saída XML, esta página man não permite que se
documente o formato todo. Uma visão mais detalhada sobre o formato
de saída para o grep do Nmap está disponível em http://www.unspecific.com/nmap-oG-output. -oA <nome-base> (Saída para todos os
formatos)Para facilitar pode especificar -oA
<nome-base> para armazenar os
resultados de rastreio(scan) nos formatos normal, XML e para o grep de uma
só vez. Eles são armazenados nos arquivos
<nome-base>.nmap,
<nome-base>.xml e
<nome-base>.gnmap, respectivamente. Como
na maioria dos programas pode colocar como prefixo nos nomes
de arquivos o caminho de um diretório como
~/nmaplogs/foocorp/ no UNIX ou
c:\hacking\sco no Windows.
Opções de Verbosidade e depuração (debugging) -v (Aumenta o nível de verbosidade)Aumenta o nível de verbosidade fazendo com que o Nmap
mostre mais informações sobre o progresso do rastreio(scan). Portas abertas
são mostradas conforme são encontradas e estimativas de tempo
para o término são fornecidas quando o Nmap acha que um rastreio(scan) irá
demorar mais do que alguns minutos. Use duas vêzes para uma
verbosidade ainda maior. Usar mais do que duas vêzes não surte
nenhum efeito. A maioria das alterações afectam apenas a saída interactiva e
algumas também afectam a saída normal e script kiddie. Os outros
tipos de saída foram feitos para serem processados por máquinas,
então o Nmap pode dar informações bastante detalhadas por default
nesse formatos sem cansarem o usuário humano. Entretanto, existem
algumas mudanças nos outros modos onde o tamanho da saída pode ser
reduzido substancialmente pela omissão de alguns detalhes. Por
exemplo, uma linha de comentário na saída para o grep que
fornece uma lista de todas as portas rastreadas só é mostrada no
modo verboso porque ela pode ser bem longa. -d [nível] (Aumenta ou estabelece o nível de
depuração)Se mesmo o modo verboso não fornece dados suficientes para
si, o modo de depuração está disponível para inundá-lo com muito
mais! Assim como na opção de verbosidade (-v), a
depuração é habilitada com uma flag na linha de comando
(-d) e o nível de depuração pode ser aumentado
especificando-a múltiplas vêzes. Alternativamente pode
estabelecer o nível de depuração fornecendo um argumento para o
-d. Por exemplo, -d9 estabelece
o nível nove. Esse é efectivamente o nível mais alto e irá produzir
milhares de linhas a menos que execute um rastreio(scan) muito simples
com poucas portas e alvos. A saída da depuração é útil quando há a suspeita de um bug
no Nmap ou se está simplesmente confuso com o que o Nmap
está fazendo e porquê. Como esta opção é na maioria das vêzes
destinada a programadores, as linhas de depuração nem sempre são
auto-explicativas. Pode obter algo como:
Timeout vals: srtt: -1 rttvar: -1 to: 1000000
delta 14987 ==> srtt: 14987 rttvar: 14987 to:
100000. Se não entender alguma linha suas
únicas opções serão ignorá-la, procurar no código-fonte ou pedir
ajuda na lista de discussão de desenvolvimento (nmap-dev). Algumas
linhas são auto-explicativas mas as mensagens ficam cada vez mais
obscuras conforme o nível de depuração é aumentado. --packet-trace (Rastreia pacotes e dados
enviados e recebidos)Faz com que o Nmap moste um sumário de todos os pacotes
enviados ou recebidos. Isto é bastante usado para depuração mas
também é uma forma valiosa para novos usuário entenderem
exatamente o que o Nmap está fazendo por debaixo dos panos. Para
evitar mostrar milhares de linhas, pode querer especificar um
número limitado de portas a rastrear(scan) como
-p20-30. Se tudo o que lhe interessa for saber o
que se passa no subsistema de detecção de versão, 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 configuração de dispositivo (como, por
exemplo, no caso do Nmap tratar uma conexão PPP como se fosse uma
Ethernet).
Opções diversas (miscellaneous) de saída --append-output (Acrescenta no arquivo de
saída ao invés de sobrepor)Quando especifica um nome de arquivo na flag de formato
de saída, como -oX ou -oN, esse
arquivo é sobreposto por default. Se preferir manter o
conteúdo existente no arquivo e acrescentar os novos resultados,
especifique a opção --append-output. Todos os
arquivos de saída especificados na execução do Nmap terão os
resultados acrescidos ao invés de sobrepostos. Isso não funciona
bem com os dados de rastreio(scan) para XML (-oX) pois o
arquivo resultante não será adequadamente interpretado até que
consserte manualmente. --resume <nomedoarquivo> (Retoma um
rastreio(scan) abortado)Algumas execuções extensas do Nmap podem levar muito tempo,
na ordem de dias. Tais rastreios(scans) nem sempre rodam até o fim. Podem
haver restrições que impeçam que o Nmap seja executado durante o
horário de expediente, a rede pode cair, a máquina onde o Nmap
está a ser executado pode sofrer um reboot planeado ou não, ou o Nmap
pode simplesmente travar. O administrador que está executando o Nmap
poderia cancelá-lo por qualquer outra razão bastando teclar
ctrl-C. Reiniciar um rastreio(scan) inteiro do começo pode
ser indesejável. Felizmente se forem mantidos logs normais
(-oN) ou para o grep (-oG), o
usuário pode pedir que o Nmap continue o rastreio(scan) do alvo que
estava verificando quando a execução foi interrompida.
Simplesmente especifique a opção --resume e
informe o arquivo da saída normal/para o grep como argumento.
Nenhum outro argumento é permitido, pois o Nmap analisa o arquivo
de saída 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 execução anterior. Essa retomada de execução não
suporta o formato de saída XML porque combinar as duas execuções
em um arquivo XML válido seria difícil. --stylesheet <caminho ou URL> (Informa
a folha de estilo XSL usada para transformar a saída XML)O Nmap vem com uma folha de estilo (stylesheet) chamada
nmap.xsl para visualizar ou traduzir a saída
XML em HTML. A saída XML inclui uma diretiva
xml-stylesheet que mostra para o
nmap.xml onde ele foi inicialmente instalado
pelo Nmap (ou para o diretório corrente no Windows). Simplesmente
carregue a saída 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
desejar utilizar uma folha de estilo diferente, especifique-a como
um argumento para --stylesheet. Deve
informar o caminho completo ou a URL. Uma chamada comum é
--stylesheet
http://www.insecure.org/nmap/data/nmap.xsl . Isso diz ao
navegador para carregar a versão mais actual da folha de estilo da
Insecure.Org. Isso torna mais fácil ver os resultados em uma
máquina que não tenha o Nmap instalado (e consequentemente o
nmap.xsl). A URL é normalmente mais
útil mas a localização nmap.xsl num sistema de ficheiros(filesystem) local é usada
por default por questões de privacidade. --no_stylesheet (Omite do XML a declaração da
folha de estilo XSL)Especifique esta opção para evitar que o Nmap associe
qualquer folha de estilo XSL à saída XML. A directiva
xml-stylesheet é omitida.
|
|