Escaneamento de Vulnerabilidades no Kali com Nikto

Kali LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os fundamentos do escaneamento de vulnerabilidades web usando o Nikto, uma poderosa ferramenta de código aberto, dentro de um ambiente Kali Linux. O objetivo é entender como identificar potenciais problemas de segurança em servidores web executando varreduras, interpretando resultados e salvando relatórios para análise posterior. Através de exercícios passo a passo na VM do LabEx, você obterá experiência prática com a interface de linha de comando do Nikto. Este laboratório foi projetado para iniciantes, orientando você por cada processo em um ambiente de contêiner controlado para construir habilidades fundamentais em avaliações de segurança web.

Este é um Laboratório Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível intermediário com uma taxa de conclusão de 65%. Ele recebeu uma taxa de avaliação positiva de 94% dos alunos.

Configurando o Ambiente e Instalando o Nikto

Nesta primeira etapa, você configurará seu ambiente de trabalho no contêiner Kali Linux e garantirá que o Nikto, o scanner de vulnerabilidades web, esteja instalado e pronto para uso. Este laboratório é conduzido dentro da VM do LabEx e, ao abrir o terminal, você será conectado automaticamente ao shell do contêiner Kali Linux. Não há necessidade de iniciar manualmente o contêiner ou entrar no shell; o ambiente já está configurado para você.

Vamos começar entendendo a configuração. A VM do LabEx roda em um host de nuvem independente com Docker pré-instalado, e um contêiner Kali Linux foi configurado para rodar automaticamente. Todas as suas operações ocorrerão dentro do terminal deste contêiner. O Nikto é uma ferramenta usada para escanear servidores web em busca de vulnerabilidades, como softwares desatualizados ou configurações incorretas, e precisamos garantir que ele esteja instalado antes de prosseguir.

Primeiro, atualize a lista de pacotes no contêiner Kali Linux para garantir que você tenha as informações mais recentes sobre os softwares disponíveis. Execute o seguinte comando no terminal:

apt update

Este comando busca as informações de pacotes mais recentes dos repositórios configurados. Pode levar alguns instantes para ser concluído, e você verá uma saída indicando o progresso, como o download das listas de pacotes. Um exemplo de saída seria:

Get:1 http://mirrors.cloud.aliyuncs.com/kali kali-rolling InRelease [30.9 kB]
Get:2 http://mirrors.cloud.aliyuncs.com/kali kali-rolling/main amd64 Packages [18.1 MB]
...
Fetched 18.5 MB in 5s (3,700 kB/s)
Reading package lists... Done

Assim que a atualização for concluída, instale o Nikto caso ele ainda não esteja presente no contêiner. Use o seguinte comando para instalá-lo:

apt install -y nikto iputils-ping

A flag -y confirma automaticamente a instalação sem solicitar interação. Este processo pode levar um pouco de tempo, e você verá a saída mostrando o progresso da instalação, como o download e a configuração do pacote. Um exemplo de saída poderia ser:

Reading package lists... Done
Building dependency tree... Done
...
Setting up nikto (1:2.1.5-3.1) ...

Após a instalação, verifique se o Nikto foi instalado corretamente checando sua versão. Execute este comando:

nikto -Version

Este comando exibe a versão instalada do Nikto, confirmando que ele está pronto para uso. A saída esperada deve ser semelhante a esta:

Nikto 2.5.0 (LW 2.5)

Com o Nikto instalado, você está pronto para prosseguir para as próximas etapas, onde o utilizará para escanear servidores web. Esta etapa garante que seu ambiente esteja devidamente configurado e que as ferramentas necessárias estejam disponíveis para as tarefas seguintes.

Executando uma Varredura Web Básica com Nikto

Agora que o Nikto está instalado em seu contêiner Kali Linux, você aprenderá como executar uma varredura básica de vulnerabilidades web. Esta etapa baseia-se na configuração do ambiente da etapa anterior e introduz o uso do Nikto para identificar potenciais problemas de segurança em um servidor web. Como você já está no shell do contêiner Kali Linux ao abrir o terminal na VM do LabEx, não há necessidade de iniciar ou entrar manualmente no contêiner.

