mcpField
C
conducting-external-reconnaissance-with-osint

conducting-external-reconnaissance-with-osint

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

conducting-external-reconnaissance-with-osint について

認可を得たセキュリティ評価向けの OSINT 偵察スキルです。ペネトレーションテストやレッドチーム演習に先立ち、組織の公開情報、インフラ、人物、漏えいデータを調査する方法をまとめています。

主な機能

  1. 01ドメインと DNS の列挙
  2. 02インターネット公開資産の発見
  3. 03従業員とメール情報の調査
  4. 04認証情報やデータ漏えいの検索
  5. 05テクノロジースタックの分析

活用シーン

  1. 01組織の外部攻撃対象領域の把握
  2. 02実地テスト前の情報収集
  3. 03公開された認証情報や文書の発見

インストール

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

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill conducting-external-reconnaissance-with-osint

インストール後、Claude Code で/conducting-external-reconnaissance-with-osintを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
references/
api-reference.md
scripts/
agent.py

詳細

OSINT による外部偵察の実施

使用する場面

  • ペネトレーションテストの初期偵察段階で、アクティブスキャンを行う前に情報を収集する
  • 組織の外部攻撃対象領域をマッピングし、未知の資産やシャドー IT 資産を特定する
  • ソーシャルエンジニアリングキャンペーンに向けて、従業員情報、メールアドレスの形式、組織構造を収集する
  • インターネット上に公開された認証情報の漏えい、流出データ、機密文書を特定する
  • レッドチーム活動の前に、組織のデジタルフットプリントの範囲を把握する

次の目的には使用しないでください:個人へのストーキング、嫌がらせ、または無許可の監視。OSINT の収集は、許可された活動の範囲内で実施し、適用されるプライバシー法(GDPR、CCPA)を遵守する必要があります。

前提条件

  • 対象組織に対する偵察を実施するための書面による許可
  • 必要に応じて匿名化されたクエリを実行できる、VPN または Tor を備えた専用の調査用ワークステーション
  • インストール済みの OSINT フレームワークツール:Amass、theHarvester、Shodan CLI、Recon-ng、SpiderFoot
  • より詳細な結果を得るための Shodan、Censys、SecurityTrails、Hunter.io、VirusTotal、GitHub の API キー
  • 調査中に登録が必要なサービスにアクセスするための使い捨てメールアカウント

ワークフロー

ステップ 1:ドメインと DNS の列挙

対象に関連するすべてのドメイン、サブドメイン、DNS レコードを列挙します。

  • ルートドメインの特定:プライマリドメインから開始し、whoxy.com または domaintools.com を使って登録者名、メールアドレス、組織名による逆引き WHOIS 検索を実行し、関連するすべてのドメインを特定します
  • サブドメインの列挙:網羅的に調査するため、複数のツールを実行します:
    • 40 以上のデータソースからパッシブにサブドメインを検出するには、amass enum -passive -d target.com -o amass_subs.txt を実行します
    • 高速なパッシブ列挙には、subfinder -d target.com -all -o subfinder_subs.txt を実行します
    • crt.sh の証明書透明性ログをクエリします:curl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r '.[].name_value' | sort -u
  • DNS レコードの分析:すべてのレコードタイプをクエリします:dig target.com ANY を実行し、メールインフラを明らかにする SPF、DKIM、DMARC レコードを確認して、メールプロバイダーを特定するために MX レコードを列挙します
  • ゾーン転送の試行:dig axfr @ns1.target.com target.com を実行し、設定に不備のある DNS サーバーがないか確認します
  • 結果の集約:検出したすべてのサブドメインを統合し、重複を除去して IP アドレスに名前解決します。IP アドレスを ASN およびホスティングプロバイダーに対応付けます。
ステップ 2:インフラストラクチャとサービスの検出

対象システムを直接スキャンせずに、インターネットに公開されたインフラストラクチャを特定します。

  • Shodan:shodan search "ssl.cert.subject.cn:target.com" を実行し、対象ドメインの TLS 証明書を持つ、インターネットに公開されたすべてのサービスを検出します。組織名や IP 範囲でも検索します。
  • Censys:対象の IP 範囲と TLS 証明書を検索し、インターネット全体のスキャンからインデックス化されたサービス、テクノロジー、潜在的な脆弱性を特定します
  • クラウド資産の検出:cloud_enum などのツールを使用し、S3 バケット(target-com、target-backup、target-dev)、Azure Blob ストレージ(target.blob.core.windows.net)、GCP ストレージを確認します
  • WAF と CDN の特定:wafw00f target.com を使って、オリジンサーバーの IP アドレスを隠している可能性がある Web アプリケーションファイアウォールと CDN プロバイダーを特定します
  • 履歴データ:Wayback Machine(web.archive.org)を使用して、削除されたページ、古いアプリケーションバージョン、忘れられたエンドポイントを見つけます
