Nikto - um aplicativo da web vulnerabilidade e scanner CGI para servidores da web

Nikto - um aplicativo da web vulnerabilidade e scanner CGI para servidores da web

Nikto Web Scanner é outro bem ter uma ferramenta para o arsenal de qualquer administrador do Linux. É um scanner da web de código aberto lançado sob a licença GPL, que é usada para realizar testes abrangentes em servidores da web para vários itens, incluindo over 6500 Potencialmente perigoso arquivos/CGIS.

Leia sugerida: WPSEKU - Um scanner de vulnerabilidade para encontrar problemas de segurança no WordPress

Está escrito por Chris Solo e David Lodge para Vulnerabilidade Avaliação, ele verifica versões desatualizadas sobre 1250 Servidores da web e mais 270 Versão problemas específicos. Ele também digitaliza e relata o software e plugins de servidores web desatualizados.

Recursos do Nikto Web Scanner

  1. Suporta SSL
  2. Suporta proxy HTTP completo
  3. Suporta texto, HTML, XML e CSV para salvar relatórios.
  4. Digitalizar para várias portas
  5. Pode digitalizar em vários servidores recebendo entradas de arquivos como saída NMAP
  6. Apoie os IDs LibWhisker
  7. Capaz o suficiente para identificar software instalado com cabeçalhos, arquivos e favicons
  8. Logs para metasploits
  9. Relatórios para cabeçalhos "incomuns".
  10. Enumeração do usuário Apache e CGIWRAP
  11. Autentique hosts com BASIC e NTLM
  12. As varreduras podem ser expressas automaticamente em um horário especificado.

Requisitos de Nikto

Um sistema com básico Perl, Módulos Perl, OpenSSL instalação deve ativar Nikto para correr. Foi completamente testado em janelas, Mac OS X e vários Unix/Linux distribuições como chapéu vermelho, Debian, Ubuntu, Retroceder, etc.

Instalação do Nikto Web Scanner no Linux

A maioria dos sistemas Linux de hoje vem com pré-instalado Perl, Módulos Perl, e OpenSSL pacotes. Se não estiver incluído, você pode instalá -los usando o utilitário de gerenciador de pacotes do sistema padrão chamado yum ou apt-get.

Em Red Hat/Centos/Fedora
[[Email Protected]]# yum install perl perl-net-ssleay OpenSSL
Em Debian/Ubuntu/Linux Mint
[[Email Protected]]# instalação apt-get Perl OpenSSL libnet-ssleay-perl

Em seguida, clone o mais recente estábulo Nikto arquivos de origem de seu repositório do github, mova -se para Nikto/programas/ diretório e execute -o usando Perl:

$ git clone https: // github.com/sullo/nikto.git $ cd nikto/programas $ perl nikto.pl -h 
Saída de amostra
Host Opção Requer um argumento -Config+ Use este arquivo de configuração -display+ LIGUE ON/OFF Exibir saídas -DBCHECK Banco de dados e outros arquivos de chave para erros de sintaxe -Format+ Salvar arquivo (-o) Formato -Help Informações de ajuda estendida -Host+ Target Host+ Autenticação do host Para usar, o formato é ID: PASS ou ID: PASS: RealM -List -PLUGINS Liste todos os plugins disponíveis -Output+ Saída de gravação para este arquivo -nossl Desativa usando SSL -No404 Desativa 404 Verificações -Plugins+ Lista de plugins para executar (default : All) -port+ porta a ser usada (padrão 80) -ROOT+ Prenda o valor raiz de todas as solicitações, o formato é /diretório -SSl Force SSL Modo na porta -Tuning+ Scan Tuning -Timeout+ Timeout para solicitações (padrão 10 segundos) -Padate Atualizar bancos de dados e plugins do cirt.NET -VERSION Imprimir plug -in e versões de banco de dados -vhost + host virtual (para o cabeçalho do host) + requer uma nota de valor: esta é a saída de ajuda curta. Use -h para texto completo de ajuda. 

O "Host de opção requer um argumento”Está claramente dizendo que não incluímos os parâmetros necessários ao fazer um teste. Então, precisamos adicionar um parâmetro necessário para fazer uma execução de teste.

Teste básico

