Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
skipfish — Scanner de segurança de aplicações web criado por lcamtuf para o Google - Mirror Não Oficial | Kitploit
Ferramentas/GitHubGitHub/spinkham/skipfish
ReconhecimentoScanners de VulnerabilidadesScanners de Vulnerabilidades WebAnálise Dinâmica (Sandboxing)Exploração de Aplicações WebColeta de InformaçõesSegurança WebFuzzingTestes de PenetraçãoRastreador
GitHub
87216669há 13 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
spinkham/skipfish

skipfish

Scanner de segurança de aplicações web criado por lcamtuf para o Google - Mirror Não Oficial

Ver RepositórioSite
Compartilhar
===========================================
skipfish - scanner de segurança de aplicações web
===========================================

  http://code.google.com/p/skipfish/

  * Escrito e mantido por:

      Michal Zalewski <[email protected]>
      Niels Heinen <[email protected]>
      Sebastian Roschke <[email protected]>

  * Copyright 2009 - 2012 Google Inc, todos os direitos reservados.

  * Lançado sob os termos e condições da Licença Apache, versão 2.0.

--------------------
1. O que é o skipfish?
--------------------

Skipfish é uma ferramenta ativa de reconhecimento de segurança de aplicações web. Ela
prepara um sitemap interativo para o site alvo através de um
rastreamento recursivo e sondagens baseadas em dicionários. O mapa resultante é então
anotado com a saída de uma série de verificações de segurança ativas (mas, espera-se,
não disruptivas). O relatório final gerado pela ferramenta tem a intenção de
servir como base para avaliações profissionais de segurança de aplicações web.

-------------------------------------------------
2. Por que devo me preocupar com esta ferramenta em particular?
-------------------------------------------------

Uma série de ferramentas comerciais e de código aberto com funcionalidades análogas está
prontamente disponível (por exemplo, Nikto, Nessus); use a que melhor se adequar a
você. Dito isso, o skipfish tenta resolver alguns dos problemas comuns
associados a scanners de segurança web. Vantagens específicas incluem:

  * Alta performance: 500+ requisições por segundo contra alvos responsivos na
    Internet, 2000+ requisições por segundo em redes LAN/MAN e 7000+ requisições
    contra instâncias locais foram observadas, com uma pegada muito modesta de CPU,
    rede e memória. Isso pode ser atribuído a:

    * Multiplexação de thread única, modelo de processamento de dados e I/O de rede
      totalmente assíncrono, que elimina ineficiências de gerenciamento de memória,
      escalonamento e IPC presentes em alguns clientes multithread.

    * Recursos avançados de HTTP/1.1, como requisições de intervalo, compressão de
      conteúdo e conexões keep-alive, além de limitação forçada do tamanho da resposta,
      para manter a sobrecarga de rede sob controle.

    * Cache inteligente de respostas e heurísticas avançadas de comportamento do
      servidor são usadas para minimizar o tráfego desnecessário.

    * Implementação em C puro, orientada a desempenho, incluindo uma pilha
      HTTP personalizada.

  * Facilidade de uso: o skipfish é altamente adaptável e confiável. O scanner possui:

    * Reconhecimento heurístico de esquemas obscuros de manipulação de parâmetros de
      caminho e consulta.

    * Tratamento elegante de sites com múltiplos frameworks, onde certos caminhos
      obedecem a semânticas completamente diferentes ou estão sujeitos a regras de
      filtragem diferentes.

    * Construção automática de lista de palavras com base na análise de conteúdo do site.

    * Recursos de varredura probabilística para permitir avaliações periódicas e com
      limite de tempo de sites arbitrariamente complexos.

    * Verificações de segurança bem projetadas: a ferramenta visa fornecer resultados
      precisos e significativos:

      * Dicionários artesanais oferecem excelente cobertura e permitem testes
        minuciosos de $keyword.$extension em um prazo razoável.

      * Sondagens diferenciais de três etapas são preferidas a verificações de
        assinatura para detectar vulnerabilidades.

      * Lógica estilo Ratproxy é usada para identificar problemas de segurança sutis:
        cross-site request forgery, cross-site script inclusion, mixed content,
        problemas de incompatibilidade de MIME e charset, diretivas de cache incorretas, etc.

      * As verificações de segurança incluídas são projetadas para lidar com cenários
        complicados: XSS armazenado (caminho, parâmetros, cabeçalhos), injeção cega de
        SQL ou XML ou injeção cega de shell.

      * Assinaturas de conteúdo estilo Snort que destacarão erros de servidor,
        vazamentos de informações ou aplicações web potencialmente perigosas.

      * O pós-processamento do relatório reduz drasticamente o ruído causado por
        quaisquer falsos positivos restantes ou truques de servidor, identificando
        padrões repetitivos.

