Reproduzir e Reformatar uma Varredura Anterior no 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.

Uma varredura completa do Nikto pode consumir tempo, especialmente em aplicações web grandes e complexas. Se você precisar dos resultados da varredura em vários formatos (por exemplo, um para um relatório técnico e outro para uma apresentação), executar a varredura repetidamente é ineficiente. O Nikto oferece um recurso poderoso para salvar os resultados da varredura e, em seguida, "reproduzi-los" para gerar relatórios em diferentes formatos sem re-escanear o alvo.

Neste laboratório, você aprenderá como realizar uma varredura inicial, salvar os resultados em um arquivo XML e, em seguida, usar a opção -replay para gerar eficientemente um novo relatório em formato HTML.

Realizar uma varredura e salvar a saída em um arquivo XML

Nesta etapa, você realizará uma varredura básica do Nikto em um servidor web de teste local. A chave é salvar a saída em um arquivo em um formato estruturado, como XML, que o Nikto pode analisar posteriormente. Usaremos a opção -o para especificar um arquivo de saída e -Format para definir o tipo de arquivo.

Primeiro, certifique-se de estar no diretório ~/project. Nosso script de configuração já iniciou um servidor web simples em localhost na porta 8000.

Agora, execute o seguinte comando em seu terminal para escanear o servidor web local e salvar os resultados em um arquivo chamado scan_results.xml:

nikto -h http://localhost:8000 -o scan_results.xml -Format xml

Vamos detalhar este comando:

  • nikto: O comando para executar o scanner Nikto.
  • -h http://localhost:8000: Especifica o host (alvo) a ser escaneado.
  • -o scan_results.xml: Especifica o nome do arquivo de saída.
  • -Format xml: Instruí o Nikto a salvar a saída em formato XML.

A varredura levará um momento para ser concluída. Você verá uma saída em seu terminal semelhante à seguinte (os detalhes podem variar):

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ 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.
+ No CGI directories found (use '-C all' to force check all possible dirs)
+ Allowed HTTP Methods: GET, HEAD, OPTIONS
+ Public HTTP Methods: GET, HEAD, OPTIONS
...
+ 1 host(s) tested

Após a conclusão do comando, um arquivo chamado scan_results.xml será criado em seu diretório atual (~/project).

Usar a opção -replay com o arquivo XML salvo

Nesta etapa, você aprenderá a usar o recurso -replay do Nikto. Esta opção permite que o Nikto analise um arquivo de varredura XML previamente salvo e exiba os achados sem se conectar novamente ao servidor alvo. Isso é incrivelmente útil para revisar rapidamente os resultados ou para situações em que o alvo não está mais online.

Para reproduzir a varredura que você acabou de salvar, use o seguinte comando:

nikto -replay scan_results.xml

Este comando instrui o Nikto a ler o arquivo scan_results.xml e exibir os achados no terminal. A saída será quase idêntica à saída do terminal da varredura original, mas será gerada instantaneamente a partir do arquivo.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ 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

Observe a rapidez com que o comando é concluído. Isso demonstra que o Nikto está lendo do arquivo local, não realizando uma nova varredura de rede.

Usar -Format htm para gerar um novo relatório HTML

Nesta etapa, você combinará a opção -replay com a opção -Format para gerar um relatório em um novo formato. Este é o cerne da lição deste laboratório: você pode pegar uma varredura salva e produzir vários tipos de relatórios a partir dela.

Digamos que você agora precise de um relatório HTML bem formatado para uma apresentação. Você pode gerá-lo diretamente do seu arquivo scan_results.xml salvo.

Execute o seguinte comando:

nikto -replay scan_results.xml -o report.html -Format htm

Aqui está a descrição do novo comando:

  • nikto -replay scan_results.xml: Esta parte é a mesma da etapa anterior; ela instrui o Nikto a usar os dados salvos.
  • -o report.html: Isso especifica um novo arquivo de saída chamado report.html.
  • -Format htm: Isso instrui o Nikto a formatar a saída como um arquivo HTML.