Vamos entender o que uma varredura básica do Nikto faz. O Nikto verifica um servidor web alvo em busca de vulnerabilidades comuns, como versões de software desatualizadas ou configurações incorretas que poderiam ser exploradas. Para este laboratório, usaremos um servidor de teste acessível publicamente, testphp.vulnweb.com, que foi projetado para aprendizado e prática de escaneamento de vulnerabilidades. Isso garante que estejamos realizando a varredura de maneira ética e segura.

Para começar, execute uma varredura básica no servidor de teste usando o Nikto. Digite o seguinte comando no terminal:

nikto -h testphp.vulnweb.com

A opção -h especifica o host a ser escaneado, neste caso, testphp.vulnweb.com. Esta varredura pode levar alguns minutos para ser concluída, dependendo das condições da rede e da configuração do alvo. Durante a varredura, você verá a saída no terminal mostrando o progresso. Um exemplo de saída seria:

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          44.228.249.3
+ Target Hostname:    testphp.vulnweb.com
+ Target Port:        80
+ Start Time:         2025-04-21 07:29:12 (GMT0)
---------------------------------------------------------------------------
+ Server: nginx/1.19.0
+ /: Retrieved x-powered-by header: PHP/5.6.40-38+ubuntu20.04.1+deb.sury.org+1.
...
---------------------------------------------------------------------------
+ 1 host(s) tested

Ao escanear testphp.vulnweb.com com o nikto, você pode encontrar mensagens de erro. Isso é esperado; concentre-se nas informações principais.

Esta saída fornece informações iniciais sobre o alvo, como seu endereço IP, nome de host e porta. Ela também lista problemas potenciais, como cabeçalhos de segurança ausentes ou componentes desatualizados. Não se preocupe se a saída parecer detalhada; o foco aqui é executar a varredura e observar o processo. Nas próximas etapas, analisaremos esses resultados mais de perto.

Se a varredura não iniciar ou nenhuma saída aparecer, certifique-se de que sua conexão com a internet esteja ativa dentro da VM do LabEx. Você pode testar a conectividade com o alvo executando:

ping -c 4 testphp.vulnweb.com

Este comando envia alguns pacotes ao alvo para verificar se ele está alcançável. Se você vir respostas, o servidor está acessível; caso contrário, tente a varredura novamente ou verifique suas configurações de rede na VM do LabEx.

PING testphp.vulnweb.com (44.228.249.3) 56(84) bytes of data.
64 bytes from ec2-44-228-249-3.us-west-2.compute.amazonaws.com (44.228.249.3): icmp_seq=1 ttl=55 time=21.4 ms
64 bytes from ec2-44-228-249-3.us-west-2.compute.amazonaws.com (44.228.249.3): icmp_seq=2 ttl=55 time=21.7 ms
64 bytes from ec2-44-228-249-3.us-west-2.compute.amazonaws.com (44.228.249.3): icmp_seq=3 ttl=55 time=21.5 ms
64 bytes from ec2-44-228-249-3.us-west-2.compute.amazonaws.com (44.228.249.3): icmp_seq=4 ttl=55 time=21.5 ms

--- testphp.vulnweb.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 21.435/21.523/21.699/0.103 ms

Esta etapa introduziu você à execução de uma varredura básica do Nikto, estabelecendo a base para escaneamentos e análises mais específicos nas etapas seguintes. Você executou o comando de varredura e observou a saída inicial diretamente no terminal do contêiner Kali Linux.

Usando Opções de Ajuste do Nikto para Escaneamento Direcionado

Com base na varredura básica realizada na etapa anterior, você aprenderá agora como realizar escaneamentos mais direcionados usando as opções de ajuste (tuning) do Nikto. O Nikto permite que você foque suas varreduras em tipos específicos de vulnerabilidades, o que é útil quando você está procurando por problemas particulares ou deseja reduzir o tempo de escaneamento.

Nesta etapa, você aprenderá a usar o recurso de ajuste do Nikto para personalizar suas varreduras no ambiente do contêiner Kali Linux.

Primeiro, vamos entender quais opções de ajuste estão disponíveis no Nikto. Você pode visualizar a lista completa de opções de ajuste disponíveis com o seguinte comando:

nikto -h testphp.vulnweb.com -Display V

A opção -Display V mostra uma saída detalhada, incluindo informações de ajuste. Na saída, você verá diferentes categorias de teste rotuladas com números e letras.