Dito isso, o skipfish não é uma bala de prata e pode ser inadequado para certos
propósitos. Por exemplo, ele não satisfaz a maioria dos requisitos descritos
no WASC Web Application Security Scanner Evaluation Criteria (alguns deles de
propósito, outros por necessidade); e, diferentemente da maioria dos outros projetos
deste tipo, ele não vem com um extenso banco de dados de vulnerabilidades conhecidas
para verificações do tipo banner.

-----------------------------------------------------
3. Muito curioso! Quais testes específicos estão implementados?
-----------------------------------------------------

Uma lista aproximada das verificações de segurança oferecidas pela ferramenta está descrita abaixo.

  * Falhas de alto risco (potencialmente levando ao comprometimento do sistema):

    * Injeção de consulta no servidor (incluindo vetores cegos, parâmetros numéricos).
    * Sintaxe explícita do tipo SQL em parâmetros GET ou POST.
    * Injeção de comando de shell no servidor (incluindo vetores cegos).
    * Injeção de XML / XPath no servidor (incluindo vetores cegos).
    * Vulnerabilidades de format string.
    * Vulnerabilidades de estouro de inteiros.
    * Locais que aceitam HTTP PUT.

  * Falhas de risco médio (potencialmente levando ao comprometimento de dados):

    * Vetores de XSS armazenado e refletido no corpo do documento (suporte mínimo a JS XSS).
    * Vetores de XSS armazenado e refletido via redirecionamentos HTTP.
    * Vetores de XSS armazenado e refletido via divisão de cabeçalho HTTP.
    * Directory traversal / LFI / RFI (incluindo vetores limitados).
    * POIs de arquivos variados (códigos-fonte do servidor, configurações, etc).
    * Vetores de inclusão de script e CSS fornecidos pelo atacante (armazenados e refletidos).
    * Vetores de inclusão de script e CSS externos não confiáveis.
    * Problemas de mixed content em recursos de script e CSS (opcional).
    * Formulários de senha enviados de ou para páginas não SSL (opcional).
    * Tipos MIME incorretos ou ausentes em renderizáveis.
    * Tipos MIME genéricos em renderizáveis.
    * Charsets incorretos ou ausentes em renderizáveis.
    * Informações conflitantes de MIME / charset em renderizáveis.
    * Diretivas de cache ruins em respostas que definem cookies.

  * Problemas de baixo risco (impacto limitado ou baixa especificidade):

    * Vetores de bypass de listagem de diretório.
    * Redirecionamento para URLs fornecidas pelo atacante (armazenado e refletido).
    * Conteúdo incorporado fornecido pelo atacante (armazenado e refletido).
    * Conteúdo incorporado externo não confiável.
    * Mixed content em subrecursos não scriptáveis (opcional).
    * Envio de formulários HTML de HTTPS -> HTTP (opcional).
    * Credenciais HTTP em URLs.
    * Certificados SSL expirados ou ainda não válidos.
    * Formulários HTML sem proteção XSRF.
    * Certificados SSL autoassinados.
    * Incompatibilidade de nome de host do certificado SSL.
    * Diretivas de cache ruins em conteúdo menos sensível.

  * Avisos internos:

    * Tentativas de busca de recursos com falha.
    * Limites de rastreamento excedidos.
    * Verificações de comportamento 404 com falha.
    * Filtragem IPS detectada.
    * Variações inesperadas de resposta.
    * Nós de rastreamento aparentemente mal classificados.

  * Entradas informacionais não específicas:

    * Informações gerais do certificado SSL.
    * Cookies HTTP que mudam significativamente.
    * Cabeçalhos Server, Via ou X-... em mudança.
    * Novas assinaturas 404.
    * Recursos que não podem ser acessados.
    * Recursos que exigem autenticação HTTP.
    * Links quebrados.
    * Erros de servidor.
    * Todos os links externos não classificados de outra forma (opcional).
    * Todos os e-mails externos (opcional).
    * Todos os redirecionadores de URL externos (opcional).
    * Links para protocolos desconhecidos.
    * Campos de formulário que não puderam ser autocompletados.
    * Formulários de entrada de senha (para força bruta externa).
    * Formulários de upload de arquivo.
    * Outros formulários HTML (não classificados de outra forma).
    * Nomes de arquivo numéricos (para força bruta externa).
    * Links fornecidos pelo usuário, caso contrário renderizados em uma página.
    * Tipo MIME incorreto ou ausente em conteúdo menos significativo.
    * Tipo MIME genérico em conteúdo menos significativo.
    * Charset incorreto ou ausente em conteúdo menos significativo.
    * Informações conflitantes de MIME / charset em conteúdo menos significativo.
    * Convenções de passagem de parâmetros do tipo OGNL.

