
Ferramenta rápida de reconhecimento no GitHub. Escaneia segredos vazados por todo o GitHub, não apenas repositórios e organizações conhecidos. Suporte para dorks do GitHub.
O GitHound caça chaves de API, segredos e credenciais expostas no GitHub combinando GitHub dorks com correspondência de padrões, detecção contextual e análise do histórico de commits. Insira um GitHub dork no GitHound, e ele irá escanear todos os arquivos e repositórios que corresponderem à sua consulta em busca de segredos. Diferente de scanners típicos, o GitHound usa a API de Pesquisa de Código do GitHub, que oferece visibilidade total em todos os repositórios públicos, não apenas em alguns alvos. Mais informações estão disponíveis na postagem do blog correspondente.
Visualize e gerencie seus resultados de pesquisa em tempo real com o novo painel GitHound Explore. Comece agora gratuitamente em https://githoundexplore.com ou usando a flag --dashboard. Saiba como usar isso com uma instalação local do GitHound ou TruffleHog na página Wiki. Lembre-se de que você ainda pode usar o GitHound sem o painel.
Também começamos um Banco de Dados de GitHub Dorks, onde você pode navegar e pesquisar dorks para várias palavras-chave de API e obter ideias para novos dorks! Confira em https://githoundexplore.com/github-dorks.
🌍 Pesquisa Global no GitHub – encontre segredos em todo o GitHub, incluindo Gists
🔑 Detecção Inteligente de Chaves de API – regex + entropia + correspondência de contexto
🕵️ Escavação do Histórico de Commits – descubra credenciais deletadas ou revertidas
🧮 Pontuação Adaptativa – filtra falsos positivos
🧰 Decodificação Base64 e extração de segredos codificados
💻 Saída JSON e regras regex personalizadas para pipelines de automação
echo "AKIA" | git-hound ou git-hound --query "AKIA"
config.yml./git-hound para testar (certifique-se de estar no diretório correto!)Configuração:
O GitHound usa principalmente o config.yml (localizado no diretório atual ou em $HOME/.githound/) para configuração. Veja config.example.yml para um exemplo.
Alternativamente, você pode usar variáveis de ambiente, que sobrescreverão os valores em config.yml:
GITHOUND_GITHUB_TOKEN: Define o token de acesso à API do GitHub.GITHOUND_INSERT_KEY: Define a Chave de Inserção do GitHoundExplore para o recurso --dashboard.O GitHound utiliza um banco de dados de regexes de chaves de API mantido pelos autores do Gitleaks.
Conhecer o padrão das chaves de API de um serviço específico permite que você pesquise no GitHub por essas chaves. Você pode então canalizar as correspondências da sua regex de chave personalizada para seu próprio script para testar a chave de API no serviço e identificar a conta em risco.
echo "api.halcorp.biz" | githound --dig-files --dig-commits --many-results --rules halcorp-api-regexes.txt --results-only | python halapitester.py
Para detectar futuros vazamentos de chaves de API, o GitHub oferece Push Token Scanning para detectar imediatamente chaves de API assim que são publicadas.
Meu uso principal do GitHound é encontrar informações confidenciais para programas de Bug Bounty. Para alvos de alto perfil, o hack --many-results e a flag --languages são úteis para extrair mais de 100 páginas de resultados.
echo "\"uberinternal.com\"" | githound --dig-files --dig-commits --many-results --languages common-languages.txt --threads 100
https://github.com/tillson/git-hound/blob/master/internal/app/keyword_scan.go O GitHound encontra chaves de API com uma combinação de regexes exatas para serviços comuns como Slack e AWS e uma regex de API genérica sensível ao contexto. Isso encontra strings longas que parecem chaves de API cercadas por palavras-chave como "Authorization" e "API-Token". O GitHound assume que esses são falsos positivos e então prova sua legitimidade com entropia de Shannon, verificações de palavras de dicionário, cálculos de singularidade e detecção de codificação. O GitHound então gera positivos de alta certeza. Para arquivos que codificam segredos, decodifica strings base64 e pesquisa nas strings codificadas por chaves de API.
Confira esta postagem do blog para mais detalhes sobre casos de uso e metodologias.
O GitHound facilita a localização de chaves de API expostas no GitHub usando correspondência de padrões, consultas direcionadas e um sistema de pontuação robusto.
Usage:
-h, --help ajuda para githound
--dashboard Transmitir resultados para o painel web (veja https://githoundexplore.com)
--all-results Exibir todos os resultados, mesmo que não contenham segredos
--api-debug Exibe detalhes sobre requisições da API do GitHub e as conta.
--config-file string Forneça o caminho para um arquivo de configuração.
--debug Ativa o registro de depuração detalhado.
--dig-commits Escavar o histórico de commits para encontrar mais segredos (intensivo em CPU).
--dig-files Escavar os arquivos do repositório para encontrar mais segredos (intensivo em CPU).
--fast Pular a busca em arquivos e retornar apenas a prévia da pesquisa
--json Imprimir resultados no formato JSON
--many-results Pesquisar mais de 100 páginas com hack de filtragem
--no-api-keys Não pesquisar por chaves de API genéricas.
--no-files Não pesquisar por arquivos interessantes.
--no-gists Não pesquisar Gists
--no-keywords Não pesquisar por palavras-chave embutidas
--no-repos Não pesquisar repositórios
--no-scoring Não usar pontuação para filtrar falsos positivos.
--otp-code string Token 2FA da conta do Github usado para login. (Use apenas se você tiver 2FA ativado em sua conta via aplicativo autenticador)
--pages int Número máximo de páginas para pesquisar por consulta (padrão 100)
--profile Ativar perfilamento pprof em localhost:6060
--profile-addr string Endereço para servir perfis pprof (padrão "localhost:6060")
--query string Uma string de consulta (padrão: stdin)
--query-file string Um arquivo contendo uma lista de subdomínios (ou outras consultas).
--results-only Imprimir apenas strings de correspondência.
--rules string Caminho para uma lista de regexes ou uma pasta de regras do GitLeaks. (padrão "rules/")
--search-type api Interface de pesquisa (api ou 'ui').
--threads int Threads para escavar (padrão 20)
No launch.json envie as flags necessárias como args "args": [ "searchKeyword", "tillsongalloway.com", "--regex-file", "regexes.txt" ]
A partir da pasta principal: go build .
Para criar a imagem Docker do Git-Hound, use o seguinte comando:
docker build -t my-githound-container .
Este comando cria a imagem Docker com a tag my-githound-container. Você pode alterar o nome da tag conforme sua preferência.
Para executar o container Docker do Git-Hound, você precisará fornecer seu arquivo config.yaml e quaisquer arquivos de entrada (como subdomains.txt) através de volumes Docker.
config.yamlColoque seu arquivo config.yaml em um local conhecido na sua máquina host. Este arquivo deve conter a configuração do Git-Hound, incluindo credenciais do GitHub.
Exemplo de config.yaml:
# config.yaml
github_username: "your_username"
github_password: "your_password"
# Optional: GitHub TOTP seed
# github_totp_seed: "ABCDEF1234567890"
Se você tiver um arquivo como subdomains.txt, coloque-o em um diretório na sua máquina host.
Use o seguinte comando para executar o container com seus arquivos de configuração e entrada:
docker run -v /path/to/config.yaml:/root/.githound/config.yaml -v $(pwd)/data:/data my-githound-container --subdomain-file /data/subdomains.txt
Substitua /path/to/config.yaml pelo caminho real para seu arquivo config.yaml. A parte -v $(pwd)/data:/data monta um diretório contendo seus arquivos de entrada (subdomains.txt) dentro do container.