Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
gitlab-watchman — Exponierte Geheimnisse und personenbezogene Daten in GitLab finden | Kitploit
Tools/GitHubGitHub/papermtn/gitlab-watchman
SchwachstellenscannerCode-AnalyseDatenexfiltrationInformationsbeschaffungDevSecOpsSecret-Erkennung
GitHubpapermtn/gitlab-watchman

gitlab-watchman

Exponierte Geheimnisse und personenbezogene Daten in GitLab finden

Repository anzeigen
20625vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GitLab Watchman

Python 2.7 and 3 compatible PyPI version License: MIT

Über GitLab Watchman

GitLab Watchman ist eine Anwendung, die die GitLab-API nutzt, um offengelegte Geheimnisse und personenbezogene Daten zu erkennen. Sie listet außerdem die GitLab-Instanz auf nützliche Informationen auf.

Funktionen

Geheimnis-Erkennung

Es durchsucht GitLab nach intern geteilten Projekten und betrachtet:

  • Code
  • Commits
  • Wiki-Seiten
  • Issues
  • Merge-Anfragen
  • Meilensteine
  • Notizen
  • Snippets

Für die folgenden Daten:

  • GCP-Schlüssel und Dienstkontodateien
  • AWS-Schlüssel
  • Azure-Schlüssel und Dienstkontodateien
  • Google-API-Schlüssel
  • Slack-API-Tokens & Webhooks
  • Private Schlüssel (SSH, PGP, andere diverse private Schlüssel)
  • Offengelegte Tokens (Bearer-Tokens, Zugriffstokens, client_secret usw.)
  • S3-Konfigurationsdateien
  • Tokens für Dienste wie Heroku, PayPal und mehr
  • Passwörter im Klartext
  • und mehr
Zeitbasierte Suche

Sie können GitLab Watchman ausführen, um Ergebnisse bis zu folgendem Zeitraum zurück zu durchsuchen:

  • 24 Stunden
  • 7 Tage
  • 30 Tage
  • Alle Zeit

Das bedeutet, dass Sie nach einem Tiefenscan GitLab Watchman regelmäßig planen können, um nur Ergebnisse aus Ihrem gewählten Zeitraum zurückzugeben.

Aufzählung

GitLab Watchman kann potenziell nützliche Informationen aus einer GitLab-Instanz auflisten:

  • Instanz-Metadaten
  • Informationen über den aufrufenden Benutzer/das verwendete Token
  • Alle Benutzer in eine CSV-Datei ausgeben
  • Alle Projekte in eine CSV-Datei ausgeben
  • Alle Gruppen in eine CSV-Datei ausgeben

Signaturen

GitLab Watchman verwendet benutzerdefinierte YAML-Signaturen, um Übereinstimmungen in GitLab zu erkennen. Diese Signaturen werden aus dem zentralen Watchman Signatures Repository bezogen. Slack Watchman aktualisiert seine Signaturbasis automatisch zur Laufzeit, um sicherzustellen, dass die neuesten Signaturen zur Erkennung von Geheimnissen verwendet werden.

Signaturen unterdrücken

Sie können Signaturen definieren, die Sie beim Ausführen von GitLab Watchman deaktivieren möchten, indem Sie deren IDs im Abschnitt disabled_signatures der watchman.conf-Datei hinzufügen. Zum Beispiel:

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

Die ID einer Signatur finden Sie in den einzelnen YAML-Dateien im Watchman Signatures Repository.

Protokollierung

GitLab Watchman bietet die folgenden Protokollierungsoptionen:

  • Terminalfreundliche Standardausgabe
  • JSON an Standardausgabe

GitLab Watchman verwendet standardmäßig die terminalfreundliche Standardausgabe, wenn keine Option angegeben ist. Dies ist für Menschen leichter lesbar.

JSON-Protokollierung ist ebenfalls verfügbar, was ideal für die Aufnahme in ein SIEM oder andere Protokollanalyseplattformen ist.

Die JSON-formatierte Protokollierung kann wie folgt einfach in eine Datei umgeleitet werden:

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

Voraussetzungen

GitLab-Versionen

GitLab Watchman verwendet die v4-API und funktioniert mit GitLab Enterprise Edition Versionen:

  • 13.0 und höher - Ja

  • GitLab.com - Ja

  • 12.0 - 12.10 - Vielleicht, ungetestet, aber bei Verwendung von v4 der API könnte es funktionieren

GitLab-Lizenz & Elasticsearch

Um die folgenden Bereiche zu durchsuchen:

  • blobs
  • wiki_blobs
  • commits

Die GitLab-Instanz muss Elasticsearch konfiguriert haben und die Enterprise Edition mit mindestens einer GitLab Starter- oder Bronze-Lizenz ausführen.

GitLab persönlicher Zugriffstoken

Um GitLab Watchman auszuführen, benötigen Sie ein persönliches Zugriffstoken von GitLab.

Sie können ein persönliches Zugriffstoken in der GitLab-GUI über Einstellungen -> Zugriffstokens -> Persönliches Zugriffstoken hinzufügen erstellen.

Das Token benötigt Berechtigungen für die folgenden Bereiche:

root@kitploit:~
api

Hinweis: Persönliche Zugriffstokens handeln im Namen des Benutzers, der sie erstellt. Daher empfehle ich, ein Token mit einem Dienstkonto zu erstellen, da die App sonst Zugriff auf Ihre privaten Repositorys hat.

GitLab-URL

Sie müssen auch die URL Ihrer GitLab-Instanz angeben.

Token und URL bereitstellen

GitLab Watchman bezieht das GitLab-Token und die URL aus den Umgebungsvariablen GITLAB_WATCHMAN_TOKEN und GITLAB_WATCHMAN_URL.

watchman.conf-Datei

Konfigurationsoptionen können in einer Datei namens watchman.conf übergeben werden, die in Ihrem Home-Verzeichnis gespeichert sein muss. Die Datei sollte dem YAML-Format folgen und wie folgt aussehen:

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

GitLab Watchman sucht zur Laufzeit nach dieser Datei und verwendet die darin enthaltenen Konfigurationsoptionen.

Installation

Sie können die neueste stabile Version über pip installieren:

python3 -m pip install gitlab-watchman

Oder selbst aus dem Quellcode erstellen. Laden Sie die Quellcodedateien der Version herunter und führen Sie dann im Hauptverzeichnis des Repositorys Folgendes aus:

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

Docker-Image

GitLab Watchman ist auch im Docker Hub als Docker-Image verfügbar:

docker pull papermountain/gitlab-watchman:latest

Sie können GitLab Watchman dann in einem Container ausführen, wobei Sie sicherstellen müssen, dass die erforderlichen Umgebungsvariablen übergeben werden:

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

// scan all
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

Verwendung

GitLab Watchman wird als globaler Befehl installiert, verwenden Sie es wie folgt:

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

Andere Watchman-Apps

Möglicherweise interessieren Sie sich für die anderen Apps der Watchman-Familie:

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

Lizenz

Der Quellcode dieses Projekts wird unter der GNU General Public License veröffentlicht. Dieses Projekt ist nicht mit GitLab verbunden.

Tool herunterladen