Junto com uma lista de problemas identificados, o skipfish também fornece visões
gerais dos tipos de documentos e tipos de problemas encontrados; e um sitemap
interativo, com nós descobertos por força bruta denotados de forma distinta.

NOTA: Como uma decisão de design consciente, o skipfish não reclamará redundantemente
sobre problemas altamente inespecíficos, incluindo, mas não se limitando a:

  * Cookies não httponly ou não seguros,
  * Formulários não HTTPS ou com autocomplete habilitado,
  * Comentários HTML detectados em uma página,
  * Divulgação de caminho do sistema de arquivos em mensagens de erro,
  * Divulgação da versão do servidor ou framework,
  * Servidores que suportam requisições TRACE ou OPTIONS,
  * Mera presença de certas tecnologias, como WebDAV.

A maioria desses aspectos é fácil de inspecionar em um relatório, se desejado - por
exemplo, todos os formulários HTML são listados separadamente, assim como novos cookies ou
cabeçalhos HTTP interessantes - e a expectativa é que o auditor possa optar por
fazer certas recomendações de design com base nesses dados, quando apropriado.
Dito isso, essas ocorrências não são destacadas como uma falha de segurança específica.

-----------------------------------------------------------
4. Tudo bem, quero experimentar. O que preciso saber?
-----------------------------------------------------------

Primeiro e acima de tudo, por favor, não seja mau. Use o skipfish apenas contra serviços
que você possui ou para os quais tem permissão de testar.

Tenha em mente que todos os tipos de teste de segurança podem ser disruptivos. Embora
o scanner seja projetado para não realizar ataques maliciosos, ele pode
acidentalmente interferir nas operações do site. Você deve aceitar o
risco e planejar adequadamente. Execute o scanner contra instâncias de teste quando
possível e esteja preparado para lidar com as consequências se algo der errado.

Observe também que a ferramenta é destinada a profissionais de segurança e é de
natureza experimental. Ela pode retornar falsos positivos ou perder problemas
de segurança óbvios - e mesmo quando opera perfeitamente, ela simplesmente não foi
projetada para ser um aplicativo do tipo aponte e clique. Não aceite sua saída como
verdade absoluta.

Executar a ferramenta contra sites de demonstração fornecidos por fornecedores não é uma boa
maneira de avaliá-la, pois eles geralmente aproximam vulnerabilidades de forma muito imperfeita;
não fizemos nenhum esforço para acomodar esses casos.

Por último, o scanner simplesmente não foi projetado para lidar com servidores HTTP
maliciosos ou com mau comportamento - e não oferece garantias de comportamento seguro (ou
sensato) nesses casos.

--------------------------
5. Como executar o scanner?
--------------------------

Para compilá-lo, basta descompactar o arquivo e tentar make. Provavelmente, você
precisará instalar o libidn primeiro.

Em seguida, você precisa ler as instruções fornecidas em doc/dictionaries.txt
para selecionar o arquivo de dicionário correto e configurá-lo corretamente. Esta etapa tem um 
impacto profundo na qualidade dos resultados da varredura posteriormente, então não a pule.

Depois de selecionar o dicionário, você pode usar -S para carregar esse dicionário,
e -W para especificar um arquivo inicialmente vazio para quaisquer palavras-chave recém-aprendidas
específicas do site (que serão úteis em avaliações futuras):