A varredura básica exige um host que você deseja segmentar, por padrão, digitaliza a porta 80 Se nada for especificado. O host pode ser um nome de anfitrião ou um Endereço de IP de um sistema. Você pode especificar um host usando “-h”Opção.

Por exemplo, eu quero fazer uma varredura em um IP 172.16.27.56 na porta TCP 80.

[[Email protegido] Nikto-2.1.5]# Perl Nikto.PL -H 172.16.27.56
Saída de amostra
- Nikto v2.1.5 --------------------------------------------------- ---------------------------- + IP alvo: 172.16.27.56 + Nome do host de destino: Exemplo.com + porta-alvo: 80 + Horário de início: 2014-01-10 00:48:12 (GMT5.5) -------------------------------------------------- ----------------------------- + servidor: Apache/2.2.15 (CentOS) + Cabeçalho X recuperado: PHP/5.3.3 + O cabeçalho de opções x-quadro anti-clickjacking não está presente. + Vapa de servidor Inodes via ETAGS, cabeçalho encontrado com arquivo /robôs.txt, inode: 5956160, tamanho: 24, mtime: 0x4d4865a054e32 + arquivo/dir '/' em robôs.O TXT retornou um código http não proibido ou redirecionado (200) + "robôs.txt "contém 1 entrada que deve ser vista manualmente. + Apache/2.2.15 parece estar desatualizado (a corrente é pelo menos Apache/2.2.22). Apache 1.3.42 (liberação final) e 2.0.64 também são atuais. + Vários arquivos de índice encontrados: Índice.PHP, índice.HTM, índice.HTML + Debug http verb pode mostrar informações de depuração do servidor. Veja http: // msdn.Microsoft.com/en-us/biblioteca/e8z01xdh%28Vs.80%29.ASPX para obter detalhes. + OSVDB-877: O método HTTP Trace está ativo, sugerindo que o host é vulnerável a XST + OSVDB-3233: /phpinfo.PHP: contém informações de configuração do PHP + OSVDB-12184: /ÍNDICE.php?= PHPB8B5F2A0-3C92-11D3-A3A9-4C7B08C10000: PHP revela informações potencialmente sensíveis por meio de determinadas solicitações HTTP que contêm cadeias de consulta específicas. + OSVDB-3092: /teste.HTML: Isso pode ser interessante ... + OSVDB-3268: /icons /: Indexação de diretório encontrada. + OSVDB-3233: /icons /readme: arquivo padrão apache encontrado. + /conectar.php?caminho = http: // cirt.net/rfiinc.TXT?: Potencial string de conexão de banco de dados PHP mysql encontrado. + OSVDB-3092: /teste.PHP: Isso pode ser interessante… + 6544 itens verificados: 0 Erros (s) e 16 itens relatados no host remoto + tempo de término: 2014-01-10 00:48:23 (GMT5.5) (11 segundos) -------------------------------------------- --------------------------------- + 1 host (s) testado

Se você deseja escanear em um número de porta diferente, adicione “-p”[-porta] opção. Por exemplo, eu quero fazer uma varredura no IP 172.16.27.56 na porta TCP 443.

[[Email protegido] Nikto-2.1.5]# Perl Nikto.PL -H 172.16.27.56 -P 443
Saída de amostra
- Nikto v2.1.5 --------------------------------------------------- ---------------------------- + IP alvo: 172.16.27.56 + Nome do host de destino: Exemplo.com + porta de destino: 443 ---------------------------------------------- --------------------------------- + SSL Info: Assunto: /O =*.meio dia.com/ou = controle de domínio validado/cn =*.meio dia.com cifras: dhe-rsa-aes256-gcm-sha384 emissor:/c = us/st = arizona/l = scottsdale/o = Starfield Technologies, inc./Ou = http: // certificados.StarfieldTech.com/repositório/cn = Starfield Secure Certification Authority/SerialNumber = 10688435 + Horário de início: 2014-01-10 01:08:26 (GMT5.5) -------------------------------------------------- ----------------------------- + servidor: Apache/2.2.15 (CENTOS) + vazamentos de servidores INODES via ETAGS, cabeçalho encontrado com arquivo /, inode: 2817021, tamanho: 5, mtime: 0x4d5123482b2e9 + o cabeçalho do X-Frame-opções anti-clickjacking. + Apache/2.2.15 parece estar desatualizado (a corrente é pelo menos Apache/2.2.22). Apache 1.3.42 (liberação final) e 2.0.64 também são atuais. + O servidor está usando um certificado curinga: '*.meio dia.com ' + Métodos HTTP permitidos: Get, Head, Post, Opções, Trace + OSVDB-877: o método HTTP Trace está ativo, sugerindo. + OSVDB-3233: /icons /readme: arquivo padrão apache encontrado. + 6544 itens verificados: 0 Erros (s) e 8 itens relatados no host remoto + hora de término: 2014-01-10 01:11:20 (GMT5.5) (174 segundos) -------------------------------------------- --------------------------------- + 1 host (s) testado