Agora, vamos executar uma varredura direcionada focando em vulnerabilidades comuns relacionadas a arquivos. Execute o seguinte comando:

nikto -h testphp.vulnweb.com -Tuning 2

A opção -Tuning 2 testa especificamente vulnerabilidades de exposição de arquivos (file disclosure). Esta varredura pode levar alguns minutos para ser concluída, e você verá uma saída no terminal semelhante à seguinte:

- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP:          44.228.249.3
+ Target Hostname:    testphp.vulnweb.com
+ Target Port:        80
---------------------------------------------------------------------------
+ Server: nginx/1.19.0
+ Scanning for File Upload vulnerabilities...
+ Multiple file upload fields found on login.php
...

Você também pode combinar várias opções de ajuste. Por exemplo, para escanear tanto por exposição de arquivos (2) quanto por vulnerabilidades de configuração incorreta (9), use:

nikto -h testphp.vulnweb.com -Tuning 2,9

Esta varredura combinada verificará ambas as categorias de problemas, oferecendo uma visão mais abrangente de tipos específicos de vulnerabilidades sem a necessidade de executar uma varredura completa.

Se a varredura falhar em produzir saída ou encontrar erros, certifique-se de que sua conexão com a internet esteja ativa testando a conectividade com:

ping -c 4 testphp.vulnweb.com

Esta etapa ajudou você a entender como usar as opções de ajuste do Nikto para realizar escaneamentos mais direcionados, permitindo focar em preocupações de segurança específicas. Nas próximas etapas, exploraremos recursos adicionais do Nikto que aprimoram suas capacidades de escaneamento de vulnerabilidades.

Personalizando Formatos de Saída e Salvando Resultados da Varredura

Após aprender a realizar escaneamentos direcionados com o Nikto, você explorará agora como personalizar os formatos de saída e salvar os resultados da varredura para documentação e análise. Documentar adequadamente suas descobertas é um aspecto crucial das avaliações de segurança, e o Nikto oferece várias opções para formatar e salvar seus resultados.

Nesta etapa, você aprenderá a gerar relatórios em diferentes formatos diretamente no terminal do contêiner Kali Linux.

Vamos começar examinando as diferentes opções de formato de saída que o Nikto oferece. Os formatos mais comuns são:

  1. Text (padrão): Saída em texto simples
  2. HTML: Relatório HTML formatado
  3. CSV: Valores separados por vírgula para importação em planilhas
  4. XML: Dados XML estruturados para processamento automatizado

Para salvar os resultados da varredura no formato de texto padrão, execute:

nikto -h testphp.vulnweb.com -o /root/nikto_text_report.txt

A opção -o especifica o caminho do arquivo de saída. Após a conclusão da varredura, verifique se o arquivo foi criado visualizando seu conteúdo:

cat /root/nikto_text_report.txt

Para gerar um relatório HTML, que fornece um formato mais legível e estruturado, use:

nikto -h testphp.vulnweb.com -Format htm -o /root/nikto_report.html

A opção -Format htm instrui o Nikto a formatar a saída como HTML. Embora você não possa visualizar o arquivo HTML diretamente no terminal, você pode verificar se ele foi criado:

ls -l /root/nikto_report.html

Para dados que precisam ser importados para outras ferramentas ou planilhas, você pode gerar um relatório no formato CSV:

nikto -h testphp.vulnweb.com -Format csv -o /root/nikto_report.csv

Após a conclusão da varredura, verifique o arquivo CSV:

head /root/nikto_report.csv

Isso exibirá as primeiras linhas do arquivo CSV, mostrando como os dados estão estruturados.

Estes diferentes formatos de saída servem a propósitos distintos:

  • Relatórios de texto são fáceis de ler em um terminal.
  • Relatórios HTML são visualmente organizados e bons para compartilhar com equipes.
  • Formatos CSV e XML são excelentes para importação em outras ferramentas de segurança ou bancos de dados.

Ao aprender a personalizar os formatos de saída, você aprimorou sua capacidade de documentar e comunicar suas descobertas de forma eficaz.

Opções Avançadas do Nikto para Escaneamento Profundo

