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
gitlab-watchman — Encontrando secretos expuestos y datos personales en GitLab | Kitploit
Herramientas/GitHubGitHub/papermtn/gitlab-watchman
Escáneres de VulnerabilidadesAnálisis de CódigoExfiltración de DatosRecopilación de InformaciónDevSecOpsDetección de Secretos
GitHubpapermtn/gitlab-watchman

gitlab-watchman

Encontrando secretos expuestos y datos personales en GitLab

Ver Repositorio
206255hace 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

GitLab Watchman

Python 2.7 and 3 compatible PyPI version License: MIT

Acerca de GitLab Watchman

GitLab Watchman es una aplicación que utiliza la API de GitLab para detectar secretos expuestos y datos personales. También enumera la instancia de GitLab en busca de información útil.

Características

Detección de secretos

Busca en GitLab proyectos compartidos internamente y examina:

  • Código
  • Commits
  • Páginas wiki
  • Issues
  • Solicitudes de fusión (merge requests)
  • Hitos (milestones)
  • Notas
  • Fragmentos (snippets)

Para los siguientes datos:

  • Claves de GCP y archivos de cuenta de servicio
  • Claves de AWS
  • Claves de Azure y archivos de cuenta de servicio
  • Claves de API de Google
  • Tokens y webhooks de Slack API
  • Claves privadas (SSH, PGP, cualquier otra clave privada miscelánea)
  • Tokens expuestos (Bearer tokens, access tokens, client_secret, etc.)
  • Archivos de configuración S3
  • Tokens para servicios como Heroku, PayPal y más
  • Contraseñas en texto plano
  • y más
  • Búsqueda basada en tiempo

    Puedes ejecutar GitLab Watchman para buscar resultados que se remonten hasta:

    • 24 horas
    • 7 días
    • 30 días
    • Todo el tiempo

    Esto significa que después de un escaneo profundo, puedes programar GitLab Watchman para que se ejecute regularmente y solo devuelva resultados de tu período de tiempo elegido.

    Enumeración

    GitLab Watchman puede enumerar información potencialmente útil de una instancia de GitLab:

    • Metadatos de la instancia
    • Información sobre el usuario/token que realiza la llamada
    • Exportar todos los usuarios a un archivo CSV
    • Exportar todos los proyectos a un archivo CSV
    • Exportar todos los grupos a un archivo CSV

    Firmas

    GitLab Watchman utiliza firmas YAML personalizadas para detectar coincidencias en GitLab. Estas firmas se obtienen del repositorio central Watchman Signatures. Slack Watchman actualiza automáticamente su base de firmas en tiempo de ejecución para asegurarse de que utiliza las firmas más recientes para detectar secretos.

    Suprimir firmas

    Puedes definir las firmas que deseas deshabilitar al ejecutar GitLab Watchman agregando sus IDs a la sección disabled_signatures del archivo watchman.conf. Por ejemplo:

    root@kitploit:~
    gitlab_watchman:
      disabled_signatures:
        - tokens_generic_bearer_tokens
        - tokens_generic_access_tokens
    

    Puedes encontrar el ID de una firma en los archivos YAML individuales del repositorio Watchman Signatures.

    Registro

    GitLab Watchman ofrece las siguientes opciones de registro:

    • Salida estándar amigable para la terminal
    • JSON a la salida estándar

    GitLab Watchman utiliza por defecto el registro en salida estándar amigable para la terminal si no se proporciona ninguna opción. Está diseñado para ser más fácil de leer para los humanos.

    El registro JSON también está disponible, perfecto para ingerir en un SIEM u otras plataformas de análisis de registros.

    El registro con formato JSON se puede redirigir fácilmente a un archivo como se muestra a continuación:

    root@kitploit:~
    gitlab-watchman --timeframe a --all --output json >> gitlab_watchman_log.json 
    

    Requisitos

    Versiones de GitLab

    GitLab Watchman utiliza la API v4 y funciona con GitLab Enterprise Edition en las versiones:

    • 13.0 y superiores - Sí

    • GitLab.com - Sí

    • 12.0 - 12.10 - Tal vez, no probado pero si se usa la v4 de la API podría funcionar

    Licencia de GitLab y Elasticsearch

    Para buscar en los ámbitos:

    • blobs
    • wiki_blobs
    • commits

    La instancia de GitLab debe tener configurado Elasticsearch y ejecutar Enterprise Edition con una licencia mínima de GitLab Starter o Bronze.

    Token de acceso personal de GitLab

    Para ejecutar GitLab Watchman, necesitarás un token de acceso personal de GitLab.

    Puedes crear un token de acceso personal en la interfaz de GitLab a través de Configuración -> Tokens de acceso -> Añadir un token de acceso personal.

    El token necesita permiso para los siguientes ámbitos:

    root@kitploit:~
    api
    

    Nota: Los tokens de acceso personal actúan en nombre del usuario que los crea, por lo que te sugiero que crees un token usando una cuenta de servicio; de lo contrario, la aplicación tendrá acceso a tus repositorios privados.

    URL de GitLab

    También debes proporcionar la URL de tu instancia de GitLab.

    Proporcionar token y URL

    GitLab Watchman obtendrá el token y la URL de GitLab de las variables de entorno GITLAB_WATCHMAN_TOKEN y GITLAB_WATCHMAN_URL.

    Archivo watchman.conf

    Las opciones de configuración se pueden pasar en un archivo llamado watchman.conf que debe almacenarse en tu directorio personal. El archivo debe seguir el formato YAML y verse como el siguiente:

    root@kitploit:~
    gitlab_watchman:
      disabled_signatures:
        - tokens_generic_bearer_tokens
        - tokens_generic_access_tokens
    

    GitLab Watchman buscará este archivo en tiempo de ejecución y usará las opciones de configuración de allí.

    Instalación

    Puedes instalar la última versión estable a través de pip:

    python3 -m pip install gitlab-watchman

    O compilar desde el código fuente. Descarga los archivos fuente de la versión, luego desde el directorio raíz del repositorio ejecuta:

    root@kitploit:~
    python3 -m build
    python3 -m pip install --force-reinstall dist/*.whl
    

    Imagen Docker

    GitLab Watchman también está disponible en Docker Hub como imagen Docker:

    docker pull papermountain/gitlab-watchman:latest

    Luego puedes ejecutar GitLab Watchman en un contenedor, asegurándote de pasar las variables de entorno requeridas:

    root@kitploit:~
    // ayuda
    docker run --rm papermountain/gitlab-watchman -h
    
    // escanear todo
    docker run --rm -e GITLAB_WATCHMAN_TOKEN=abc123 -e GITLAB_WATCHMAN_URL=https://example.gitlab.com papermountain/gitlab-watchman --timeframe a --all
    docker run --rm --env-file .env papermountain/gitlab-watchman --timeframe a --all
    

    Uso

    GitLab Watchman se instalará como un comando global, úsalo de la siguiente manera:

    root@kitploit:~
    usage: gitlab-watchman [-h] --timeframe {d,w,m,a} [--output {json,stdout}] [--version] [--all] [--blobs] [--commits] [--wiki-blobs] [--issues]
                       [--merge-requests] [--milestones] [--notes] [--snippets] [--enumerate] [--debug] [--verbose]
    
    Finding exposed secrets and personal data in GitLab
    
    options:
      -h, --help            show this help message and exit
      --output {json,stdout}, -o {json,stdout}
                            Where to send results
      --version, -v         show program's version number and exit
      --all, -a             Find everything
      --blobs, -b           Search code blobs
      --commits, -c         Search commits
      --wiki-blobs, -w      Search wiki blobs
      --issues, -i          Search issues
      --merge-requests, -mr
                            Search merge requests
      --milestones, -m      Search milestones
      --notes, -n           Search notes
      --snippets, -s        Search snippets
      --enumerate, -e       Enumerate this GitLab instance for users, groups, projects.Output will be saved to CSV files
      --debug, -d           Turn on debug level logging
      --verbose, -V         Turn on more verbose output for JSON logging. This includes more fields, but is larger
    
    required arguments:
      --timeframe {d,w,m,a}
                            How far back to search: d = 24 hours w = 7 days, m = 30 days, a = all time
    
    

    Otras aplicaciones Watchman

    Puede que te interesen las otras aplicaciones de la familia Watchman:

    • Slack Watchman
    • Slack Watchman for Enterprise Grid
    • GitHub Watchman

    Licencia

    El código fuente de este proyecto se publica bajo la GNU General Public Licence. Este proyecto no está asociado con GitLab.

    Descargar herramienta