$ touch new_dict.wl
$ ./skipfish -o output_dir -S existing_dictionary.wl -W new_dict.wl \
  http://www.example.com/some/starting/path.txt

Você pode usar -W- se não quiser armazenar palavras-chave aprendidas automaticamente em lugar algum.

Observe que você pode fornecer mais de uma URL inicial, se desejar; todas
elas serão rastreadas. Também é possível ler URLs de um arquivo, usando
a seguinte sintaxe:

$ ./skipfish [...outras opções...] @../path/to/url_list.txt

A ferramenta exibirá algumas estatísticas úteis enquanto a varredura estiver em andamento. Você
também pode alternar para uma lista de requisições HTTP em andamento pressionando enter.

No exemplo acima, o skipfish irá escanear todo o www.example.com
(incluindo serviços em outras portas, se vinculados a partir da página principal), e
escreverá um relatório em output_dir/index.html. Você pode então visualizar este relatório com
seu navegador favorito (o JavaScript deve estar habilitado; e por causa de
melhorias recentes de segurança do file:/// em certos navegadores, você pode precisar acessar
os resultados via HTTP). O arquivo index.html é estático; os resultados reais são armazenados
como uma hierarquia de arquivos JSON, adequados para processamento por máquina ou diferentes
frontends de apresentação, se necessário. Além disso, uma lista de todas as URLs
descobertas será salva em um único arquivo, pivots.txt, para fácil pós-processamento.

Um script simples complementar, sfscandiff, pode ser usado para calcular um delta para
duas varreduras executadas contra o mesmo alvo com os mesmos sinalizadores. O relatório
mais recente será anotado de forma não destrutiva, adicionando fundo vermelho a todos
os nós novos ou alterados; e fundo azul a todos os problemas novos ou alterados
encontrados.

Alguns sites podem exigir autenticação, para a qual nosso suporte é descrito
em doc/authentication.txt. Na maioria dos casos, você desejará usar o
método de autenticação de formulário, que é capaz de detectar sessões quebradas
para reautenticar.

Uma vez autenticado, certas URLs no site podem encerrar sua sessão;
você pode combater isso de duas maneiras: usando a opção -N, que faz com que
o scanner rejeite tentativas de definir ou excluir cookies; ou com o parâmetro
-X, que impede que URLs correspondentes sejam buscadas:

$ ./skipfish -X /logout/logout.aspx ...outros parâmetros...

A opção -X também é útil para acelerar suas varreduras, excluindo /icons/,
/doc/, /manuals/ e outros locais padrão e mundanos ao longo dessas linhas. Em
geral, você pode usar -X e -I (rastrear apenas URLs que contenham uma substring) para
limitar o escopo de uma varredura da maneira que desejar - incluindo restringi-la apenas a
um protocolo e porta específicos:

$ ./skipfish -I http://example.com:1234/ ...outros parâmetros...

Uma função relacionada, -K, permite que você especifique nomes de parâmetros para não fuzzar
(útil para aplicações que colocam IDs de sessão na URL, para minimizar ruído).

Outra opção de escopo útil é -D - permitindo que você especifique hosts ou domínios
adicionais a serem considerados dentro do escopo para o teste. Por padrão, todos os hosts
que aparecem nas URLs da linha de comando são adicionados à lista - mas você pode usar -D
para ampliar essas regras, por exemplo:

$ ./skipfish -D test2.example.com -o output-dir http://test1.example.com/

...ou, para uma correspondência curinga de domínio, use:

$ ./skipfish -D .example.com -o output-dir http://test1.example.com/

Em alguns casos, você não deseja realmente rastrear um domínio de terceiros, mas
confia no proprietário desse domínio o suficiente para não se preocupar com a inclusão de
conteúdo entre domínios a partir desse local. Para suprimir avisos, você pode usar a
opção -B, por exemplo:

$ ./skipfish -B .google-analytics.com -B .googleapis.com ...outros
parâmetros...

Por padrão, o skipfish envia cabeçalhos HTTP minimalistas para reduzir a quantidade de
dados trocados pela rede; no entanto, alguns sites examinam strings User-Agent ou a ordem dos
cabeçalhos para rejeitar clientes não suportados. Nesse caso, você pode usar
-b ie, -b ffox ou -b phone para imitar um dos dois navegadores populares (ou
iPhone).