ステップ 3:メールアドレスと人事情報の調査

ソーシャルエンジニアリングの準備として、従業員情報とメールアドレスを収集します。

  • メールアドレスの収集:theHarvester -d target.com -b all -f harvest_results.html を使用して、検索エンジン、LinkedIn、各種データソースからメールアドレスを収集します
  • メールアドレス形式の特定:hunter.io を使用してメールアドレスの形式(first.last、flast、firstl)を特定し、配信可能か確認します
  • LinkedIn の調査:部署別に従業員を特定します。特に、IT 管理者、セキュリティチームのメンバー、役員を確認します。求人情報や従業員プロフィールに記載されたテクノロジーにも注目します。
  • 組織図:LinkedIn のデータから組織図を作成し、報告体制を把握して主要な人員を特定し、各部署をマッピングします
  • ソーシャルメディアの分析:従業員のソーシャルメディアプロフィールを確認し、社内ツール、テクノロジー、オフィスの所在地、社員証の写真、セキュリティ対策に関する情報を調べます
  • 求人情報:企業の採用ページや求人サイトに掲載された現在および過去の求人情報を分析し、テクノロジースタック、ツール、インフラに関する情報を調べます
ステップ 4:認証情報とデータ漏えいの分析

公開されている認証情報や機密データを検索します。

  • 漏えいデータベース:haveibeenpwned.com API を確認し、対象ドメインに関連付けられたメールアドレスが漏えいしていないか調べます
  • ペーストサイト:Pastebin、GitHub Gists などのペーストサイトを検索し、漏えいした認証情報、設定ファイル、社内文書を探します
  • コードリポジトリ:GitHub、GitLab、Bitbucket を検索します。
    • org:target "password"、org:target "api_key"、org:target "secret"
    • trufflehog または gitleaks を使用して、対象の公開リポジトリ全体からシークレットを自動スキャンします
  • ドキュメントのメタデータ:対象の Web サイトから一般公開されているドキュメント(PDF、DOCX、XLSX)をダウンロードし、exiftool でメタデータを抽出して、社内ユーザー名、ソフトウェアのバージョン、プリンター名、ファイルパスを調べます
  • Google 検索演算子の活用:次の検索演算子を使用します。
    • site:target.com filetype:pdf で公開ドキュメントを検索
    • site:target.com inurl:admin で管理者パネルを検索
    • site:target.com "index of /" でディレクトリ一覧を検索
    • site:pastebin.com "target.com" でペーストサイト内の記載を検索
ステップ 5:テクノロジースタックのプロファイリング

対象が使用するテクノロジー、フレームワーク、サービスを特定します。

  • Web テクノロジーのフィンガープリンティング:whatweb target.com または Wappalyzer のブラウザー拡張機能を使用して、CMS、フレームワーク、JavaScript ライブラリ、分析ツール、サーバーソフトウェアを特定します
  • SSL/TLS の分析:sslyze target.com または testssl.sh target.com を使用して、暗号スイート、プロトコルのバージョン、証明書の詳細、暗号の脆弱性を特定します
  • JavaScript の分析:JavaScript ファイルをダウンロードして確認し、フレームワーク識別子、API エンドポイント、内部ホスト名、バージョン文字列を調べます
  • DNS によるサービスの特定:TXT レコードを確認してサービスプロバイダーを特定します(例:v=spf1 include:_spf.google.com は Google Workspace、MS=msXXXXXX は Microsoft 365 を示します)
  • モバイルアプリの分析:対象のモバイルアプリをアプリストアからダウンロードし、apktool(Android)または frida で分析して、ハードコードされた URL、API エンドポイント、埋め込み認証情報を調べます

主な概念

用語定義
OSINTオープンソースインテリジェンス。ウェブサイト、ソーシャルメディア、公開記録、政府データなど、一般に公開されている情報源から収集される情報です
パッシブ偵察対象システムと直接やり取りせずに情報を収集する手法で、対象のログに痕跡を残しません
アクティブ偵察対象システムとの直接的なやり取り(スキャン、プローブ)を伴う情報収集手法で、ログに記録される可能性があります
証明書の透明性認証局が発行した TLS 証明書の公開ログです。サブドメインやインフラストラクチャの発見に利用できます
攻撃対象領域不正なユーザーが環境への侵入や環境からのデータ抽出を試みることができる、すべてのポイントの総体です
Google ドーキング高度な Google 検索演算子を使って、公開を意図していないにもかかわらず検索エンジンにインデックスされている機密情報を見つける手法です
シャドー ITIT 部門の認識や承認を得ずに、従業員や部署が導入する技術システムやサービスです

