Introdução
Nikto é um poderoso 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.
Por padrão, o Nikto executa uma ampla gama de plugins, o que pode consumir tempo. Para uma varredura mais eficiente e direcionada, você pode selecionar plugins específicos para executar. Isso é útil quando você deseja verificar uma vulnerabilidade particular ou um tipo específico de configuração incorreta.
Neste laboratório, você aprenderá como listar todos os plugins Nikto disponíveis e, em seguida, executar uma varredura focada usando um único plugin específico.
Listar todos os plugins disponíveis usando -list-plugins
Nesta etapa, você aprenderá como visualizar todos os plugins que o Nikto tem disponíveis para varredura. Este é o primeiro passo para realizar uma varredura focada, pois você precisa saber os nomes dos plugins que pode escolher.
A opção -list-plugins instrui o Nikto a imprimir uma lista detalhada de todos os plugins e, em seguida, sair, sem realizar uma varredura.
Execute o seguinte comando no seu terminal para listar todos os plugins disponíveis:
nikto -list-plugins
Você verá uma longa lista de plugins passando. A saída é formatada em colunas mostrando o nome do plugin, o autor e uma breve descrição de seu propósito.
Aqui está um exemplo truncado do que a saída parecerá:
- Nikto 2.5.0
---------------------------------------------------------------------------
Plugin: apache_expect_header
Author: David Lodge <dave at cirt.net>
Description: See if an Expect header will crash Apache. Bugtraq ID 5253.
Type: Standard
Version: 2.5.0
CVSID: $Id: apache_expect_header.plugin,v 1.6 2023/03/28 17:00:00 cirt Exp $
Plugin: apacheusers
Author: Chris Forte
Description: Enumerate apache users via ~user requests
Type: Standard
Version: 2.5.0
CVSID: $Id: apacheusers.plugin,v 1.6 2023/03/28 17:00:00 cirt Exp $
... (muitos mais plugins) ...
Reserve um momento para percorrer a lista para ter uma ideia da variedade de testes que o Nikto pode realizar.
Escolher um plugin específico para executar, por exemplo, apacheusers
Nesta etapa, revisaremos a lista da etapa anterior e escolheremos um plugin específico para nossa varredura focada. Este é um passo conceitual onde você identifica um plugin com base em um objetivo de teste específico.
Para este laboratório, escolheremos o plugin apacheusers. Como sua descrição afirma, este plugin tenta "Enumerar usuários do Apache via requisições ~user". Este é um teste comum para verificar se um servidor web expõe nomes de usuário válidos do sistema.
Mesmo que nosso servidor de destino seja um servidor Python simples e não o Apache, usaremos este plugin para demonstrar o processo de seleção e execução. O plugin será executado, mas não encontrará nenhuma vulnerabilidade em nosso servidor não-Apache, o que é um resultado válido e esperado.
Na próxima etapa, você aprenderá como construir o comando para usar apenas este plugin.
Use a opção -plugins com o nome do plugin desejado
Nesta etapa, você aprenderá como construir o comando Nikto para executar apenas o plugin que você selecionou.
Para especificar quais plugins executar, você usa a opção -plugins seguida pelo nome do plugin. Você também pode fornecer uma lista de plugins separados por vírgula se quiser executar mais de um, mas para este laboratório, focaremos em um único plugin.
A estrutura básica do comando é:
nikto -h <host_alvo> -plugins <nome_do_plugin>
Para o nosso plugin escolhido, apacheusers, e nosso servidor de teste rodando localmente na porta 8000, o comando será:
nikto -h 127.0.0.1:8000 -plugins apacheusers
Vamos detalhar este comando:
nikto: O programa que estamos executando.-h 127.0.0.1:8000: A opção-h(host) especifica o alvo. Nosso servidor de teste está rodando na máquina local (127.0.0.1) na porta8000.-plugins apacheusers: Esta é a parte chave do comando. Ela diz ao Nikto para executar apenas o pluginapacheuserse pular todos os outros.
Na próxima etapa, você executará este comando e verá os resultados da varredura focada.
Executar a varredura focada no alvo
Nesta etapa, você executará o comando que acabou de aprender para realizar uma varredura focada contra o servidor web de teste.
Execute o seguinte comando em seu terminal. Isso iniciará o Nikto, mas em vez de rodar por vários minutos, ele será concluído muito rapidamente porque está executando apenas um único plugin.
nikto -h 127.0.0.1:8000 -plugins apacheusers
A saída será muito mais curta do que uma varredura Nikto padrão. Ela se parecerá com algo assim:
- Nikto 2.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 (GMT0)
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ Allowed HTTP Methods: GET, HEAD
+ 1 host(s) tested
+ 0 error(s) and 0 item(s) reported on remote host
+ End Time: 2023-10-27 10:30:01 (GMT0) (1 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Observe a rapidez com que a varredura terminou. Isso demonstra a principal vantagem de usar plugins específicos para testes direcionados.
Analisar a saída específica do plugin
Nesta etapa final, vamos analisar a saída da nossa varredura focada. Esta é uma habilidade crucial em testes de segurança – entender o que os resultados significam.
Observe novamente a saída da etapa anterior:
- Nikto 2.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
...
+ 0 error(s) and 0 item(s) reported on remote host
+ End Time: ...
---------------------------------------------------------------------------
+ 1 host(s) tested
A linha mais importante para nossa análise é:
+ 0 error(s) and 0 item(s) reported on remote host
Esta linha nos diz que o plugin apacheusers foi executado, mas não encontrou nenhuma das condições para as quais foi projetado para detectar. Este é o resultado esperado porque nosso alvo é um servidor Python, não um servidor Apache configurado para expor diretórios de usuários.
Em testes de penetração, um resultado negativo (não encontrar vulnerabilidade) é tão importante quanto um positivo. Isso significa que, para este teste específico, o servidor parece estar seguro. Ao executar apenas o plugin apacheusers, conseguimos confirmar isso de forma rápida e eficiente, sem o ruído e o tempo de uma varredura completa.
Resumo
Parabéns por completar este laboratório!
Você aprendeu com sucesso como realizar uma varredura focada com o Nikto, selecionando um plugin específico. Esta técnica é essencial para avaliações de segurança web eficientes e direcionadas.
Neste laboratório, você praticou as seguintes habilidades:
- Listar todos os plugins Nikto disponíveis usando a opção
-list-plugins. - Entender como escolher um plugin relevante para um teste específico.
- Usar a opção
-pluginspara instruir o Nikto a executar apenas o(s) plugin(s) especificado(s). - Executar uma varredura focada e analisar a saída concisa e específica do plugin.
Ao dominar esta habilidade, você pode acelerar significativamente seu fluxo de trabalho de testes e concentrar seus esforços nas vulnerabilidades que mais importam para um determinado alvo.