Você também pode especificar anfitriões, portas e protocolos usando um completo Url sintaxe, e será digitalizado.

[[Email protegido] Nikto-2.1.5]# Perl Nikto.PL -H http: // 172.16.27.56:80

Você também pode escanear qualquer site. Por exemplo, aqui eu fiz uma varredura Google.com.

[[Email protegido] Nikto-2.1.5]# Perl Nikto.pl -h http: // www.Google.com
Saída de amostra
- Nikto v2.1.5 --------------------------------------------------- ---------------------------- + IP alvo: 173.194.38.177 + Nome do host de destino: www.Google.com + porta de destino: 80 + Horário de início: 2014-01-10 01:13:36 (GMT5.5) -------------------------------------------------- ----------------------- 'Opções x-frame' encontradas, com conteúdo: MEDEORIGIN + CABELHO UNCOMUNAL 'X-XSS-Proteção' encontrado, com conteúdo: 1; MODE = bloco + cabeçalho incomum 'alternativa-protocolo' encontrado, com conteúdo: 80: quic + raiz página/redireciona para: http: // www.Google.co.em/?gws_rd = cr & ei = xirouomscoxbraee34dwcq + o banner do servidor mudou de 'gws' para 'sffe', o que pode sugerir um waf, o balanceador de carga ou proxy está em vigor + cabeçalho incomum 'x-content-type-options' Founds, com conteúdos: nosniff + + Nenhum diretório CGI encontrado (use '-c all' para forçar a verificação de todos os diretos possíveis) + arquivo/dir '/grupos/' em robôs.O TXT retornou um código HTTP não proibido ou redirecionado (302)… .

O comando acima realizará um monte de solicitações HTTP (i.e. mais do que 2000 testes) no servidor da web.

Teste de porta múltipla

Você também pode realizar várias portas digitalizando na mesma sessão. Para digitalizar várias portas no mesmo host, adicione “-p”[-porta] opção e especifique a lista de portas. As portas podem ser definidas como um intervalo (i.e., 80-443), ou como uma vírgula separada (i.e., 80.443). Por exemplo, eu quero escanear uma portas 80 e 443 no host 172.16.27.56.

[[Email protegido] Nikto-2.1.5]# Perl Nikto.PL -H 172.16.27.56 -P 80.443
Saída de amostra
- Nikto v2.1.5 --------------------------------------------------- ---------------------------- + nenhum servidor da web encontrado no CMSSTAGE.meio dia.com: 88 --------------------------------------------- ------------------------------ + IP de destino: 172.16.27.56 + Nome do host de destino: Exemplo.com + porta-alvo: 80 + Horário de início: 2014-01-10 20:38:26 (GMT5.5) -------------------------------------------------- ----------------------------- + servidor: Apache/2.2.15 (CentOS) + Cabeçalho X recuperado: PHP/5.3.3 + O cabeçalho de opções x-quadro anti-clickjacking não está presente. --------------------------------------------------------------------------- + IP alvo: 172.16.27.56 + Nome do host de destino: Exemplo.com + porta de destino: 443 ---------------------------------------------- --------------------------------- + SSL Info: Assunto: /O =*.meio dia.com/ou = controle de domínio validado/cn =*.meio dia.com cifras: dhe-rsa-aes256-gcm-sha384 emissor:/c = us/st = arizona/l = scottsdale/o = Starfield Technologies, inc./Ou = http: // certificados.StarfieldTech.com/repositório/cn = Starfield Secure Certification Authority/SerialNumber = 10688435 + Horário de início: 2014-01-10 20:38:36 (GMT5.5) -------------------------------------------------- ----------------------------- + servidor: Apache/2.2.15 (CENTOS) + todos os diretórios CGI 'encontrados', use '-c None' para testar nenhum + apache/2.2.15 parece estar desatualizado (a corrente é pelo menos Apache/2.2.22). Apache 1.3.42 (liberação final) e 2.0.64 também são atuais… 

