ArtigosOffensive

Nikto Web Scanner

Nesse post iremos falar um pouco sobre o Nikto, um scanner open source licenciado pela GPL, ele varre seu alvo procurando por vulnerabilidades, versões , CGI’s, inclui também um banco de dados no formato CSV, Suporta plugins externos, uso de proxys, além de muitas outras funcionalidades, ele é um ótima ferramenta para o arsenal de qualquer administrador Linux.

Ele foi escrito por Chris Solo e David Lodge para validação de vulnerabilidades, ele verifica se há versões desatualizadas em mais de 1250 servidores web, ele também procura e mostra se há softwares e plugins desatualizados no servidor web.

Características do Nikto Web Scanner

  • Supports SSL
  • Supports full http proxy
  • Supports text, HTML, XML and CSV to save reports.
  • Scan for multiple ports
  • Can scan on multiple server by taking inputs from files like nmap output
  • Support LibWhisker IDS
  • Capable enough to identify installed software with headers, files and favicons
  • Logs for Metasploits
  • Reports for “unusual ” headers.
  • Apache and cgiwrap user enumeration
  • Authenticate hosts with Basic and NTLM
  • Scans can be Auto-paused at specified time.

Vamos instalar e testar essa ferramenta, a maioria das distribuições Linux hoje em dia vem com Perl, Perl Modules e OpenSSL pré-instalados, se sua distribuição não vem com esses pacotes você pode obtê-los via apt-get.

# apt-get install perl openssl libnet-ssleay-perl

Depois baixe o pacote do repositório oficial:

# wget http://www.cirt.net/nikto/nikto-2.1.5.tar.gz

Agora, descopacte o arquivo e acesse o diretório:

# tar -xvf nikto-2.1.5.tar.gz && cd nikto-2.1.5

Agora iremos dar permissão de execução para o arquivo e atualizar o nosso Nikto:

# chmod +x nikto.pl
# ./nikto.pl -update

Depois de atualizar de uma olhada das opções de parâmetro:

# ./nikto.pl

Você vai receber a seguinte saída:

– Nikto v2.1.5

—————————————————————————

ERROR: No host specified

       -config+ Use this config file
       -Display+ Turn on/off display outputs
       -dbcheck check database and other key files for syntax errors
       -Format+ save file (-o) format
       -Help Extended help information
       -host+ target host
       -id+ Host authentication to use, format is id:pass or id:pass:realm
       -list-plugins List all available plugins
       -output+ Write output to this file
       -nossl Disables using SSL
       -no404 Disables 404 checks
       -Plugins+ List of plugins to run (default: ALL)
       -port+ Port to use (default 80)
       -root+ Prepend root value to all requests, format is /directory
       -ssl Force ssl mode on port
       -Tuning+ Scan tuning
       -timeout+ Timeout for requests (default 10 seconds)
       -update Update databases and plugins from CIRT.net
       -Version Print plugin and database versions
       -vhost+ Virtual host (for Host header)
                + requires a value       

Note: This is the short help output. Use -H for full help text.

Para executar testes básicos você deve usar a opção -h para definir o alvo, por padrão a porta de destino é a 80.

#./nikto.pl -h 192.168.0.55

Se você deseja verificar uma outra porta como a 443 por exemplo, você pode utilizar a opção -p.

# ./nikto.pl -h 192.168.0.55 -p 443

Você também pode especificar alvos, portas e protocolos usando a URL completa:

# ./nikto.pl -h http://192.168.0.55:443

Caso deseje utilizar o domínio, basta especificá-lo no alvo. (Utilizei o google apenas como exemplo)

# ./nikto.pl -h http://www.google.com

Para especificar mais de uma porta basta executar:

# ./nikto.pl -h 192.168.0.55 -p 80,443

Uma outra opção legal é a -C all, ela força a checagem de todos os diretórios em busca de CGI

# ./nikto.pl -C all -h 192.168.0.55 -p 443

Caso queira salvar a saída em um arquivo, utilize a opção -o

# ./nikto.pl -C all -h 192.168.0.55 -p 443 -o scan_teste.txt

Outra coisa muito importante é utilizar proxy para manter o anonimato, abra o arquivo nikto.conf

# pico nikto.conf

Procure pelas entradas abaixo, descomente e informe o ip e porta do proxy que deseja usar:

# Proxy settings -- still must be enabled by -useproxy
 PROXYHOST=192.168.0.155
 PROXYPORT=8118

 Agora para realizar o scanner utilizando o proxy basta adicionar a opção -useproxy

# ./nikto.pl -h 192.168.0.55 -p 443 -useproxy

Você também pode utilizar o endereço de proxy como argumento:

# ./nikto.pl -h 192.168.0.55 -p 443 -useproxy http://192.168.0.155:8118/

Uma dica que eu aconselho é sempre procurar entender o que é cada saída que vocês irão ver, as vulnerabilidades e warning são catalogadas em um banco de dados OSVDB então procure ver no site osvdb.org, por exemplo, o que é cada item que vocês irão encontrar.

É isso ai, aproveitem a dica e usem com responsabilidade acima de tudo.

Ricardo Galossi
Siga me
Últimos posts por Ricardo Galossi (exibir todos)

Ricardo Galossi

É um apaixonado por segurança da informação, atua profissionalmente há mais de 7 anos na área de tecnologia da informação, onde é focado em análise de vulnerabilidades e testes de invasão. Criou o blog Guia do TI para compartilhar conhecimento, ajudar os mais novos, incentivar debates e manter a comunidade atualizada com as principais notícias da área de TI.

2 comentários sobre “Nikto Web Scanner

  • Saudações,

    Não consigo executar o nikto, ao tentar executar o programa ou até mesmo atualizar com o comando # ./nikto.pl -update recebo o seguinte erro:

    Can’t locate /var/lib/nikto/plugins/JSON-PP.pm in @INC (you may need to install the ::var::lib::nikto::plugins::JSON-PP module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at ./nikto.pl line 60.

    Como posso resolver isso?

    Resposta

Deixe seu comentário