ツールとシステム

  • Amass (OWASP):パッシブ情報源、DNS ブルートフォース、証明書透明性ログの分析を組み合わせた、包括的なサブドメイン列挙ツールです
  • Shodan:インターネット全体をスキャンして、インターネットに接続されたデバイスのサービス、バナー、メタデータをインデックス化するデータベースです。IP、ドメイン、組織で検索できます
  • theHarvester:公開情報源からメールアドレス、サブドメイン、ホスト、従業員名、オープンポートを収集する OSINT ツールです
  • SpiderFoot:200 以上のデータソースにクエリを実行し、調査結果を統合グラフに関連付ける、自動化された OSINT 収集プラットフォームです
  • Recon-ng:発見した情報を整理して相互参照するためのデータベースバックエンドを備えた、モジュール式のウェブ偵察フレームワークです

よくあるシナリオ

シナリオ:レッドチーム演習前の偵察

状況:あるテクノロジー企業がレッドチーム評価を委託しました。アクティブなテストを始める前に、チームはパッシブ OSINT を実施して攻撃対象領域をマッピングし、潜在的な侵入ポイントを特定します。対象は従業員 500 人の SaaS 企業で、主要ドメインは techcorp.io です。

アプローチ:

  1. Amass と crt.sh を使って 147 個のサブドメインを列挙します。staging.techcorp.io、jenkins.techcorp.io、vpn.techcorp.io などが見つかります
  2. Shodan により、ポート 9200 で稼働し、認証がなく、インターネットに公開されたままの忘れられた Elasticsearch インスタンスが判明します
  3. theHarvester により従業員のメールアドレスが 89 件収集され、[email protected] という形式が明らかになります
  4. GitHub の検索により、元開発者の公開リポジトリから、AWS アクセスキーを含む .env ファイルが見つかります
  5. LinkedIn の分析により、同社が SSO に Okta、プロジェクト管理に Jira、ホスティングに AWS を使用していることが明らかになります
  6. Google ドーキングにより、docs.techcorp.io に内部アーキテクチャ図を公開するディレクトリリスティングが見つかります
  7. すべての情報を偵察レポートにまとめ、脅威モデリングと攻撃計画の各フェーズに直接引き継ぎます

落とし穴:

  • 1 つのサブドメイン列挙ツールだけに頼り、異なるデータソースを使う他のツールで見つかる資産を見落とすこと
  • クラウドストレージサービス(S3、Azure Blob、GCP)に、一般公開されているバケットがないか確認しないこと
  • 公開コードリポジトリにある認証情報を検索しないこと。そこからすぐにアクセスできる情報が見つかることがよくあります
  • パッシブのみであるべきフェーズで、アクティブスキャン(ポートスキャン、脆弱性スキャン)を実施すること

出力形式

## External Reconnaissance Report - TechCorp.io

### Attack Surface Summary
- **Domains discovered**: 3 (techcorp.io, techcorp.com, techcorpapp.com)
- **Subdomains enumerated**: 147 unique subdomains across all domains
- **Unique IP addresses**: 34 IPs mapped across AWS us-east-1 and us-west-2
- **Email addresses collected**: 89 valid corporate email addresses
- **Exposed services**: 12 internet-facing services identified via Shodan/Censys

### Critical Findings

**1. Unauthenticated Elasticsearch Instance**
- Host: 52.xx.xx.xx:9200 (elastic.techcorp.io)
- Indexed data: Application logs containing user session tokens and PII
- Source: Shodan search "ssl.cert.subject.cn:techcorp.io"

**2. AWS Credentials in Public GitHub Repository**
- Repository: github.com/former-dev/techcorp-scripts
- File: .env containing AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
- Status: Keys appear active (not tested - out of scope for passive recon)

**3. Directory Listing Exposing Internal Documents**
- URL: https://docs.techcorp.io/internal/
- Contents: Architecture diagrams, network topology, runbooks
- Source: Google dork "site:techcorp.io intitle:index.of"

### Recommendations
1. Immediately rotate the exposed AWS credentials and audit CloudTrail logs
2. Restrict Elasticsearch access to internal networks or add authentication
3. Disable directory listings on docs.techcorp.io and audit all web servers
4. Implement GitHub secret scanning across all organization repositories

コメント