Este comando será executado muito rapidamente e produzirá uma saída mínima no terminal, pois ele está escrevendo o relatório diretamente no arquivo report.html.

- Nikto v2.5.0
+ 1 host(s) tested

Agora você gerou com sucesso um novo relatório em um formato diferente sem re-escanear o alvo.

Verificar se o novo relatório foi criado sem re-escanear

Nesta etapa, você verificará se o novo arquivo de relatório HTML foi criado e confirmará que ele contém conteúdo HTML válido. Isso reforça o entendimento de que o comando anterior gerou um relatório baseado em arquivo.

Primeiro, liste os arquivos em seu diretório atual (~/project) para ver o relatório recém-criado.

ls -l

Você deverá ver tanto o arquivo XML original quanto o novo arquivo HTML na saída:

total 12
-rw-r--r-- 1 labex labex  68 ... index.html
-rw-r--r-- 1 labex labex ... ... report.html
-rw-r--r-- 1 labex labex ... ... scan_results.xml

Em seguida, para verificar rapidamente o conteúdo do novo relatório, você pode usar o comando head para visualizar as primeiras linhas do arquivo report.html.

head report.html

A saída mostrará o início de um documento HTML, confirmando que o arquivo foi criado corretamente.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Nikto Report</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style type="text/css">
...

A observação mais importante é a velocidade. O comando na Etapa 3 terminou quase instantaneamente, enquanto a varredura original na Etapa 1 levou um tempo notável. Esta é a prova definitiva de que você está reformatando dados existentes, não realizando uma nova e demorada varredura.

Compreender a eficiência de reproduzir resultados salvos

Nesta etapa final, você solidificará seu entendimento da eficiência obtida ao usar o recurso de reprodução. Imagine que você também precise dos resultados em formato CSV (Comma-Separated Values) para importar em uma planilha para análise posterior. Em vez de executar outra varredura, você pode simplesmente gerar outro relatório do mesmo arquivo scan_results.xml.

Execute o seguinte comando para criar um relatório CSV:

nikto -replay scan_results.xml -o report.csv -Format csv

Este comando é estruturado da mesma forma que o de HTML, mas especifica um novo nome de arquivo (report.csv) e um novo formato (csv). Novamente, ele será concluído em segundos.

Agora, liste os arquivos novamente para ver todos os relatórios gerados:

ls -l

Você verá agora três arquivos de relatório, todos gerados a partir de uma única varredura:

total 16
-rw-r--r-- 1 labex labex  68 ... index.html
-rw-r--r-- 1 labex labex ... ... report.csv
-rw-r--r-- 1 labex labex ... ... report.html
-rw-r--r-- 1 labex labex ... ... scan_results.xml

Este fluxo de trabalho — escanear uma vez, relatar muitas vezes — é um pilar da avaliação de vulnerabilidades eficiente. Para varreduras em larga escala que podem levar horas, este recurso economiza uma quantidade enorme de tempo e recursos computacionais, permitindo que você se concentre na análise dos resultados em vez de esperar que as varreduras sejam concluídas.

Resumo

Neste laboratório, você aprendeu um fluxo de trabalho altamente eficiente para trabalhar com os resultados de varredura do Nikto. Você realizou com sucesso uma varredura de servidor web e salvou suas descobertas em um arquivo XML. Em seguida, você usou a poderosa opção -replay para analisar esses dados salvos e gerar novos relatórios em diferentes formatos (HTML e CSV) sem a necessidade de reexecutar a varredura de rede demorada.

Os principais comandos e conceitos que você praticou são:

  • nikto -h [host] -o [file.xml] -Format xml: Para realizar uma varredura e salvar os resultados.
  • nikto -replay [file.xml] -o [new_report] -Format [htm/csv/txt]: Para gerar novos relatórios a partir de dados salvos.

Esta técnica de separar a fase de varredura da fase de relatórios é crucial para testes e análises de segurança eficientes.