
GitHound は、GitHub のダーク検索とパターンマッチング、コンテキスト検出、コミット履歴分析を組み合わせて、GitHub 上で 露出した API キー、シークレット、認証情報 を追跡します。GitHub ダーク を GitHound に入力すると、クエリに一致するすべてのファイルとリポジトリをスキャンしてシークレットを探します。通常のスキャナとは異なり、GitHound は GitHub のコード検索 API を活用するため、いくつかのターゲットだけでなく、すべての 公開リポジトリを完全に可視化できます。詳細は付随するブログ記事をご覧ください。
新しい GitHound Explore ダッシュボードを使って、検索結果をリアルタイムで可視化・管理できます。今すぐ https://githoundexplore.com から無料で始めるか、--dashboard フラグを使用してください。GitHound または TruffleHog のローカルインストールでの使用方法については、Wiki ページ をご覧ください。ダッシュボードなしでも GitHound は引き続き使用できます。
また、GitHub ダークデータベース も開始しました。さまざまな API キーワードのダークを閲覧・検索し、新しいダークのアイデアを得ることができます!https://githoundexplore.com/github-dorks でチェックしてください。
🔍 グローバル GitHub 検索 – Gist を含む GitHub 全体でシークレットを見つける
🔑 スマート API キー検出 – 正規表現 + エントロピー + コンテキストマッチング
🕵️ コミット履歴の掘り下げ – 削除または元に戻された認証情報を発見
🧮 適応スコアリング – 誤検出をフィルタリング
🧰 Base64 デコードとエンコードされたシークレット抽出
💻 自動化パイプラインのための JSON 出力とカスタム正規表現ルール
echo "AKIA" | git-hound または git-hound --query "AKIA"
config.yml に API キーが設定されていることを確認します。./git-hound を実行してテストします(正しいディレクトリにいることを確認してください!)設定:
GitHound は主に config.yml(カレントディレクトリまたは $HOME/.githound/ にある)を使用して設定します。例については config.example.yml を参照してください。
あるいは、環境変数を使用することもできます。これらの変数は config.yml の値を上書きします。
GITHOUND_GITHUB_TOKEN: GitHub API アクセストークンを設定します。GITHOUND_INSERT_KEY: --dashboard 機能用の GitHoundExplore 挿入キーを設定します。GitHound は、Gitleaks の作者によって管理されている API キー正規表現のデータベースを利用しています。
特定のサービスの API キーのパターンを知っていれば、GitHub でそのキーを検索できます。カスタムキー正規表現に一致する結果を独自のスクリプトにパイプして、API キーをそのサービスに対してテストし、リスクのあるアカウントを特定できます。
echo "api.halcorp.biz" | githound --dig-files --dig-commits --many-results --rules halcorp-api-regexes.txt --results-only | python halapitester.py
将来の API キー漏洩を検出するために、GitHub は Push Token Scanning を提供しており、API キーが投稿されるとすぐに検出します。
私の GitHound の主な用途は、バグバウンティプログラムの機密情報を見つけることです。ハイプロファイルなターゲットの場合、--many-results ハックと --languages フラグが、100 ページ以上の結果をスクレイピングするのに便利です。
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 は、Slack や AWS などの一般的なサービス向けの正確な正規表現と、コンテキストに敏感な汎用 API 正規表現を組み合わせて API キーを見つけます。これにより、"Authorization" や "API-Token" などのキーワードに囲まれた、API キーのように見える長い文字列が見つかります。GitHound はこれらを誤検出と仮定し、シャノンエントロピー、辞書単語チェック、一意性計算、エンコード検出によって正当性を証明します。その後、高い確実性を持つ肯定結果を出力します。 シークレットをエンコードするファイルでは、base64 文字列をデコードし、デコードされた文字列から API キーを検索します。
ユースケースと方法論の詳細については、このブログ記事をチェックしてください。
GitHound は、パターンマッチング、ターゲットクエリ、堅牢なスコアリングシステムを使用して、GitHub 上の露出した API キーを簡単に見つけられるようにします。
使用方法:
-h, --help githound のヘルプを表示
--dashboard 結果をウェブダッシュボードにストリーミング(https://githoundexplore.com を参照)
--all-results シークレットを含まない場合でもすべての結果を表示
--api-debug GitHub API リクエストの詳細を表示し、件数をカウント
--config-file string 設定ファイルのパスを指定
--debug 冗長なデバッグログを有効化
--dig-commits コミット履歴を掘り下げてさらにシークレットを見つける(CPU 集中)
--dig-files リポジトリのファイルを掘り下げてさらにシークレットを見つける(CPU 集中)
--fast ファイルの grep をスキップし、検索プレビューのみを返す
--json 結果を JSON 形式で表示
--many-results フィルタリングハックで 100 ページ以上を検索
--no-api-keys 汎用 API キーを検索しない
--no-files 興味深いファイルを検索しない
--no-gists Gist を検索しない
--no-keywords 組み込みキーワードを検索しない
--no-repos リポジトリを検索しない
--no-scoring スコアリングによる誤検出フィルタリングを行わない
--otp-code string GitHub アカウントの 2FA トークン(認証アプリで 2FA を有効にしている場合のみ使用)
--pages int クエリごとに検索する最大ページ数(デフォルト 100)
--profile localhost:6060 で pprof プロファイリングを有効化
--profile-addr string pprof プロファイルを提供するアドレス(デフォルト "localhost:6060")
--query string クエリ文字列(デフォルト: 標準入力)
--query-file string サブドメイン(またはその他のクエリ)のリストを含むファイル
--results-only マッチ文字列のみを表示
--rules string 正規表現のリストまたは GitLeaks ルールフォルダへのパス(デフォルト "rules/")
--search-type api 検索インターフェース(api または `ui`)
--threads int 掘り下げに使用するスレッド数(デフォルト 20)
launch.json で必要なフラグを args として送信します。 "args": [ "searchKeyword", "tillsongalloway.com", "--regex-file", "regexes.txt" ]
メインフォルダから: go build .
Git-Hound の Docker イメージをビルドするには、次のコマンドを使用します:
docker build -t my-githound-container .
このコマンドは、タグ my-githound-container で Docker イメージをビルドします。タグ名は好みに応じて変更できます。
Git-Hound Docker コンテナを実行するには、config.yaml ファイルと入力ファイル(subdomains.txt など)を Docker ボリューム経由で提供する必要があります。
config.yaml のマウントホストマシン上の既知の場所に config.yaml ファイルを配置します。このファイルには、GitHub の認証情報を含む Git-Hound の設定を記述します。
例 config.yaml:
# config.yaml
github_username: "your_username"
github_password: "your_password"
# オプション: GitHub TOTP シード
# github_totp_seed: "ABCDEF1234567890"
subdomains.txt のようなファイルがある場合は、ホストマシンのディレクトリに配置します。
次のコマンドを使用して、設定と入力ファイルを含むコンテナを実行します:
docker run -v /path/to/config.yaml:/root/.githound/config.yaml -v $(pwd)/data:/data my-githound-container --subdomain-file /data/subdomains.txt
/path/to/config.yaml を実際の config.yaml ファイルのパスに置き換えてください。-v $(pwd)/data:/data の部分は、入力ファイル(subdomains.txt)を含むディレクトリをコンテナ内にマウントします。