Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/qianlitp/crawlergo
ReconocimientoEscáneres de VulnerabilidadesRecopilación de InformaciónSeguridad WebCrawler
GitHubqianlitp/crawlergo

crawlergo

Un potente rastreador de navegador para escáneres de vulnerabilidades web

Ver Repositorio
3.0k4933hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

crawlergo

chromedp BlackHat EU Arsenal

Un potente rastreador de navegadores para escáneres de vulnerabilidades web

Documento en inglés | 中文文档

crawlergo es un rastreador de navegadores que utiliza el modo chrome headless para la recolección de URLs. Engancha posiciones clave de toda la página web en la etapa de renderizado del DOM, rellena y envía formularios automáticamente, con disparo inteligente de eventos JS, y recopila tantas entradas expuestas por el sitio web como sea posible. El módulo incorporado de deduplicación de URLs filtra una gran cantidad de URLs pseudoestáticas, manteniendo una velocidad rápida de análisis y rastreo para sitios web grandes, y finalmente obtiene una colección de alta calidad de resultados de solicitudes.

crawlergo actualmente soporta las siguientes características:

  • Renderizado del entorno del navegador chrome
  • Relleno inteligente de formularios, envío automatizado
  • Recolección completa de eventos DOM con disparo automatizado
  • Deduplicación inteligente de URLs para eliminar la mayoría de las solicitudes duplicadas
  • Análisis inteligente de páginas web y recolección de URLs, incluyendo contenido de archivos javascript, comentarios de página, archivos robots.txt y Fuzz automático de rutas comunes
  • Soporte para enlace de Host, corrección y adición automática de Referer
  • Soporte para proxy de solicitudes del navegador
  • Soporte para enviar los resultados a escáneres pasivos de vulnerabilidades web

Screenshot

Installation

Por favor, lea y confirme descargo de responsabilidad cuidadosamente antes de instalar y usar.

Build

  • compilación para la plataforma actual
root@kitploit:~
make build
  • compilación para todas las plataformas
root@kitploit:~
make build_all
  1. crawlergo solo depende del entorno de chrome para funcionar, vaya a descargar para obtener la nueva versión de chromium.
  2. Vaya a página de descargas para obtener la última versión de crawlergo y extráigala en cualquier directorio. Si está en linux o macOS, otorgue a crawlergo permisos de ejecución (+x).
  3. O puede modificar el código y compilarlo usted mismo.

Si está utilizando un sistema linux y chrome le indica dependencias faltantes, consulte TroubleShooting a continuación.

Quick Start

¡Adelante!

Suponiendo que su directorio de instalación de chromium es /tmp/chromium/, configure 10 pestañas abiertas al mismo tiempo y rastree testphp.vulnweb.com:

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

Uso con Docker

También puede usar esto con docker sin complicaciones:

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/

Llamando a crawlergo con python

Por defecto, crawlergo imprime los resultados directamente en la pantalla. A continuación, configuramos el modo de salida a json, y el código de ejemplo para llamarlo usando python es el siguiente:

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]--"  es la cadena separadora de fin de tarea
    result = simplejson.loads(output.decode().split("--[Mission Complete]--")[1])
    req_list = result["req_list"]
    print(req_list[0])


if __name__ == '__main__':
    main()

Resultados del rastreo

Cuando el modo de salida se establece en json, el resultado devuelto, después de la deserialización JSON, contiene cuatro partes:

  • all_req_list: Todas las solicitudes encontradas durante esta tarea de rastreo, que contienen cualquier tipo de recurso de otros dominios.
  • req_list: Devuelve los resultados del dominio actual de esta tarea de rastreo, deduplicados pseudoestáticamente, sin enlaces de recursos estáticos. Es un subconjunto de all_req_list.
  • all_domain_list: Lista de todos los dominios encontrados.
  • sub_domain_list: Lista de subdominios encontrados.

Ejemplos

crawlergo devuelve la solicitud completa y la URL, que se pueden usar de diversas maneras:

  • Usado en conjunto con otros escáneres pasivos de vulnerabilidades web

    Primero, inicie un escáner pasivo y establezca la dirección de escucha en: http://127.0.0.1:1234/

    A continuación, suponiendo que crawlergo está en la misma máquina que el escáner, inicie crawlergo y establezca los parámetros:

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

  • Enlace de Host (no disponible para versiones altas de chrome) (example)

  • Cookies personalizadas (example)

  • Limpieza periódica de procesos zombie generados por crawlergo (example), contribuido por @ring04h

Evitar la detección de headless

crawlergo puede evitar la detección del modo headless por defecto.

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

Solución de problemas

  • 'Fetch.enable' no se encontró

    Fetch es una función compatible con la nueva versión de chrome, si se produce este error, significa que su versión es demasiado baja, actualice la versión de chrome.

  • chrome se ejecuta con dependencias faltantes 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
    
  • El mensaje de ejecución muestra Navigation timeout / navegador no encontrado / no conoce la ruta del ejecutable del navegador correcta

    Asegúrese de que la ruta del ejecutable del navegador esté configurada correctamente, escriba: chrome://version en la barra de direcciones y busque la ruta del archivo ejecutable:

