Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gitlab-watchman — Détection des secrets exposés et des données personnelles dans GitLab | Kitploit
Outils/GitHubGitHub/papermtn/gitlab-watchman
Scanners de VulnérabilitésAnalyse de CodeExfiltration de DonnéesCollecte d'InformationsDevSecOpsDétection de Secrets
GitHubpapermtn/gitlab-watchman

gitlab-watchman

Détection des secrets exposés et des données personnelles dans GitLab

Voir le dépôt
20625il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

GitLab Watchman

Python 2.7 et 3 compatibles Version PyPI Licence : MIT

À propos de GitLab Watchman

GitLab Watchman est une application qui utilise l'API GitLab pour détecter les secrets exposés et les données personnelles. Elle énumère également l'instance GitLab pour toute information utile.

Fonctionnalités

Détection de secrets

Elle recherche dans GitLab les projets partagés en interne et examine :

  • Le code
  • Les commits
  • Les pages wiki
  • Les issues
  • Les merge requests
  • Les jalons (milestones)
  • Les notes
  • Les snippets

Pour les données suivantes :

  • Clés GCP et fichiers de compte de service
  • Clés AWS
  • Clés Azure et fichiers de compte de service
  • Clés API Google
  • Tokens API Slack et webhooks
  • Clés privées (SSH, PGP, toute autre clé privée diverse)
  • Tokens exposés (Bearer tokens, access tokens, client_secret, etc.)
  • Fichiers de configuration S3
  • Tokens pour des services tels que Heroku, PayPal et plus
  • Mots de passe en clair
  • et plus encore
Recherche basée sur le temps

Vous pouvez exécuter GitLab Watchman pour rechercher des résultats remontant jusqu'à :

  • 24 heures
  • 7 jours
  • 30 jours
  • Depuis toujours

Cela signifie qu'après une analyse approfondie, vous pouvez planifier l'exécution régulière de GitLab Watchman et ne recevoir que les résultats de la période choisie.

Énumération

GitLab Watchman peut énumérer des informations potentiellement utiles à partir d'une instance GitLab :

  • Métadonnées de l'instance
  • Informations sur l'utilisateur/le token appelant
  • Export de tous les utilisateurs vers un fichier CSV
  • Export de tous les projets vers un fichier CSV
  • Export de tous les groupes vers un fichier CSV

Signatures

GitLab Watchman utilise des signatures YAML personnalisées pour détecter les correspondances dans GitLab. Ces signatures sont extraites du dépôt central Watchman Signatures. Slack Watchman met automatiquement à jour sa base de signatures à l'exécution pour garantir l'utilisation des signatures les plus récentes pour détecter les secrets.

Désactivation des signatures

Vous pouvez définir les signatures que vous souhaitez désactiver lors de l'exécution de GitLab Watchman en ajoutant leurs identifiants à la section disabled_signatures du fichier watchman.conf. Par exemple :

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

Vous trouverez l'identifiant d'une signature dans les fichiers YAML individuels du dépôt Watchman Signatures.

Journalisation

GitLab Watchman offre les options de journalisation suivantes :

  • Sortie Stdout adaptée au terminal
  • Sortie JSON vers Stdout

GitLab Watchman utilise par défaut la sortie Stdout adaptée au terminal si aucune option n'est fournie. Cela est conçu pour être plus lisible pour les humains.

La journalisation JSON est également disponible, parfaite pour l'ingestion dans un SIEM ou d'autres plateformes d'analyse de logs.

La journalisation au format JSON peut être facilement redirigée vers un fichier comme ci-dessous :

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

Prérequis

Versions de GitLab

GitLab Watchman utilise l'API v4 et fonctionne avec les versions Enterprise Edition de GitLab :

  • 13.0 et supérieur - Oui

  • GitLab.com - Oui

  • 12.0 - 12.10 - Peut-être, non testé mais si l'API v4 est utilisée, cela pourrait fonctionner