Quando se trata de personalizar suas requisições HTTP, você também pode usar a opção
-H para inserir quaisquer cabeçalhos adicionais e não padrão; ou -F para definir um
mapeamento personalizado entre um host e um IP (ignorando o resolvedor). Este último
recurso é particularmente útil para serviços ainda não lançados ou legados.

Alguns sites podem ser grandes demais para serem escaneados em um prazo razoável. Se o site
apresentar tarpits bem definidos - por exemplo, 100.000 perfis de usuário quase idênticos
como parte de uma rede social - esses locais específicos podem ser
excluídos com -X ou -S. Em outros casos, você pode precisar recorrer a outras
configurações: -d limita a profundidade do rastreamento a um número especificado de subdiretórios; -c
limita o número de filhos por diretório; -x limita o número total de
descendentes por ramo da árvore de rastreamento; e -r limita o número total de requisições
a enviar em uma varredura.

Uma opção interessante está disponível para avaliações repetidas: -p. Ao
especificar uma porcentagem entre 1 e 100%, é possível dizer ao
rastreador para seguir menos de 100% de todos os links e tentar menos de 100% de
todas as entradas do dicionário. Isso - naturalmente - limita a completeza de uma varredura,
mas, diferentemente da maioria das outras configurações, faz isso de forma equilibrada e não
determinística. É extremamente útil quando você está configurando avaliações periódicas
com limite de tempo de sua infraestrutura. Outra opção relacionada é -q, que define a
semente aleatória inicial para o rastreador para um valor especificado. Isso pode
ser usado para reproduzir exatamente uma varredura anterior para comparar resultados.
A aleatoriedade é mais fortemente utilizada no modo -p, mas também para tomar algumas
outras decisões de gerenciamento de varredura em outros lugares.

Alguns serviços particularmente complexos (ou quebrados) podem envolver um número muito alto
de páginas idênticas ou quase idênticas. Embora essas ocorrências sejam por
padrão esmaecidas no relatório, elas ainda consomem algum espaço na tela e levam um
tempo para serem processadas no nível do JavaScript. Nesses casos extremos, você pode
usar a opção -Q para suprimir totalmente a notificação de nós duplicados, antes
que o relatório seja escrito. Isso pode lhe dar uma compreensão menos abrangente de
como o site está organizado, mas não tem impacto na cobertura do teste.

Em certas avaliações rápidas, você também pode não ter interesse em prestar nenhuma
atenção particular à funcionalidade desejada do site - esperando
explorar apenas segredos não vinculados. Nesse caso, você pode especificar -P para
inibir toda a análise de HTML. Isso limita a cobertura e tira a capacidade
do scanner de aprender novas palavras-chave olhando para o HTML, mas acelera
o teste drasticamente. Outra opção similarmente incapacitante que reduz o
risco de efeitos persistentes de uma varredura é -O, que inibe todas as etapas de
análise e envio de formulários.

Alguns sites que lidam com dados sensíveis do usuário se preocupam com SSL - e em fazer
isso corretamente. O Skipfish pode opcionalmente ajudá-lo a descobrir cenários problemáticos
de mixed content ou submissão de senhas - use a opção -M para ativar isso.
O scanner reclamará sobre situações como scripts http:// sendo carregados em
páginas https:// - mas ignorará cenários sem risco, como imagens.

Da mesma forma, certos sites pedantes podem se importar com casos em que o cache é
restringido no nível HTTP/1.1, mas nenhuma diretiva de cache HTTP/1.0 explícita é
fornecida. Ao especificar -E na linha de comando, o skipfish registra todos esses
casos cuidadosamente.

Em algumas ocasiões, você deseja limitar as requisições por segundo para limitar
a carga no servidor alvo (ou possivelmente ignorar a proteção DoS). O
sinalizador -l pode ser usado para definir esse limite, e o valor fornecido é a quantidade máxima
de requisições por segundo que você deseja que o skipfish execute.

As varreduras normalmente não devem levar semanas. Em muitos casos, você provavelmente
deseja limitar a duração da varredura para que ela se encaixe em uma determinada janela
de tempo. Isso pode ser feito com o sinalizador -k, que permite que a quantidade de
horas, minutos e segundos seja especificada no formato H:M:S. O uso
deste sinalizador pode afetar a cobertura da varredura se o tempo limite da varredura ocorrer antes
de testar todas as páginas.

