
Outil de reconnaissance GitHub rapide. Scanne les secrets divulgués sur l'ensemble de GitHub, pas seulement les dépôts et organisations connus. Prise en charge des dorks GitHub.
GitHound traque les clés API, secrets et identifiants exposés sur GitHub en combinant les GitHub dorks avec la correspondance de motifs, la détection contextuelle et l'analyse de l'historique des commits. Saisissez un GitHub dork dans GitHound, et il analysera tous les fichiers et dépôts correspondant à votre requête à la recherche de secrets. Contrairement aux scanners typiques, GitHound exploite l'API de recherche de code de GitHub, ce qui vous donne une visibilité complète sur tous les dépôts publics, et non seulement quelques cibles. Plus d'informations sont disponibles dans l'article de blog associé.
Visualisez et gérez vos résultats de recherche en temps réel avec le nouveau tableau de bord GitHound Explore. Commencez dès maintenant gratuitement sur https://githoundexplore.com ou en utilisant l'option --dashboard. Apprenez à l'utiliser avec une installation locale de GitHound ou TruffleHog sur la page Wiki. Gardez à l'esprit que vous pouvez toujours utiliser GitHound sans le tableau de bord.
Nous avons également lancé une base de données GitHub Dorks, où vous pouvez parcourir et rechercher des dorks pour divers mots-clés d'API et trouver des idées de nouveaux dorks ! Consultez-la sur https://githoundexplore.com/github-dorks.
🔍 Recherche globale GitHub – trouver des secrets sur tout GitHub, y compris les Gists
🔑 Détection intelligente de clés API – regex + entropie + correspondance contextuelle
🕵️ Fouille de l'historique des commits – découvrir des identifiants supprimés ou restaurés
🧮 Score adaptatif – filtre les faux positifs
🧰 Décodage Base64 et extraction de secrets encodés
💻 Sortie JSON et règles regex personnalisées pour les pipelines d'automatisation
echo "AKIA" | git-hound ou git-hound --query "AKIA"
config.yml./git-hound pour tester (assurez-vous d'être dans le bon répertoire !)Configuration :
GitHound utilise principalement config.yml (situé dans le répertoire courant ou $HOME/.githound/) pour la configuration. Voir config.example.yml pour un exemple.
Alternativement, vous pouvez utiliser des variables d'environnement, qui remplaceront les valeurs de config.yml :
GITHOUND_GITHUB_TOKEN : Définit le jeton d'accès à l'API GitHub.GITHOUND_INSERT_KEY : Définit la clé d'insertion GitHoundExplore pour la fonctionnalité --dashboard.GitHound utilise une base de données d'expressions régulières de clés API maintenue par les auteurs de Gitleaks.
Connaître le modèle des clés API d'un service spécifique vous permet de rechercher ces clés sur GitHub. Vous pouvez ensuite rediriger les correspondances de votre expression régulière de clé personnalisée vers votre propre script pour tester la clé API par rapport au service et identifier le compte à risque.
echo "api.halcorp.biz" | githound --dig-files --dig-commits --many-results --rules halcorp-api-regexes.txt --results-only | python halapitester.py
Pour détecter les futures fuites de clés API, GitHub offre Push Token Scanning pour détecter immédiatement les clés API dès qu'elles sont publiées.
Mon utilisation principale de GitHound est la recherche d'informations sensibles pour les programmes Bug Bounty. Pour les cibles de haute visibilité, l'astuce --many-results et l'option --languages sont utiles pour extraire plus de 100 pages de résultats.
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 GitHound trouve les clés API avec une combinaison d'expressions régulières exactes pour des services courants comme Slack et AWS et une expression régulière générique sensible au contexte. Cela trouve de longues chaînes qui ressemblent à des clés API entourées de mots-clés comme "Authorization" et "API-Token". GitHound suppose qu'il s'agit de faux positifs puis prouve leur légitimité avec l'entropie de Shannon, des vérifications de mots de dictionnaire, des calculs d'unicité et la détection d'encodage. GitHound produit ensuite des positifs à haute certitude. Pour les fichiers qui encodent des secrets, il décode les chaînes base64 et recherche les clés API dans les chaînes encodées.
Consultez cet article de blog pour plus de détails sur les cas d'utilisation et les méthodologies.
GitHound facilite la recherche de clés API exposées sur GitHub en utilisant la correspondance de motifs, des requêtes ciblées et un système de notation robuste.
Usage:
-h, --help help for githound
--dashboard Stream results to web dashboard (see https://githoundexplore.com)
--all-results Print all results, even if they do not contain secrets
--api-debug Prints details about GitHub API requests and counts them.
--config-file string Supply the path to a config file.
--debug Enables verbose debug logging.
--dig-commits Dig through commit history to find more secrets (CPU intensive).
--dig-files Dig through the repo's files to find more secrets (CPU intensive).
--fast Skip file grepping and only return search preview
--json Print results in JSON format
--many-results Search >100 pages with filtering hack
--no-api-keys Don't search for generic API keys.
--no-files Don't search for interesting files.
--no-gists Don't search Gists
--no-keywords Don't search for built-in keywords
--no-repos Don't search repos
--no-scoring Don't use scoring to filter out false positives.
--otp-code string Github account 2FA token used for sign-in. (Only use if you have 2FA enabled on your account via authenticator app)
--pages int Maximum pages to search per query (default 100)
--profile Enable pprof profiling on localhost:6060
--profile-addr string Address to serve pprof profiles (default "localhost:6060")
--query string A query string (default: stdin)
--query-file string A file containing a list of subdomains (or other queries).
--results-only Only print match strings.
--rules string Path to a list of regexes or a GitLeaks rules folder. (default "rules/")
--search-type api Search interface (api or `ui`).
--threads int Threads to dig with (default 20)
Sur launch.json, envoyez les options nécessaires en tant qu'args "args": [ "searchKeyword", "tillsongalloway.com", "--regex-file", "regexes.txt" ]
Depuis le dossier principal : go build .
Pour construire l'image Docker de Git-Hound, utilisez la commande suivante :
docker build -t my-githound-container .
Cette commande construit l'image Docker avec le tag my-githound-container. Vous pouvez changer le nom du tag selon vos préférences.
Pour exécuter le conteneur Docker Git-Hound, vous devrez fournir votre fichier config.yaml et tout fichier d'entrée (comme subdomains.txt) via des volumes Docker.
config.yamlPlacez votre fichier config.yaml à un emplacement connu sur votre machine hôte. Ce fichier doit contenir votre configuration Git-Hound, y compris les identifiants GitHub.
Exemple config.yaml :
# config.yaml
github_username: "your_username"
github_password: "your_password"
# Optional: GitHub TOTP seed
# github_totp_seed: "ABCDEF1234567890"
Si vous avez un fichier comme subdomains.txt, placez-le dans un répertoire sur votre machine hôte.
Utilisez la commande suivante pour exécuter le conteneur avec votre configuration et vos fichiers d'entrée :
docker run -v /path/to/config.yaml:/root/.githound/config.yaml -v $(pwd)/data:/data my-githound-container --subdomain-file /data/subdomains.txt
Remplacez /path/to/config.yaml par le chemin réel de votre fichier config.yaml. La partie -v $(pwd)/data:/data monte un répertoire contenant vos fichiers d'entrée (subdomains.txt) dans le conteneur.