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.
Embora executar uma varredura seja útil, ser capaz de salvar os resultados em um formato claro, legível e compartilhável é crucial para profissionais de segurança. O Nikto pode exportar resultados de varredura em vários formatos, sendo o HTML um dos mais convenientes para análise.
Neste laboratório, você aprenderá como executar uma varredura Nikto contra um servidor web alvo e gerar um relatório HTML bem estruturado.
Especificar o formato HTML usando -Format html
Nesta etapa, você aprenderá como especificar o formato de saída para sua varredura Nikto. O Nikto pode gerar relatórios em vários formatos e, para este laboratório, focaremos no HTML, que é altamente legível e fácil de navegar.
A opção -Format é usada para informar ao Nikto qual formato de relatório usar. Para gerar um relatório HTML, você deve especificar html como argumento para esta opção.
Vamos começar explorando o menu de ajuda do Nikto para ver as opções de formato.
nikto -Help | grep Format
Você deverá ver uma saída que lista os formatos disponíveis, incluindo html.
-Format Scan report format (csv, htm, msf+, nbe, sql, txt, xml)
A sintaxe para especificar o formato HTML é simplesmente -Format html. Combinaremos isso com outras flags nas próximas etapas para construir nosso comando completo.
Use a flag -o para o arquivo HTML de saída
Nesta etapa, você aprenderá como especificar o arquivo onde o Nikto deve salvar o relatório. Simplesmente definir o formato como HTML imprimirá o código HTML bruto no seu terminal, o que não é muito útil. Você precisa direcionar essa saída para um arquivo.
A flag -o (ou --output) é usada para esse propósito. Você fornece o nome de arquivo desejado como argumento para esta flag.
Vamos combinar isso com a flag de formato da etapa anterior. Nomearemos nosso arquivo de relatório como nikto_report.html e o salvaremos no diretório atual (~/project). Também precisamos especificar o alvo a ser escaneado usando a flag -h (ou --host). Para este laboratório, nosso alvo é o servidor web local em execução em http://127.0.0.1:8000.
A estrutura completa do comando ficará assim:
nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html
Executaremos este comando completo na próxima etapa. Por enquanto, apenas se familiarize com a estrutura e o propósito de cada flag.
Execute a varredura para criar o relatório
Agora é hora de juntar tudo e executar a varredura. Usaremos o comando que construímos nas etapas anteriores para escanear nosso servidor web local e salvar os resultados em um arquivo HTML.
Execute o seguinte comando no seu terminal. A varredura pode levar alguns momentos para ser concluída.
nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html
Durante a varredura, o Nikto exibirá seu progresso no terminal. A saída será semelhante a esta:
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: 127.0.0.1
+ Target Port: 8000
+ Start Time: 2023-10-27 10:30:00
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.12
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ 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)
+ "robots.txt" not found.
+ OSVDB-3233: /: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ 7528 requests: 0 error(s) and 5 item(s) reported on remote host
+ End Time: 2023-10-27 10:30:15
+ (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Após a conclusão da varredura, você pode verificar se o arquivo de relatório foi criado listando os arquivos no diretório atual.
ls -l nikto_report.html
Você deverá ver o arquivo nikto_report.html listado na saída.
-rw-r--r-- 1 labex labex 21435 Oct 27 10:30 nikto_report.html
Abra o arquivo HTML gerado em um navegador web
Nesta etapa, você abrirá o arquivo nikto_report.html gerado para visualizar seu conteúdo. Como é um arquivo HTML, a melhor maneira de visualizá-lo é em um navegador web.
O ambiente LabEx inclui o navegador web Firefox. Você pode abrir o relatório diretamente do terminal executando o comando firefox seguido pelo nome do arquivo.
Execute o seguinte comando. Isso iniciará o Firefox e abrirá seu relatório.
firefox nikto_report.html
Uma nova janela do Firefox deverá aparecer na sua tela, exibindo o relatório da varredura do Nikto. Se a janela aparecer atrás do seu terminal, talvez seja necessário mover a janela do terminal para vê-la.
Navegue pelas diferentes seções do relatório HTML
Esta etapa final envolve explorar o relatório que você acabou de abrir no Firefox. O relatório HTML gerado pelo Nikto é estruturado para ser claro e informativo.
Reserve um momento para observar as diferentes partes do relatório:
- Scan Details (Detalhes da Varredura): No topo, você encontrará um resumo da varredura, incluindo o IP de destino, nome do host, porta e a hora em que a varredura foi realizada.
- Vulnerabilities Table (Tabela de Vulnerabilidades): A parte principal do relatório é uma tabela listando todas as descobertas. Cada linha representa um problema potencial.
- Key Columns (Colunas Principais): Preste atenção à coluna
URI, que mostra o caminho afetado, e à colunaDescription(Descrição), que explica a descoberta. Muitas descobertas incluem um link (geralmente um ID OSVDB) que você pode clicar para obter informações mais detalhadas sobre essa vulnerabilidade específica.
Clique em alguns dos links no relatório para ver como eles fornecem contexto adicional. Familiarizar-se com essa estrutura de relatório é uma habilidade fundamental para analisar os resultados de varreduras de segurança. Esta etapa é para observação, portanto, não há comandos para executar.
Resumo
Neste laboratório, você aprendeu a usar o Nikto para gerar um relatório abrangente de vulnerabilidades de servidor web em formato HTML.
Você praticou o uso da opção -Format html para especificar o tipo de relatório e o sinalizador -o para salvar a saída em um arquivo chamado nikto_report.html. Finalmente, você abriu e navegou pelo relatório gerado em um navegador web, aprendendo a interpretar o resumo da varredura e as descobertas detalhadas.
Essa habilidade é essencial para documentar e comunicar avaliações de segurança de forma eficaz.


