Salvar Saída de Varredura em um Arquivo com Nikto

Kali LinuxBeginner
Pratique Agora

Introdução

Nikto é um popular scanner de servidores web de código aberto que realiza testes abrangentes contra servidores web para vários itens, incluindo mais de 6700 arquivos/programas potencialmente perigosos, verifica versões desatualizadas de mais de 1250 servidores e problemas específicos de versão em mais de 270 servidores.

Quando você executa uma varredura, os resultados são tipicamente exibidos diretamente no seu terminal. Para documentação, análise adicional ou compartilhamento com uma equipe, é essencial salvar essa saída em um arquivo. O Nikto oferece opções flexíveis para salvar relatórios de varredura em vários formatos.

Neste laboratório, você aprenderá como salvar os resultados da varredura do Nikto em um arquivo. Você praticará o salvamento da saída em formatos de texto puro (.txt) e Valores Separados por Vírgula (.csv) escaneando um servidor web simples e em execução local.

Escolha um formato de saída de texto puro

Nesta etapa, você explorará os diferentes formatos de saída que o Nikto suporta. O Nikto usa plugins para suas capacidades de relatórios, e você pode listá-los para ver os formatos disponíveis.

A opção -list-plugins mostra todos os plugins disponíveis, incluindo aqueles para relatórios. Vamos executar este comando para ver quais formatos podemos usar.

Execute o seguinte comando no seu terminal:

nikto -list-plugins

Você verá uma longa lista de plugins. Percorra a saída e procure pela seção "Reporting". Esta seção lista todos os formatos de arquivo nos quais você pode salvar os resultados da sua varredura.

...
Reporting
--------------------------------------------------
        csv - Comma-separated value
        htm - HTML Report
        json - JSON Report
        nbe - Nessus NBE format
        sql - SQL (generic)
        txt - Plain text
        xml - XML
...

Como você pode ver, txt é listado como um formato de "Plain text" (texto puro). Usaremos este formato primeiro.

Use a flag -o para especificar um nome de arquivo de saída

Nesta etapa, você aprenderá sobre a flag usada para especificar um arquivo de saída. Para dizer ao Nikto onde salvar o relatório, você usa a flag -o (ou --output).

Esta flag deve ser usada juntamente com a flag -Format, que especifica o formato de arquivo que você escolheu na etapa anterior. A sintaxe básica é:

nikto -h <alvo> -Format <formato> -o <nome_do_arquivo>

Vamos usar a opção -help para ver a descrição oficial da flag -o. Você pode canalizar a saída para grep para encontrar a linha relevante rapidamente.

Execute este comando:

nikto -help | grep -- "-o "

A saída mostrará o uso das flags -o e --output.

-o, -output <file>      Write output to this file

Agora você sabe como especificar tanto o formato quanto o nome do arquivo. Na próxima etapa, combinaremos isso para executar uma varredura e salvar os resultados.

Execute a varredura e gere o arquivo de texto

Nesta etapa, você realizará uma varredura e salvará a saída em um arquivo de texto puro. Combinaremos as flags e informações das etapas anteriores.

Nosso alvo é o servidor web local rodando na porta 8000. A URL para este servidor é http://127.0.0.1:8000.

  • Host de Destino (-h): http://127.0.0.1:8000
  • Formato (-Format): txt
  • Arquivo de Saída (-o): scan_report.txt

Agora, construa o comando completo e execute-o no seu terminal. Todas as operações devem ser realizadas no diretório padrão ~/project.

nikto -h http://127.0.0.1:8000 -Format txt -o scan_report.txt

O Nikto iniciará a varredura. Você verá o progresso da varredura no terminal, mas o relatório final será gravado no arquivo scan_report.txt. Por favor, aguarde a conclusão da varredura.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type.
...
+ 1 host(s) tested

Assim que o comando terminar, um novo arquivo chamado scan_report.txt será criado no seu diretório atual (~/project).

Verifique o conteúdo do arquivo de texto salvo

Nesta etapa, você verificará se os resultados da varredura foram salvos corretamente no arquivo de texto. Você pode usar uma ferramenta de linha de comando como cat para exibir o conteúdo do arquivo.

Execute o seguinte comando para visualizar o conteúdo de scan_report.txt:

cat scan_report.txt

A saída será o relatório completo do Nikto, que deve ser muito semelhante à saída que você viu no terminal durante a varredura.

Nikto V2.5.0
================================================================
+-----------+
| General |
+-----------+
Date: ...
Start Time: ...
End Time: ...
Version: 2.5.0
...
+-----------+
|  Target   |
+-----------+
IP: 127.0.0.1
Hostname: 127.0.0.1
Port: 8000
...
+-----------+
| Findings  |
+-----------+
+ The anti-clickjacking X-Frame-Options header is not present.
...

Você salvou com sucesso um relatório de varredura do Nikto em um arquivo de texto puro. Este arquivo agora pode ser facilmente armazenado, arquivado ou compartilhado.

Repita o processo para salvar em formato CSV

Nesta etapa, você repetirá o processo para salvar os resultados da varredura em um formato diferente: CSV (Comma-Separated Values). O formato CSV é estruturado e ideal para importar em planilhas como Excel ou LibreOffice Calc, ou para processamento com scripts.

O procedimento é quase idêntico. Você só precisa alterar o valor da flag -Format para csv e fornecer um novo nome de arquivo com a extensão .csv.

  • Host de Destino (-h): http://127.0.0.1:8000
  • Formato (-Format): csv
  • Arquivo de Saída (-o): scan_report.csv

Execute o seguinte comando para gerar o relatório em formato CSV:

nikto -h http://127.0.0.1:8000 -Format csv -o scan_report.csv

Após a conclusão da varredura, um novo arquivo chamado scan_report.csv será criado. Vamos visualizar seu conteúdo com o comando cat.

cat scan_report.csv

A saída será estruturada com campos separados por vírgula, que é o padrão para arquivos CSV.

"Host","IP","Port","Banner","Date","Vulnerability","Method","Description","Reference"
"127.0.0.1","127.0.0.1","8000","","...","OSVDB-3233: The anti-clickjacking X-Frame-Options header is not present.","GET","",""
"127.0.0.1","127.0.0.1","8000","","...","OSVDB-3092: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type.","GET","",""
...

Agora você gerou com sucesso um relatório em dois formatos diferentes, demonstrando a flexibilidade das opções de saída do Nikto.

Resumo

Neste laboratório, você aprendeu a gerenciar a saída do scanner de servidor web Nikto. Você escaneou com sucesso um servidor web local e salvou os resultados em arquivos para uso posterior.

Especificamente, você praticou:

  • Listar os formatos de saída disponíveis usando a opção -list-plugins.
  • Usar as flags -o e -Format para controlar o arquivo de saída e seu formato.
  • Gerar um relatório de varredura em texto puro (.txt).
  • Gerar um relatório de varredura em Comma-Separated Values (.csv).

Esta habilidade é fundamental para qualquer profissional de segurança que precise documentar descobertas, realizar análises offline ou integrar resultados de varredura em sistemas de relatórios maiores.