Por último, em algumas avaliações que envolvem sites autocontidos sem
conteúdo extenso do usuário, o auditor pode se importar com quaisquer e-mails externos ou
links HTTP vistos, mesmo que não tenham impacto de segurança imediato. Use a
opção -U para ter esses registrados.

O gerenciamento de dicionários é um tópico especial e, como mencionado, é abordado em mais
detalhes em doc/dictionaries.txt. Por favor, leia esse arquivo antes de
prosseguir. Algumas das opções relevantes incluem -S e -W (abordadas anteriormente),
-L para suprimir o aprendizado automático, -G para limitar o tamanho do depositário de
palavras-chave, -R para descartar entradas antigas do dicionário e -Y para inibir o
fuzzing caro de $keyword.$extension.

O Skipfish também possui um mecanismo de autocompletar formulários para maximizar a cobertura
da varredura. Os valores devem ser não maliciosos, pois não se destinam a implementar
verificações de segurança - mas sim, para passar pela lógica de validação de entrada.
Você pode definir regras adicionais ou substituir as existentes com a opção
-T (-T nome_do_campo_do_formulário=valor_do_campo, por exemplo, -T login=test123 -T
password=test321 - embora observe que -C e -A são um método muito melhor de fazer
login).Há também um punhado de opções relacionadas a desempenho. Use -g para definir o número máximo de conexões a serem mantidas, globalmente, para todos os alvos (é sensato manter isso abaixo de 50 ou mais para evitar sobrecarregar a pilha TCP/IP do seu sistema ou dos dispositivos NAT/firewall próximos); e -m para definir o limite por IP (experimente um pouco: 2-4 geralmente é bom para localhost, 4-8 para redes locais, 10-20 para alvos externos, 30+ para hosts muito lentos ou sem keep-alive). Você também pode usar -w para definir o timeout de E/S (ou seja, o skipfish esperará apenas um certo tempo para uma leitura ou gravação individual), e -t para definir o timeout total da requisição, para levar em conta sites realmente lentos ou rápidos.

Por fim, -f controla o número máximo de erros HTTP consecutivos que você está disposto a ver antes de abortar a varredura; e -s define o comprimento máximo de uma resposta a ser buscada e analisada (respostas mais longas serão truncadas).

Ao varrer sites grandes e com muitos elementos multimídia, você também pode querer especificar -e. Isso evita que documentos binários sejam mantidos na memória para fins de relatório, liberando bastante RAM.

Mais limitação de taxa está disponível através de ferramentas de modo de usuário de terceiros, como trickle, ou modelagem de tráfego em nível de kernel.

Ah, e as estatísticas em tempo real da varredura podem ser suprimidas com -u.

--------------------------------
6. Mas falando sério, como executá-lo?
--------------------------------

Uma varredura autenticada padrão de um site bem projetado e autossuficiente (avisa sobre todos os links externos, e-mails, conteúdo misto e problemas de cabeçalho de cache), incluindo força bruta suave:

$ touch new_dict.wl
$ ./skipfish -MEU -S dictionaries/minimal.wl -W new_dict.wl \
  -C "AuthCookie=value" -X /logout.aspx -o output_dir \
  http://www.example.com/

Rastreamento de cinco conexões, mas sem força bruta; fingindo ser MSIE e confiando no conteúdo do example.com:

$ ./skipfish -m 5 -L -W- -o output_dir -b ie -B example.com \
  http://www.example.com/

Força bruta pesada apenas (sem extração de links HTML), limitada a um único diretório e com timeout após 5 segundos:

$ touch new_dict.wl
$ ./skipfish -S dictionaries/complete.wl -W new_dict.wl \
   -P -I http://www.example.com/dir1/ -o output_dir -t 5 -I \
  http://www.example.com/dir1/

Para uma lista breve de todas as opções de linha de comando, tente ./skipfish -h.

----------------------------------------------------
7. Como interpretar e lidar com os problemas relatados?
----------------------------------------------------

A maioria dos problemas relatados pelo skipfish deve ser autoexplicativa, assumindo que você tenha um bom entendimento dos fundamentos da segurança web. Se precisar de uma atualização rápida sobre alguns dos tópicos mais complicados, como MIME sniffing, você pode gostar do nosso abrangente Browser Security Handbook como ponto de partida:

  http://code.google.com/p/browsersec/

Se ainda precisar de ajuda, existem várias organizações que dedicam esforço considerável para documentar e explicar muitas das ameaças comuns de segurança web, e aconselhar o público sobre como lidar com elas. Encorajo você a consultar os materiais publicados pela OWASP e pelo Web Application Security Consortium, entre outros:

  * http://www.owasp.org/index.php/Category:Principle
  * http://www.owasp.org/index.php/Category:OWASP_Guide_Project
  * http://www.webappsec.org/projects/articles/

Embora eu esteja feliz em diagnosticar problemas com o próprio scanner, infelizmente não posso oferecer assistência com o funcionamento interno de aplicações web de terceiros.

---------------------------------------
8. Limitações conhecidas / lista de desejos de funcionalidades
---------------------------------------

Abaixo está uma lista de funcionalidades atualmente ausentes no skipfish. Se você deseja melhorar a ferramenta contribuindo com código em uma dessas áreas, por favor me avise:

  * Verificações de estouro de buffer: após consideração cuidadosa, suspeito que não há uma maneira confiável de testar estouros de buffer remotamente. Assim como a própria condição de falha que estamos procurando, verificações adequadas de tamanho de buffer também podem resultar em exceções não capturadas, mensagens 500, etc. Adoraria estar errado, no entanto.

  * Detecção completa de XSS em JavaScript: várias verificações rudimentares estão presentes no código, mas não há um mecanismo de script adequado para avaliar expressões e acesso ao DOM embutido.

  * Bugs de consumo/injeção de caracteres de codificação de comprimento variável: esses problemas parecem ser amplamente tratados no nível do navegador neste momento, por isso foram de prioridade muito menor no momento desta escrita.

  * Verificações de segurança e extração de links para conteúdo baseado em plugins de terceiros (Flash, Java, PDF, etc).

  * Força bruta de senha e sondagens de força bruta de nomes de arquivo numéricos.

  * Integração com mecanismos de busca (vhosts, caminhos iniciais).

  * Decodificação VIEWSTATE.

  * Autenticação NTLM e digest.

  * Testes PHP mais específicos (injeção eval, RFI).

  * Suporte a proxy: um suporte experimental a proxy HTTP está disponível através de uma diretiva #define no config.h. Adicionar suporte para proxy HTTPS é mais complicado e ainda está em desenvolvimento.

  * Opção de retomada de varredura, melhores informações em tempo de execução.

  * Suporte a instalação independente (make install).

  * Interface web de agendamento e gerenciamento.

-------------------------------------
9. Oy! Algo deu terrivelmente errado!
-------------------------------------

Não existe um rastreador web tão bom que não haja um framework web que um dia o incendeie. Se você encontrar o que parece ser um mau comportamento (por exemplo, uma varredura que leva uma eternidade e gera muitas requisições, nós completamente falsos na saída da varredura, ou travamentos diretos), verifique primeiro nossa página de problemas conhecidos:

  http://code.google.com/p/skipfish/wiki/KnownIssues

Se não conseguir encontrar uma resposta satisfatória lá, recompile o scanner com:

$ make clean debug

... e execute-o novamente desta forma:

$ ./skipfish [...opções anteriores...] 2>logfile.txt

Você pode então inspecionar logfile.txt para ter uma ideia do que deu errado; se parecer um problema do scanner, remova qualquer informação sensível do arquivo de log e envie-o ao autor.

Se o scanner travou, recompile-o conforme indicado acima, e então digite:

$ ulimit -c unlimited
$ ./skipfish [...opções anteriores...] 2>logfile.txt
$ gdb --batch -ex back ./skipfish core

... e certifique-se de enviar ao autor a saída desse último comando também.

------------------------
10. Créditos e feedback
------------------------

O Skipfish é possível graças às contribuições e ao valioso feedback da equipe de engenharia de segurança da informação do Google.

Se você tiver algum relatório de bug, pergunta, sugestão ou preocupação em relação ao aplicativo, o autor principal pode ser contatado em [email protected].
Baixar ferramenta