
Strumento di ricognizione rapido per GitHub. Analizza la presenza di segreti trapelati su tutto GitHub, non solo nei repository e nelle organizzazioni note. Supporto per GitHub dorks.
GitHound individua chiavi API, segreti e credenziali esposti su GitHub combinando GitHub dorks con pattern matching, rilevamento contestuale e analisi della cronologia dei commit. Inserisci un GitHub dork in GitHound e scansionerà qualsiasi file e repository che corrisponde alla tua query alla ricerca di segreti. A differenza degli scanner tipici, GitHound sfrutta l'API di Code Search di GitHub, che ti dà visibilità completa su tutti i repository pubblici, non solo su pochi target. Maggiori informazioni sono disponibili nel post del blog di accompagnamento.
Visualizza e gestisci i risultati delle tue ricerche in tempo reale con la nuova dashboard GitHound Explore. Inizia ora gratuitamente su https://githoundexplore.com oppure usando il flag --dashboard. Scopri come usarlo con un'installazione locale di GitHound o TruffleHog nella pagina Wiki. Tieni presente che puoi comunque usare GitHound senza la dashboard.
Abbiamo anche avviato un Database di GitHub Dorks, dove puoi navigare e cercare dorks per vari keyword API e ottenere idee per nuovi dorks! Dai un'occhiata su https://githoundexplore.com/github-dorks.
🔍 Ricerca Globale su GitHub – trova segreti su tutto GitHub, inclusi i Gist
🔑 Rilevamento Intelligente di chiavi API – regex + entropia + corrispondenza contestuale
🕵️ Scavo nella Cronologia dei Commit – scopri credenziali eliminate o ripristinate
🧮 Punteggio Adattivo – filtra i falsi positivi
🧰 Decodifica Base64 ed estrazione di segreti codificati
💻 Output JSON e regole regex personalizzate per pipeline di automazione
echo "AKIA" | git-hound oppure git-hound --query "AKIA"
config.yml./git-hound per testare (assicurati di essere nella directory corretta!)Configurazione:
GitHound utilizza principalmente config.yml (situato nella directory corrente o in $HOME/.githound/) per la configurazione. Vedi config.example.yml per un esempio.
In alternativa, puoi usare variabili d'ambiente, che sovrascriveranno i valori in config.yml:
GITHOUND_GITHUB_TOKEN: Imposta il token di accesso all'API di GitHub.GITHOUND_INSERT_KEY: Imposta la Insert Key di GitHoundExplore per la funzionalità --dashboard.GitHound utilizza un database di regex per chiavi API mantenuto dagli autori di Gitleaks.
Conoscere il pattern per le chiavi API di un servizio specifico ti permette di cercare su GitHub queste chiavi. Puoi quindi reindirizzare le corrispondenze per la tua regex personalizzata verso il tuo script per testare la chiave API contro il servizio e identificare l'account a rischio.
echo "api.halcorp.biz" | githound --dig-files --dig-commits --many-results --rules halcorp-api-regexes.txt --results-only | python halapitester.py
Per rilevare future fughe di chiavi API, GitHub offre Push Token Scanning per rilevare immediatamente le chiavi API quando vengono pubblicate.
Il mio uso principale di GitHound è per trovare informazioni sensibili per programmi Bug Bounty. Per target di alto profilo, l'hack --many-results e il flag --languages sono utili per raschiare più di 100 pagine di risultati.
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 trova le chiavi API con una combinazione di regex esatte per servizi comuni come Slack e AWS e una regex API generica sensibile al contesto. Questo trova lunghe stringhe che sembrano chiavi API circondate da parole chiave come "Authorization" e "API-Token". GitHound assume che questi siano falsi positivi e poi ne dimostra la legittimità con l'entropia di Shannon, controlli di parole del dizionario, calcoli di unicità e rilevamento della codifica. GitHound poi restituisce i positivi ad alta certezza. Per i file che codificano segreti, decodifica stringhe base64 e cerca le stringhe decodificate alla ricerca di chiavi API.
Dai un'occhiata a questo post del blog per maggiori dettagli sui casi d'uso e le metodologie.
GitHound rende facile trovare chiavi API esposte su GitHub usando pattern matching, interrogazioni mirate e un sistema di punteggio robusto.
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)
Su launch.json invia i flag necessari come args "args": [ "searchKeyword", "tillsongalloway.com", "--regex-file", "regexes.txt" ]
Dalla cartella principale: go build .
Per creare l'immagine Docker per Git-Hound, usa il seguente comando:
docker build -t my-githound-container .
Questo comando crea l'immagine Docker con il tag my-githound-container. Puoi cambiare il nome del tag a tuo piacimento.
Per eseguire il container Docker di Git-Hound, dovrai fornire il tuo file config.yaml e qualsiasi file di input (come subdomains.txt) tramite volumi Docker.
config.yamlPosiziona il tuo file config.yaml in una posizione nota sulla tua macchina host. Questo file deve contenere la tua configurazione Git-Hound, incluse le credenziali GitHub.
Esempio di config.yaml:
# config.yaml
github_username: "your_username"
github_password: "your_password"
# Optional: GitHub TOTP seed
# github_totp_seed: "ABCDEF1234567890"
Se hai un file come subdomains.txt, posizionalo in una directory sulla tua macchina host.
Usa il seguente comando per eseguire il container con la tua configurazione e i file di input:
docker run -v /path/to/config.yaml:/root/.githound/config.yaml -v $(pwd)/data:/data my-githound-container --subdomain-file /data/subdomains.txt
Sostituisci /path/to/config.yaml con il percorso effettivo del tuo file config.yaml. La parte -v $(pwd)/data:/data monta una directory contenente i tuoi file di input (subdomains.txt) all'interno del container.