mcpField
G
google-dorks-catalog

google-dorks-catalog

github.com/uphiagoセキュリティ1.3k45 回インストール8 週間前に更新
リポジトリ

google-dorks-catalog について

google-dorks-catalogは、パッシブなセキュリティ偵察に使う検索クエリ集です。露出ファイル、認証情報、特定サービス向けのGoogle Dorksを分類し、GitHubコード検索や結果確認の例も掲載しています。

主な機能

  1. 01露出ファイルの種類別クエリ
  2. 02サービス別の検索パターン
  3. 03GitHubコード検索の例
  4. 04証明書SANの発見コマンド
  5. 05検索結果の検証例

活用シーン

  1. 01パッシブ偵察で露出設定を検索
  2. 02漏えいの可能性がある認証情報を探索
  3. 03証明書から関連ドメインを発見
  4. 04検索結果を手動で検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/uphiago/recon-skills --skill google-dorks-catalog

インストール後、Claude Code で/google-dorks-catalogを入力して読み込まれたか確認します。

詳細

Google Dorks カタログ -- 設定ファイルとシークレットの露出

使用するタイミング

  • すべてのターゲットでのパッシブな偵察(フェーズ 1)
  • crt.sh によるサブドメイン列挙の後
  • あらゆるアクティブスキャンの前
  • 実際の 100 件以上のターゲットで検証済み

高精度な Dorks

重大なファイルの露出
site:$target "APP_KEY"
site:$target "DB_PASSWORD"
site:$target "-----BEGIN RSA PRIVATE KEY-----"
site:$target filetype:env
site:$target inurl:git/config
site:$target intitle:"index of" ".env"
site:$target "api_key" OR "apikey" OR "secret_key"
site:$target "firebase" "apiKey"
site:$target "supabase" "anon" "key"
site:$target inurl:"/.env" "DB_PASSWORD"
site:$target "client_secret" "redirect_uris" extension:json
site:$target "private_key" "client_email" extension:json
設定ファイルの露出(すべての拡張子)
site:$target ext:log | ext:txt | ext:conf | ext:cnf | ext:ini | ext:env | ext:sh | ext:bak | ext:backup | ext:swp | ext:old | ext:~ | ext:git | ext:svn | ext:htpasswd | ext:htaccess | ext:json

対象となるもの:

  • logs -- トークン、SQL クエリ、メールアドレスが平文で含まれています
  • txt/conf/cnf/ini -- サーバー設定、DB ホスト
  • env -- 認証情報を含む環境変数
  • sh -- パスワードがハードコードされたスクリプト
  • bak/backup/swp/old/~ -- 古いバージョンを含むバックアップファイル
  • git/svn -- 露出したバージョン管理リポジトリ
  • htpasswd/htaccess -- ハッシュを含むアクセス制御
  • json -- サービスアカウント、Firebase 設定、Supabase 設定
サービス固有の Dorks
Supabase
site:$target "supabase.co" "anon_key" OR "SUPABASE_ANON_KEY"
Firebase
site:$target "firebase-adminsdk" "private_key_id" extension:json
AWS
site:$target "AKIA" filetype:env NOT example NOT test
SendGrid
site:$target "SG." filetype:env NOT example
MongoDB
site:$target "mongodb+srv://" "password"
PostgreSQL
site:$target "postgresql://" "password" ext:env
JWT シークレット
site:$target "JWT_SECRET" OR "jwt_secret" filetype:env
OpenAI API キー
site:$target "sk-" filetype:env OR filetype:txt
GitHub トークン
site:$target "ghp_" OR "gho_" OR "ghu_"

GitHub コード検索パターン

GitHub の個人用トークンを使用すると、検索結果が大幅に向上します:

headers = {"Authorization": "token GH_TOKEN"}
base = "https://api.github.com/search/code"

# SA Keys (Firebase/GCP) -- ~1 in 30 is valid
params = {"q": '"type": "service_account" "private_key" "project_id"'}

# .env with real credentials
params = {"q": 'DB_PASSWORD+DB_HOST+APP_KEY+filename:.env+NOT+example+NOT+your+NOT+test'}

# Supabase URLs + keys
params = {"q": 'supabase.co+SUPABASE_URL+SUPABASE_ANON_KEY+NOT+example+NOT+your'}

# AWS Keys
params = {"q": 'AKIA+filename:.env+NOT+example+NOT+your'}

# SendGrid keys
params = {"q": 'SG.+filename:.env+NOT+example'}

# MongoDB connection strings
params = {"q": 'mongodb+srv://+password+filename:.env'}

証明書 SAN の調査

# Extract SANs directly from the certificate
openssl s_client -connect $TARGET:443 -servername $TARGET </dev/null 2>/dev/null | \
  openssl x509 -noout -ext subjectAltName | grep -Eo 'DNS:[^,]+' | cut -d: -f2 | sort -u

実際の事例

実際の事例(情報を伏せています):SSO 証明書から、通常の CT 検索では見つからなかった ORG_DOMAIN_1、ORG_DOMAIN_2、ORG_DOMAIN_3 が判明しました。

注意点

問題解決策
Google のレート制限検索の間隔を空け、シークレットモードを使い、IP を切り替える
GitHub API の制限個人用トークンを使う(1 時間あたり 5000 リクエスト)
サンプルリポジトリによる誤検出NOT example NOT test NOT your を追加する

検証

# Test dork results manually
curl --max-time 30 --connect-timeout 10 -sk "https://$TARGET/.env" | head -5
# Verify GitHub found secrets
python3 -c "import json; print(json.loads(open('result.json').read()))"

コメント