
Qualquer ferramenta de segurança só é útil se a saída que ela gera
também o for. Testes e algoritmos 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, bem como das 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 scans abortados. O Nmap torna a saída disponível em cinco formatos diferentes. O
padrão é 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 exceto pelo fato 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 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 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 padrão 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, você pode querer armazenar a saída normal para seu uso
enquanto grava a saída XML do mesmo 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 a data do scan e uma palavra ou duas que descrevam o scan,
colocados em um diretório com o nome da empresa que eu estou
escaneando. 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 desative a saída interativa e apenas grave os
resultados no formato que você 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 você omitir as flags e informar argumentos
como -oG- ou -oXscan.xml , uma
característica de compatibilidade retroativa 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 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 saída 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 https://nmap.org/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 à 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 padrão, isso só irá
funcionar na máquina onde você 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 . Utilize a opção
--webxml ou --stylesheet para
criar arquivos XML portáveis que podem ser interpretados 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 aos "hackers
de elite" (l33t HaXXorZ) que antigamente rejeitavam 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 xingar por
estar, supostamente, “ajudando-os”. -oG <especificaçãodearquivo> (Saída
para o grep)Este formato de saída é mencionado por último porque está
deprecado. 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 é extensí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 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. Em mesmo uso-a para testes rápidos feitos na linha de
comando. Descobrir todos os hosts com a porta ssh aberta ou que
estão rodando o Solaris requer apenas um simples grep para
identificá-los, concatenado via pipe a um comando awk ou cut para
mostrar os campos desejados. A 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
formato)Para facilitar, você pode especificar -oA
<nome-base> para armazenar os
resultados de scan nos formatos normal, XML e para o grep de uma
vez. Eles são armazenados nos arquivos
<nome-base> .nmap,
<nome-base> .xml e
<nome-base> .gnmap, respectivamente. Como
na maioria dos programas, você pode colocar como prefixo aos nomes
de arquivos o caminho de um 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 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 scan irá
demorar mais do que alguns minutos. Use duas vezes para uma
verbosidade ainda maior. Usar mais do que duas vezes não surte
nenhum efeito. A maioria das alterações afetam apenas a saída interativa, e
algumas também afetam 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 padrão
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 escaneadas 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
você, 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 vezes. Alternativamente, você pode
estabelecer o nível de depuração fornecendo um argumento para o
-d . Por exemplo, -d9 estabelece
o nível nove. Esse é efetivamente o nível mais alto e irá produzir
milhares de linhas, a menos que você execute um 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 você simplesmente está confuso com o que o Nmap
está fazendo e por quê. Como esta opção é, na maioria das vezes,
destinada a desenvolvedores, a linhas de depuração nem sempre são
auto-explicativas. Você pode obter algo como:
Timeout vals: srtt: -1 rttvar: -1 to: 1000000
delta 14987 ==> srtt: 14987 rttvar: 14987 to:
100000 . Se você não entender uma 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 mostre 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 baixo dos panos. Para
evitar mostrar milhares de linhas, você pode querer especificar um
número limitado de portas a escanear, 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 caracterização de dispositivo (como, por
exemplo, no caso do Nmap tratar uma conexão PPP como se fosse uma
Ethernet). --log-errors (Registrar os erros/avisos em um
arquivo de sáida em modo normal)Avisos e erros mostrados pelo Nmap normalmente aparecem
apenas na tela (saída interativa), deixando quaisquer arquivos de
saída com formato normal especificados íntegros. Mas quando você
quer realmente ver essas mensagens no arquivo de saída que você
especificou, inclua esta opção. É útil quando você não está vendo
a saída interativa ou está tentando depurar um problema. As
mensagens continuarão a aparecer no modo interativo. Isto não irá
funcionar para a maioria dos erros ligados à argumento inválidos
na linha de comando, ocorre que o Nmap pode ainda não ter
inicializado seus arquivos de saída ainda. Somado a isso, algumas
mensagens de erro/aviso do Nmap utilizam um sistema diferente que
ainda não suporta esta opção. Uma alternativa ao uso desta opção é
redirecionar a saída interativa (incluindo o fluxo de erros
padrão) para um arquivo. Embora a maioria dos shells Unix tornem
essa uma alternativa fácil, pode ser difícil fazer o mesmo no
Windows.
Opções diversas (miscellaneous) de saída --append-output (Acrescenta no arquivo de
saída, ao invés de sobrepor)Quando você especifica um nome de arquivo na flag de formato
de saída, como -oX ou -oN , esse
arquivo é sobreposto por padrão. Se você preferir manter o
conteúdo existente do 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 scan para XML (-oX ) pois o
arquivo resultante não será adequadamente interpretado até que
você conserte manualmente. --resume <nomedoarquivo> (Retoma um
scan abortado)Algumas execuções extensas do Nmap podem levar muito tempo
-- na ordem de dias. Tais 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á rodando pode sofrer um reboot planejado ou não, ou o Nmap
pode simplesmente travar. O administrador que está rodando o Nmap
poderia cancelá-lo por qualquer outra razão, bastando teclar
ctrl-C. Reiniciar um scan inteiro do começo pode
ser indesejável. Felizmente, se forem mantidas logs normal
(-oN ) ou para o grep (-oG ), o
usuário pode pedir que o Nmap continue o escaneamento 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 você
deseja utilizar uma folha de estilo diferente, especifique-a como
um argumento para --stylesheet . Você deve
informar o caminho completo ou a URL. Uma chamada comum é
--stylesheet
https://nmap.org/data/nmap.xsl . Isso diz ao
navegador para carregar a versão mais atual da folha de estilo da
Insecure.Org. A opção --webxml faz a mesma coisa
com menos teclas e menor memorização. Carregar o XSL da
Insecure.org torna mais fácil de se ver os resultados em uma
máquina que não tenha o Nmap instalado (e, conseqüentemente o
nmap.xsl ). Então, a URL é normalmente mais
útil, mas a localização nmap.xsl em um filesystem local é usada
por padrão por questões de privacidade. --webxml (Carrega a folha de estilo da
Insecure.Org)Esta opção conveniente é apenas um apelido para
--stylesheet
https://nmap.org/data/nmap.xsl . --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 diretiva
xml-stylesheet é omitida.
|
|