google-dorks-catalog について
google-dorks-catalogは、パッシブなセキュリティ偵察に使う検索クエリ集です。露出ファイル、認証情報、特定サービス向けのGoogle Dorksを分類し、GitHubコード検索や結果確認の例も掲載しています。
主な機能
- 01露出ファイルの種類別クエリ
- 02サービス別の検索パターン
- 03GitHubコード検索の例
- 04証明書SANの発見コマンド
- 05検索結果の検証例
活用シーン
- 01パッシブ偵察で露出設定を検索
- 02漏えいの可能性がある認証情報を探索
- 03証明書から関連ドメインを発見
- 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()))"
コメント
Markdown 対応