Scan de vulnerabilidades web com Nikto
- Gustavo Viana
- Segurança ofensiva
- 16 de abril de 2024
Nikto é uma ferramenta gratuita e de código aberto que busca por vulnerabilidades conhecidas e problemas de configuração em servidores web. Dentre as falhas identificadas estão, por exemplo, versões desatualizadas de software, arquivos e diretórios com permissões excessivas e configurações inseguras.
Lembre-se que esta é uma ferramenta automatizada e não encontrará vulnerabilidades mais complexas. Além disso, serão enviadas muitas requisições ao servidor web alvo. Por isso, tenha cautela ao executar qualquer scanner automatizado e tenha sempre a autorização para fazê-lo.
TL;DR
Uso básico gerando um relatório no formato HTML:
nikto -h site-exemplo.ironlinux.com.br -o report.html
Instalação
No Kali Linux o Nikto já vem instalado, mas abaixo estão outros métodos de instalação:
- Baixar script do Git
- Docker
Clone o repositório do Github:
git clone https://github.com/sullo/nikto
Execute o script nikto.pl:
perl nikto/program/nikto.pl -h http://site-exemplo.ironlinux.com.br
Baixe o projeto do Git e realizar o docker build:
git clone https://github.com/sullo/nikto.git
cd nikto
docker build -t sullo/nikto .
Execute-o diretamente para que seja apresentado informações de ajuda:
docker run --rm sullo/nikto
Uso básico:
docker run --rm sullo/nikto -h http://site-exemplo.ironlinux.com.br
Para salvar o relatório em um formato específico, monte o /tmp como um volume:
docker run --rm -v $(pwd):/tmp sullo/nikto -h site-exemplo.ironlinux.com.br -o /tmp/out.json
Uso básico
Para realizar um scan de vulnerabilidades com output padrão na tela, basta executar:
nikto -h site-exemplo.ironlinux.com.br
Para realizar um scan nas portas 80,443,8080 e 8000 por exemplo, execute:
nikto -h site-exemplo.ironlinux.com.br -p 80,443,8080,8000
Caso queira um output para um relatório no formato HTML e alterar o User Agent das requisições para “Teste-Nikto”:
nikto -h site-exemplo.ironlinux.com.br -o relatorio.html -useragent "Teste-Nikto"
Trabalhando com plugins
O nikto tem diversos plugins que são utilizados durante os scans. Caso você queira utilizar um plugin específico, você pode primeiramente listar os plugins disponíveis através do comando abaixo:
nikto -list-plugins
E, para executar apenas um plugin específico (por exemplo o plugin do shellshock):
nikto -h site-exemplo.ironlinux.com.br -Plugins shellshock
Outros parâmetros interessantes
Parâmetro | Descrição |
---|---|
-nossl | Não usar SSL para conectar-se ao servidor |
-ssl | Força o uso do SSL durante os testes |
-pause [valor] | Adicionar um delay entre os testes (em segundos) |
-root [valor] | Adiciona o valor em questão ao diretório root que será escaneado (por exemplo /wordpress) |
-vhost [valor] | Especifica o Header Host nas requisições |
-id [usuário:senha] | Especifica uma credencial para Basic Authentication |
Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !