Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
crawlergo — Um poderoso rastreador de navegador para scanners de vulnerabilidades web | Kitploit
Ferramentas/GitHubGitHub/qianlitp/crawlergo
ReconhecimentoScanners de VulnerabilidadesColeta de InformaçõesSegurança WebRastreador
GitHubqianlitp/crawlergo

crawlergo

Um poderoso rastreador de navegador para scanners de vulnerabilidades web

Ver Repositório
3.0k493há 1 anoRevisado 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 →
Compartilhar

crawlergo

chromedp BlackHat EU Arsenal

Um poderoso rastreador de navegador para scanners de vulnerabilidades web

Documento em Inglês | Documento em Chinês

crawlergo é um rastreador de navegador que utiliza o modo headless do chrome para coleta de URLs. Ele intercepta pontos-chave de toda a página web durante a fase de renderização do DOM, preenche e submete formulários automaticamente, com acionamento inteligente de eventos JS, e coleta o maior número possível de entradas expostas pelo site. O módulo interno de desduplicação de URLs filtra uma grande quantidade de URLs pseudoestáticas, mantendo uma velocidade rápida de análise e rastreamento para sites grandes, e finalmente obtém uma coleção de alta qualidade de resultados de requisições.

crawlergo atualmente suporta os seguintes recursos:

  • Renderização do ambiente do navegador Chrome
  • Preenchimento inteligente de formulários e submissão automatizada
  • Coleta completa de eventos DOM com acionamento automatizado
  • Desduplicação inteligente de URLs para remover a maioria das requisições duplicadas
  • Análise inteligente de páginas web e coleta de URLs, incluindo conteúdo de arquivos JavaScript, comentários de página, arquivos robots.txt e Fuzz automático de caminhos comuns
  • Suporte a vinculação de Host, correção automática e adição de Referer
  • Suporte a proxy de requisição do navegador
  • Suporte ao envio dos resultados para scanners passivos de vulnerabilidades web

Captura de tela

Instalação

Por favor, leia e confirme o termo de isenção de responsabilidade cuidadosamente antes de instalar e usar.

Construção

  • Compilação para a plataforma atual
root@kitploit:~
make build
  • Compilação para todas as plataformas
root@kitploit:~
make build_all
  1. crawlergo depende apenas do ambiente Chrome para funcionar, acesse download para a nova versão do Chromium.
  2. Acesse a página de download para a versão mais recente do crawlergo e extraia para qualquer diretório. Se estiver no Linux ou macOS, dê permissões de execução (+x) ao crawlergo.
  3. Ou você pode modificar o código e compilar por conta própria.

Se estiver usando um sistema Linux e o Chrome reclamar de dependências ausentes, veja a seção de Solução de Problemas abaixo

Início Rápido

Vamos lá!

Supondo que seu diretório de instalação do Chromium seja /tmp/chromium/, configure 10 abas abertas simultaneamente e rastreie o testphp.vulnweb.com:

root@kitploit:~
bin/crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/

Uso com Docker

Você também pode usar com docker sem problemas:

root@kitploit:~
git clone https://github.com/Qianlitp/crawlergo
docker build . -t crawlergo
docker run crawlergo http://testphp.vulnweb.com/

Usando Proxy

root@kitploit:~
bin/crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy socks5://127.0.0.1:7891 http://testphp.vulnweb.com/

Chamando crawlergo com Python

Por padrão, crawlergo imprime os resultados diretamente na tela. Em seguida, definimos o modo de saída como json, e o código de exemplo para chamá-lo usando Python é o seguinte:

root@kitploit:~
#!/usr/bin/python3
# coding: utf-8

import simplejson
import subprocess


def main():
    target = "http://testphp.vulnweb.com/"
    cmd = ["bin/crawlergo", "-c", "/tmp/chromium/chrome", "-o", "json", target]
    rsp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = rsp.communicate()
	#  "--[Mission Complete]--"  é a string separadora de fim de tarefa
    result = simplejson.loads(output.decode().split("--[Mission Complete]--")[1])
    req_list = result["req_list"]
    print(req_list[0])


if __name__ == '__main__':
    main()

Resultados do Rastreamento

Quando o modo de saída é definido como json, o resultado retornado, após desserialização JSON, contém quatro partes:

  • all_req_list: Todas as requisições encontradas durante esta tarefa de rastreamento, contendo qualquer tipo de recurso de outros domínios.
  • req_list: Retorna os resultados do domínio atual desta tarefa de rastreamento, desduplicados pseudoestaticamente, sem links de recursos estáticos. É um subconjunto de all_req_list.
  • all_domain_list: Lista de todos os domínios encontrados.
  • sub_domain_list: Lista de subdomínios encontrados.

Exemplos

crawlergo retorna a requisição completa e a URL, que podem ser usadas de várias maneiras:

  • Usado em conjunto com outros scanners passivos de vulnerabilidades web

    Primeiro, inicie um scanner passivo e defina o endereço de escuta como: http://127.0.0.1:1234/

    Em seguida, assumindo que crawlergo está na mesma máquina que o scanner, inicie crawlergo e defina os parâmetros:

    --push-to-proxy http://127.0.0.1:1234/

  • Vinculação de Host (não disponível para versões altas do Chrome) (exemplo)

  • Cookies Personalizados (exemplo)

  • Limpeza regular de processos zumbis gerados pelo crawlergo (exemplo), contribuído por @ring04h

Bypass na detecção de headless

crawlergo pode contornar a detecção de modo headless por padrão.

https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html