Usando um proxy

Digamos um sistema onde Nikto está em execução apenas tem acesso ao host de destino por meio de um Http Proxy, o teste ainda pode ser realizado usando duas maneiras diferentes. Um está usando Nikto.conf arquivo e outra maneira é correr diretamente do linha de comando.

Usando Nikto.arquivo conf

Abrir Nikto.conf arquivo usando qualquer editor de linha de comando.

[[Email protegido] Nikto-2.1.5]# vi nikto.conf

Procure a variável “Proxy”E o descomamento '#'Desde o início das linhas, como mostrado. Em seguida, adicione o host proxy, porta, Usuário proxy e senha. Salve e feche o arquivo.

# Configurações de proxy -ainda deve ser ativado por -UseProxy proxyhost = 172.16.16.37 proxyport = 8080 proxyuser = pg proxyPass = pg

Agora, execute o Nikto usando "-UseProxy”Opção. Observe que todas as conexões serão transmitidas através do Http Proxy.

[Email Protected] Nikto-2.1.5]# Perl Nikto.PL -H localhost -P 80 -UseProxy
Saída de amostra
- Nikto v2.1.5 --------------------------------------------------- ---------------------------- + IP de destino: 127.0.0.1 + Nome do host de destino: localhost + porta-alvo: 80 + Horário de início: 2014-01-10 21:28:29 (GMT5.5) -------------------------------------------------- ----------------------------- + servidor: squid/2.6.Estável6 + recuperado via cabeçalho: 1.0 NetServ: 8080 (Squid/2.6.Estábulo6) + O cabeçalho de opções x-quadro anti-clickjacking não está presente. + Erro 'X-Squid-Error' incomum, com conteúdo: err_cache_access_denied 0 + cabeçalho incomum 'x-cache-lookup' encontrado, com conteúdo: nenhum do NetServ: 8080
Usando a linha de comando

Para executar o Nikto diretamente da linha de comando usando o “-UseProxy”Opção, definindo o proxy como o argumento.

[Email Protected] Nikto-2.1.5]# Perl Nikto.pl -h localhost -UseProxy http: // 172.16.16.37: 8080/
Saída de amostra
- Nikto v2.1.5 --------------------------------------------------- ---------------------------- + IP de destino: 127.0.0.1 + Nome do host de destino: localhost + porta de destino: 80 + Horário de início: 2014-01-10 21:34:51 (GMT5.5) -------------------------------------------------- ----------------------------- + servidor: squid/2.6.Estável6 + recuperado via cabeçalho: 1.0 NetServ: 8080 (Squid/2.6.Estábulo6) + O cabeçalho de opções x-quadro anti-clickjacking não está presente. + Erro 'X-Squid-Error' incomum, com conteúdo: err_cache_access_denied 0 + cabeçalho incomum 'x-cache-lookup' encontrado, com conteúdo: nenhum do NetServ: 8080

Atualizando Nikto

Você pode atualizar Nikto para o mais recente plugins e bancos de dados automaticamente, basta executar o “-atualizar”Comando.

[[Email protegido] Nikto-2.1.5]# Perl Nikto.pl -update

Se novas atualizações estiverem disponíveis, você verá uma lista de novas atualizações baixadas.

+ Recuperando 'nikto_report_csv.plugin ' + recuperação' nikto_headers.plugin ' + recuperação' nikto_cookies.plugin ' + recuperação' db_tests ' + recuperação' db_parked_strings ' + recuperação'.txt ' + cirt.Mensagem da rede: envie Nikto Bugs para http: // trac2.Assemblá.com/nikto_2/Relatório/2

Você também pode baixar e atualizar manualmente os plugins e bancos de dados do Nikto do http: // cirt.net/nikto/atualizações/.

Links de referência

Nikto Página inicial