Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
gitlab-watchman — Encontrando segredos expostos e dados pessoais no GitLab | Kitploit
Ferramentas/GitHubGitHub/papermtn/gitlab-watchman
Scanners de VulnerabilidadesAnálise de CódigoExfiltração de DadosColeta de InformaçõesDevSecOpsDetecção de Segredos
GitHubpapermtn/gitlab-watchman

gitlab-watchman

Encontrando segredos expostos e dados pessoais no GitLab

Ver Repositório
20625há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

GitLab Watchman

Python 2.7 and 3 compatible PyPI version License: MIT

Sobre o GitLab Watchman

GitLab Watchman é uma aplicação que usa a API do GitLab para detectar segredos expostos e dados pessoais. Também enumera a instância do GitLab para qualquer informação útil.

Funcionalidades

Detecção de Segredos

Pesquisa no GitLab por projetos compartilhados internamente e analisa:

  • Código
  • Commits
  • Páginas Wiki
  • Issues
  • Merge requests
  • Milestones
  • Notas
  • Snippets

Para os seguintes dados:

  • Chaves GCP e arquivos de contas de serviço
  • Chaves AWS
  • Chaves Azure e arquivos de contas de serviço
  • Chaves de API do Google
  • Tokens da API Slack e webhooks
  • Chaves privadas (SSH, PGP, qualquer outra chave privada diversa)
  • Tokens expostos (Bearer tokens, access tokens, client_secret etc.)
  • Arquivos de configuração S3
  • Tokens para serviços como Heroku, PayPal e mais
  • Senhas em texto plano
  • e mais
Pesquisa baseada em tempo

Você pode executar o GitLab Watchman para procurar resultados que remontam até:

  • 24 horas
  • 7 dias
  • 30 dias
  • Todo o tempo

Isso significa que, após uma varredura profunda, você pode agendar o GitLab Watchman para executar regularmente e retornar apenas resultados do seu período de tempo escolhido.

Enumeração

GitLab Watchman pode enumerar informações potencialmente úteis de uma instância do GitLab:

  • Metadados da instância
  • Informações sobre o usuário/token em uso
  • Exportar todos os usuários para arquivo CSV
  • Exportar todos os projetos para arquivo CSV
  • Exportar todos os grupos para arquivo CSV

Assinaturas

GitLab Watchman usa assinaturas YAML personalizadas para detectar correspondências no GitLab. Essas assinaturas são extraídas do repositório central Watchman Signatures. O Slack Watchman atualiza automaticamente sua base de assinaturas em tempo de execução para garantir que está usando as assinaturas mais recentes para detectar segredos.

Suprimindo Assinaturas

Você pode definir assinaturas que deseja desabilitar ao executar o GitLab Watchman adicionando seus IDs à seção 'disabled_signatures' do arquivo 'watchman.conf'. Por exemplo:

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

Você pode encontrar o ID de uma assinatura nos arquivos YAML individuais no repositório Watchman Signatures.

Registro de Logs

GitLab Watchman oferece as seguintes opções de registro de logs:

  • Stdout amigável para terminal
  • JSON para Stdout

GitLab Watchman usa por padrão o registro de logs stdout amigável para terminal se nenhuma opção for especificada. Isso foi projetado para ser mais fácil para humanos lerem.

O registro de logs em JSON também está disponível, o que é perfeito para ingestão em um SIEM ou outras plataformas de análise de logs.

O registro de logs formatado em JSON pode ser facilmente redirecionado para um arquivo como abaixo:

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

Requisitos

Versões do GitLab

GitLab Watchman usa a API v4 e funciona com versões do GitLab Enterprise Edition:

  • 13.0 e superior - Sim
  • GitLab.com - Sim
  • 12.0 - 12.10 - Talvez, não testado, mas se estiver usando a v4 da API pode funcionar

Licença do GitLab e Elasticsearch

Para pesquisar nos escopos:

  • blobs
  • wiki_blobs
  • commits

A instância do GitLab deve ter Elasticsearch configurado e estar executando a Enterprise Edition com uma licença mínima GitLab Starter ou Bronze.

Token de acesso pessoal do GitLab

Para executar o GitLab Watchman, você precisará de um token de acesso pessoal do GitLab.

Você pode criar um token de acesso pessoal na interface do GitLab através de Configurações -> Tokens de Acesso -> Adicionar um token de acesso pessoal

O token precisa de permissão para os seguintes escopos:

root@kitploit:~
api

Nota: Os tokens de acesso pessoal agem em nome do usuário que os cria, então sugiro que você crie um token usando uma conta de serviço, caso contrário o aplicativo terá acesso aos seus repositórios privados.

URL do GitLab

Você também precisa fornecer a URL da sua instância do GitLab.

Fornecendo token e URL

GitLab Watchman obterá o token e URL do GitLab das variáveis de ambiente GITLAB_WATCHMAN_TOKEN e GITLAB_WATCHMAN_URL.

Arquivo watchman.conf

Opções de configuração podem ser passadas em um arquivo chamado watchman.conf que deve ser armazenado no seu diretório home. O arquivo deve seguir o formato YAML e deve ser como abaixo:

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

GitLab Watchman procurará por este arquivo em tempo de execução e usará as opções de configuração dele.

Instalação

Você pode instalar a versão estável mais recente via pip:

python3 -m pip install gitlab-watchman

Ou compile você mesmo a partir do código-fonte. Baixe os arquivos de origem da versão e, a partir do diretório raiz do repositório, execute:

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

Imagem Docker

GitLab Watchman também está disponível no Docker hub como uma imagem Docker:

docker pull papermountain/gitlab-watchman:latest

Você pode então executar o GitLab Watchman em um contêiner, certificando-se de passar as variáveis de ambiente necessárias:

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

Uso

GitLab Watchman será instalado como um comando global, use da seguinte forma:

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

Outros aplicativos Watchman

Você pode se interessar pelos outros aplicativos da família Watchman:

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

Licença

O código-fonte deste projeto é lançado sob a GNU General Public Licence. Este projeto não está associado ao GitLab.

Baixar ferramenta