Parámetros

Parámetros requeridos

  • --chromium-path Path, -c Path La ruta al ejecutable de chrome. (Requerido)

Parámetros básicos

  • --custom-headers Headers Personalizar el encabezado HTTP. Pase los datos después de la serialización JSON, esto es global y se usará para todas las solicitudes. (Por defecto: null)
  • --post-data PostData, -d PostData Datos POST. (Por defecto: null)
  • --max-crawled-count Number, -m Number El número máximo de tareas para el rastreador para evitar tiempos de rastreo prolongados debido a pseudoestáticas. (Por defecto: 200)
  • --filter-mode Mode, -f Mode Modo de filtrado, simple: solo se filtran recursos estáticos y solicitudes duplicadas. smart: con capacidad de filtrar pseudoestáticas. strict: reglas de filtrado pseudoestático más estrictas. (Por defecto: smart)
  • --output-mode value, -o value Modo de salida de resultados, console: imprime los resultados formateados directamente en la pantalla. json: imprime la cadena serializada JSON de todos los resultados. none: no imprime la salida. (Por defecto: console)

Expandir URL de entrada

  • --fuzz-path Usar el diccionario incorporado para fuzzing de rutas. (Por defecto: false)
  • --fuzz-path-dict Personalizar la ruta de Fuzz pasando la ruta de un archivo de diccionario, ej. /home/user/fuzz_dir.txt, cada línea del archivo representa una ruta a fuzzear. (Por defecto: null)
  • --robots-path Resolver la ruta desde el archivo /robots.txt. (Por defecto: false)

Autocompletado de formularios

  • --ignore-url-keywords, -iuk Palabra clave de URL que no desea visitar, generalmente utilizada para excluir enlaces de cierre de sesión al personalizar cookies. Uso: -iuk logout -iuk exit. (por defecto: "logout", "quit", "exit")
  • --form-values, -fv Personalizar el valor del relleno del formulario, configurado por tipo de texto. Tipos de definición compatibles: default, mail, code, phone, username, password, qq, id_card, url, date y number. Los tipos de texto se identifican por las cuatro palabras clave de atributo id, name, class, type de la etiqueta del cuadro de entrada. Por ejemplo, defina que el cuadro de entrada de correo se rellene automáticamente con A y el cuadro de entrada de contraseña con B, -fv mail=A -fv password=B. Donde default representa el valor de relleno cuando no se reconoce el tipo de texto, como "Cralwergo". (Por defecto: Cralwergo)
  • --form-keyword-values, -fkv Personalizar el valor del relleno del formulario, configurado por coincidencia difusa de palabras clave. La palabra clave coincide con los cuatro valores de atributo id, name, , de la etiqueta del cuadro de entrada. Por ejemplo, coincidencia difusa de la palabra clave pass para rellenar 123456 y la palabra clave user para rellenar admin, . (Por defecto: Cralwergo)

Configuración avanzada del proceso de rastreo

  • --max-tab-count Number, -t Number El número máximo de pestañas que el rastreador puede abrir simultáneamente. (Por defecto: 8)
  • --tab-run-timeout Timeout Tiempo máximo de ejecución para una sola pestaña. (Por defecto: 20s)
  • --wait-dom-content-loaded-timeout Timeout El tiempo de espera máximo para que la página termine de cargarse. (Por defecto: 5s)
  • --event-trigger-interval Interval El intervalo cuando el evento se dispara automáticamente, generalmente utilizado en casos de red lenta del objetivo y conflictos de actualización del DOM que provocan la pérdida de captura de URLs. (Por defecto: 100ms)
  • --event-trigger-mode Value Modo de disparo automático de eventos DOM, con async y sync, para la pérdida de captura de URLs causada por conflictos de actualización del DOM. (Por defecto: async)
  • --before-exit-delay Retraso de salida para cerrar chrome al finalizar una tarea de pestaña individual. Se usa para esperar la captura de actualizaciones parciales del DOM y solicitudes XHR. (Por defecto: 1s)

Otros

  • --push-to-proxy La dirección de escucha para recibir los resultados del rastreador, generalmente la dirección de escucha del escáner pasivo. (Por defecto: null)
  • --push-pool-max El número máximo de concurrencia al enviar resultados del rastreador a la dirección de escucha. (Por defecto: 10)
  • --log-level Niveles de registro: debug, info, warn, error y fatal. (Por defecto: info)
  • --no-headless Desactivar el modo headless de chrome para visualizar el proceso de rastreo. (Por defecto: false)

Sígueme

Weibo:@9ian1i Twitter: @9ian1i

Artículos relacionados:Una práctica de rastreador de navegadores para el escaneo de vulnerabilidades web

Descargar herramienta
  • --output-json filepath Escribe el resultado en el archivo especificado después de serializarlo a JSON. (Por defecto: null)
  • --request-proxy proxyAddress Dirección del proxy socks5, todas las solicitudes de red de crawlergo y del navegador chrome se envían a través del proxy. (Por defecto: null)
  • class
    type
    -fkv user=admin -fkv pass=123456