Nesta etapa final, você explorará algumas opções avançadas do Nikto que permitem um escaneamento mais profundo e abrangente. Esses recursos ajudam a descobrir vulnerabilidades ocultas e fornecem mais contexto sobre potenciais problemas de segurança. Isso amplia o conhecimento das etapas anteriores, focando nas capacidades avançadas do Nikto dentro do ambiente do contêiner Kali Linux.

Vamos explorar algumas das opções avançadas mais úteis no Nikto:

Primeiro, vamos usar a técnica de -evasion para contornar sistemas simples de detecção de intrusão. Isso pode ser útil ao testar controles de segurança:

nikto -h testphp.vulnweb.com -evasion 1

A opção -evasion 1 codifica a URL usando caracteres aleatórios em maiúsculas e minúsculas. Você poderá ver uma saída semelhante a:

- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP:          44.228.249.3
+ Target Hostname:    testphp.vulnweb.com
+ Target Port:        80
+ Evasion technique:  Random URI encoding (non-UTF8)
---------------------------------------------------------------------------
+ Server: nginx/1.19.0
...

Em seguida, vamos escanear com uma porta e protocolo específicos. Embora tenhamos escaneado a porta HTTP padrão 80, você pode especificar portas diferentes:

nikto -h testphp.vulnweb.com -port 443 -ssl

A opção -port 443 foca na porta 443, e -ssl instrui o Nikto a usar o protocolo HTTPS. Para este servidor de teste, isso pode não retornar resultados caso o HTTPS não esteja habilitado, mas demonstra como escanear serviços web seguros.

Para sites que exigem autenticação, o Nikto oferece opções para lidar com a autenticação HTTP básica:

nikto -h testphp.vulnweb.com -id admin:password

A opção -id permite especificar credenciais no formato usuario:senha. Para o servidor de teste, essas credenciais não funcionarão, mas isso mostra como configurar varreduras autenticadas.

Você também pode aumentar a verbosidade da varredura para obter informações mais detalhadas:

nikto -h testphp.vulnweb.com -Display V -o /root/nikto_verbose_report.txt

A opção -Display V fornece uma saída detalhada, mostrando mais pormenores sobre cada teste realizado. Salvar isso em um arquivo com -o oferece uma documentação abrangente da varredura.

Finalmente, vamos combinar várias opções para uma varredura completa:

nikto -h testphp.vulnweb.com -Tuning x -no404 -Format htm -o /root/final_report.html

Neste comando:

  • -Tuning x testa tudo, exceto vulnerabilidades de DoS (Negação de Serviço).
  • -no404 reduz falsos positivos ao não reportar erros 404.
  • -Format htm salva o relatório no formato HTML.
  • -o especifica o arquivo de saída.

Esta etapa introduziu você a várias opções avançadas do Nikto que expandem suas capacidades de escaneamento de vulnerabilidades web. Ao combinar essas diferentes técnicas, você pode realizar avaliações de segurança minuciosas e gerar relatórios abrangentes adaptados às suas necessidades específicas.

Resumo

Neste laboratório, você aprendeu a usar o Nikto, um poderoso scanner de vulnerabilidades web, dentro de um ambiente Kali Linux. Você começou configurando o ambiente e instalando o Nikto, progredindo então através de técnicas de escaneamento cada vez mais sofisticadas.

Você iniciou com varreduras básicas para identificar vulnerabilidades comuns em um servidor de teste e, em seguida, aprendeu a realizar escaneamentos direcionados usando as opções de ajuste do Nikto para focar em tipos específicos de vulnerabilidades. Você explorou diferentes formatos de saída, incluindo texto, HTML e CSV, para documentar e comunicar suas descobertas de forma eficaz.

Por fim, você descobriu opções avançadas para escaneamento profundo, incluindo técnicas de evasão, especificação de porta e protocolo, manipulação de autenticação e saída detalhada. Essas habilidades fornecem uma base sólida para a condução de avaliações de segurança web, seja para fins educacionais ou testes de segurança profissionais.

A experiência prática adquirida neste laboratório equipa você com o conhecimento prático da interface de linha de comando do Nikto e a capacidade de personalizar varreduras de acordo com seus requisitos específicos. Estas são habilidades essenciais para qualquer pessoa interessada em segurança web e avaliação de vulnerabilidades.