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
20625hace 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