Solução de Problemas

  • 'Fetch.enable' não foi encontrado

    Fetch é um recurso suportado pela nova versão do Chrome. Se este erro ocorrer, significa que sua versão é muito antiga, por favor, atualize a versão do Chrome.

  • Chrome é executado com dependências ausentes, como xxx.so

    root@kitploit:~
    // Ubuntu
    apt-get install -yq --no-install-recommends \
         libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
         libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
         libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libgbm1 \
         libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 libnss3
         
    // CentOS 7
    sudo yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 \
         libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 \
         ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y
    
    sudo yum update nss -y
    
  • Execução com aviso Navigation timeout / navegador não encontrado / não sabe o caminho executável correto do navegador

    Certifique-se de que o caminho executável do navegador está configurado corretamente. Digite: chrome://version na barra de endereços e encontre o caminho do arquivo executável:

Parâmetros

Parâmetros obrigatórios

  • --chromium-path Path, -c Path O caminho para o executável do Chrome. (Obrigatório)

Parâmetros básicos

  • --custom-headers Headers Personalize o cabeçalho HTTP. Por favor, passe os dados após serialização JSON; isso é definido globalmente e será usado para todas as requisições. (Padrão: null)
  • --post-data PostData, -d PostData Dados POST. (Padrão: null)
  • --max-crawled-count Number, -m Number O número máximo de tarefas para os rastreadores, para evitar tempo de rastreamento longo devido a pseudo-estática. (Padrão: 200)
  • --filter-mode Mode, -f Mode Modo de filtragem, simple: apenas recursos estáticos e requisições duplicadas são filtrados. smart: com capacidade de filtrar pseudo-estática. strict: regras de filtragem pseudo-estática mais rigorosas. (Padrão: smart)
  • --output-mode value, -o value Modo de saída dos resultados, console: imprime os resultados melhorados diretamente na tela. json: imprime a string serializada em JSON de todos os resultados. none: não imprime a saída. (Padrão: console)

Expandir URL de entrada

  • --fuzz-path Usa o dicionário interno para fuzzing de caminhos. (Padrão: false)
  • --fuzz-path-dict Personaliza o caminho de Fuzz passando o caminho de um arquivo de dicionário, ex.: /home/user/fuzz_dir.txt, cada linha do arquivo representa um caminho a ser fuzzeado. (Padrão: null)
  • --robots-path Resolve o caminho do arquivo /robots.txt. (Padrão: false)

Preenchimento automático de formulários

  • --ignore-url-keywords, -iuk Palavra-chave de URL que você não deseja visitar, geralmente usada para excluir links de logout ao personalizar cookies. Uso: -iuk logout -iuk exit. (padrão: "logout", "quit", "exit")
  • --form-values, -fv Personaliza o valor do preenchimento do formulário, definido por tipo de texto. Tipos suportados: default, mail, code, phone, username, password, qq, id_card, url, date e number. Os tipos de texto são identificados pelas quatro palavras-chave de valor de atributo id, name, class, type da label do campo de entrada. Por exemplo, defina o campo de entrada de email para ser preenchido automaticamente com A e o campo de entrada de senha para ser preenchido automaticamente com B, -fv mail=A -fv password=B. Onde default representa o valor de preenchimento quando o tipo de texto não é reconhecido, como "Cralwergo". (Padrão: Cralwergo)
  • --form-keyword-values, -fkv Personaliza o valor do preenchimento do formulário, definido por correspondência difusa de palavra-chave. A palavra-chave corresponde aos quatro valores de atributo id, name, , da label do campo de entrada. Por exemplo, correspondência difusa da palavra-chave pass para preencher 123456 e da palavra-chave user para preencher admin, . (Padrão: Cralwergo)

Configurações avançadas do processo de rastreamento

  • --max-tab-count Number, -t Number O número máximo de abas que o rastreador pode abrir simultaneamente. (Padrão: 8)
  • --tab-run-timeout Timeout Tempo máximo de execução para uma única aba. (Padrão: 20s)
  • --wait-dom-content-loaded-timeout Timeout O tempo máximo de espera para a página terminar de carregar. (Padrão: 5s)
  • --event-trigger-interval Interval O intervalo quando o evento é acionado automaticamente, geralmente usado no caso de rede lenta do alvo e conflitos de atualização do DOM que levam à perda de captura de URL. (Padrão: 100ms)
  • --event-trigger-mode Value Modo de acionamento automático de eventos DOM, com async e sync, para captura perdida de URL devido a conflitos de atualização do DOM. (Padrão: async)
  • --before-exit-delay Atraso para sair e fechar o Chrome no final de uma tarefa de aba única. Usado para esperar que atualizações parciais do DOM e requisições XHR sejam capturadas. (Padrão: 1s)

Outros

  • --push-to-proxy O endereço de escuta para onde os resultados do rastreador serão enviados, geralmente o endereço de escuta do scanner passivo. (Padrão: null)
  • --push-pool-max O número máximo de concorrência ao enviar os resultados do rastreador para o endereço de escuta. (Padrão: 10)
  • --log-level Níveis de registro, debug, info, warn, error e fatal. (Padrão: info)
  • --no-headless Desliga o modo headless do Chrome para visualizar o processo de rastreamento. (Padrão: false)

Siga-me

Weibo: @9ian1i Twitter: @9ian1i

Artigos relacionados: Uma prática de rastreador de navegador para varredura de vulnerabilidades web

Baixar ferramenta
  • --output-json filepath Escreve o resultado no arquivo especificado após serializá-lo em JSON. (Padrão: null)
  • --request-proxy proxyAddress Endereço do proxy socks5; todas as requisições de rede do crawlergo e do navegador Chrome são enviadas através do proxy. (Padrão: null)
  • class
    type
    -fkv user=admin -fkv pass=123456