Licence GitLab et Elasticsearch

Pour rechercher dans les scopes :

  • blobs
  • wiki_blobs
  • commits

L'instance GitLab doit avoir Elasticsearch configuré et exécuter Enterprise Edition avec une licence GitLab Starter ou Bronze minimum.

Jeton d'accès personnel GitLab

Pour exécuter GitLab Watchman, vous aurez besoin d'un jeton d'accès personnel GitLab.

Vous pouvez créer un jeton d'accès personnel dans l'interface graphique GitLab via Paramètres -> Jetons d'accès -> Ajouter un jeton d'accès personnel

Le jeton doit avoir les permissions pour les scopes suivants :

root@kitploit:~
api

Remarque : Les jetons d'accès personnels agissent au nom de l'utilisateur qui les crée, je suggère donc de créer un jeton en utilisant un compte de service, sinon l'application aura accès à vos dépôts privés.

URL GitLab

Vous devez également fournir l'URL de votre instance GitLab.

Fournir le jeton et l'URL

GitLab Watchman récupère le jeton et l'URL GitLab à partir des variables d'environnement GITLAB_WATCHMAN_TOKEN et GITLAB_WATCHMAN_URL.

Fichier watchman.conf

Les options de configuration peuvent être transmises dans un fichier nommé watchman.conf qui doit être stocké dans votre répertoire personnel. Le fichier doit suivre le format YAML et ressembler à ceci :

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

GitLab Watchman cherchera ce fichier à l'exécution et utilisera les options de configuration qui s'y trouvent.

Installation

Vous pouvez installer la dernière version stable via pip :

python3 -m pip install gitlab-watchman

Ou compiler à partir des sources vous-même. Téléchargez les fichiers source de la version, puis depuis le répertoire racine, exécutez :

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

Image Docker

GitLab Watchman est également disponible sur le Docker Hub en tant qu'image Docker :

docker pull papermountain/gitlab-watchman:latest

Vous pouvez ensuite exécuter GitLab Watchman dans un conteneur, en vous assurant de passer les variables d'environnement requises :

root@kitploit:~
// aide
docker run --rm papermountain/gitlab-watchman -h

// tout analyser
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

Utilisation

GitLab Watchman sera installé en tant que commande globale, utilisez comme suit :

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]

Trouver les secrets exposés et les données personnelles dans GitLab

options:
  -h, --help            montre ce message d'aide et quitte
  --output {json,stdout}, -o {json,stdout}
                        Où envoyer les résultats
  --version, -v         montre le numéro de version du programme et quitte
  --all, -a             Tout trouver
  --blobs, -b           Rechercher dans les blobs de code
  --commits, -c         Rechercher dans les commits
  --wiki-blobs, -w      Rechercher dans les blobs wiki
  --issues, -i          Rechercher dans les issues
  --merge-requests, -mr
                        Rechercher dans les merge requests
  --milestones, -m      Rechercher dans les jalons
  --notes, -n           Rechercher dans les notes
  --snippets, -s        Rechercher dans les snippets
  --enumerate, -e       Énumérer cette instance GitLab pour les utilisateurs, groupes, projets. La sortie sera sauvegardée dans des fichiers CSV
  --debug, -d           Activer la journalisation de niveau débogage
  --verbose, -V         Activer une sortie plus détaillée pour la journalisation JSON. Cela inclut plus de champs, mais est plus volumineux

arguments requis :
  --timeframe {d,w,m,a}
                        Jusqu'à quand rechercher : d = 24 heures, w = 7 jours, m = 30 jours, a = depuis toujours

Autres applications Watchman

Vous pourriez être intéressé par les autres applications de la famille Watchman :

  • Slack Watchman
  • Slack Watchman pour Enterprise Grid
  • GitHub Watchman

Licence

Le code source de ce projet est publié sous la GNU General Public Licence. Ce projet n'est pas associé à GitLab.

Télécharger l’outil