mcpField
C
ctf-osint

ctf-osint

github.com/ljagielloセキュリティ3.6k9.3k 回インストール2 日前に更新
リポジトリ

ctf-osint について

ctf-osintは、人物、場所、アカウント、ネットワーク基盤を調べるCTF参加者向けのOSINTリファレンスです。ソーシャルメディア、位置特定、画像、ウェブ調査、DNSの手法をまとめ、Playwright MCPの任意利用も扱います。

主な機能

  1. 01ソーシャルメディアとユーザー名の調査
  2. 02画像分析と逆画像検索
  3. 03位置特定と地図を使った手法
  4. 04ウェブ、DNS、WHOISの調査
  5. 05CTF向けコマンドリファレンス

活用シーン

  1. 01複数のソーシャルプラットフォームでアカウントを追跡
  2. 02画像や道路標識から場所を特定
  3. 03ドメインとDNSレコードを調査

MCP 対応

ブラウザーを使ったOSINT向けに、Playwright MCPの任意利用を説明しています。JavaScriptで描画されたページの閲覧や、画像・地図のインタラクティブな検索が対象です。

インストール

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

$npx skills add https://github.com/ljagiello/ctf-skills --skill ctf-osint

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

同梱ファイル

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

geolocation-and-media.md
social-media.md
tools-mcp.md
web-and-dns.md

詳細

CTF OSINT

OSINT CTF チャレンジのクイックリファレンスです。各手法の概要をここに記載しています。詳しい説明は関連ファイルを参照してください。

前提条件

Python パッケージ(すべてのプラットフォーム):

pip install shodan Pillow

Linux(apt):

apt install whois dnsutils nmap libimage-exiftool-perl imagemagick curl

macOS(Homebrew):

brew install whois bind nmap exiftool imagemagick curl

MCP サーバー(任意): ブラウザーを使った OSINT(JS レンダリングされたページ、画像の逆検索や地図の操作フロー)には Playwright MCP(microsoft/playwright-mcp)を使用します。tools-mcp.md を参照してください。

追加リソース

  • social-media.md - Twitter/X(ユーザー ID、Snowflake タイムスタンプ、シンジケーション API、memory.lol、Wayback CDX)、Tumblr(ブログの確認、投稿 JSON、アバター)、BlueSky 検索 + API、Unicode 同形異字ステガノグラフィー、Discord API、ユーザー名 OSINT(namechk、whatsmyname、Osint Industries)、ユーザー名メタデータのマイニング(郵便番号)、プラットフォームの誤検知、複数プラットフォームをまたぐ調査、Strava のフィットネスルート OSINT
  • geolocation-and-media.md - 画像分析、画像の逆検索(中国向けの Baidu を含む)、Google Lens の切り抜き領域検索、反射・鏡文字の読み取り、位置特定の手法(鉄道標識、インフラ地図、MGRS)、Google Plus Codes、EXIF/メタデータ、ハードウェアの識別、新聞アーカイブ、IP ジオロケーション、Google Street View のパノラマ照合、What3Words による小規模ランドマークの照合、Google Maps のクラウドソーシング写真の検証、Overpass Turbo の空間クエリ、キーのエンコードを用いた音楽テーマのランドマーク位置特定
  • web-and-dns.md - Google dorking(TBS 画像フィルターを含む)、Google Docs/Sheets の列挙、DNS 偵察(TXT、ゾーン転送)、Wayback Machine、FEC 調査、Tor リレーの検索、GitHub リポジトリ分析、Telegram ボット調査、WHOIS 調査(逆引き WHOIS、過去の WHOIS、IP/ASN 検索)、nmap フィンガープリントによる偽サービスバナーの検出
  • tools-mcp.md - OSINT 向け Playwright MCP:JS レンダリングされたページの読み取り、スクリーンショット、画像の逆検索や地図/Street View の操作フロー、ソーシャルメディアや Wayback のスナップショット、browser_network_requests(list)+ browser_network_request part="response-body"(payload)を使ったプロフィール API のマイニング

切り替えのタイミング

  • ファイルやパケットをすでにローカルに保持しており、抽出やカービングが必要になった場合は、/ctf-forensics に切り替えてください。
  • タスクが稼働中の HTTP サービスへの能動的なエクスプロイトに発展した場合は、/ctf-web に切り替えてください。
  • アトリビューション中にマルウェアのサンプル、ビーコン、または不審なバイナリを発見した場合は、/ctf-malware に切り替えてください。

クイックスタートコマンド

# DNS recon
dig +short -t txt target.com
dig +short -t cname target.com
dig +short -t mx target.com
dig -t txt target.com
dig axfr @ns.target.com target.com
whois target.com

# Image metadata
exiftool image.jpg
identify -verbose image.jpg | head -30

# Web archive
curl "https://web.archive.org/web/20230101*/target.com"

# Username lookup (site is browser-only — no JSON API; curl returns 403)
git clone https://github.com/WebBreacher/WhatsMyName
cd WhatsMyName/scripts/checker && python3 wmn_check.py --help  # needs requests + playwright

# Shodan
shodan search "hostname:target.com"
shodan host <ip>

文字列の識別

  • 40 桁の 16 進数 → SHA-1(Tor フィンガープリント)
  • 64 桁の 16 進数 → SHA-256
  • 32 桁の 16 進数 → MD5

Twitter/X アカウントの追跡

  • 永続的な数値のユーザー ID:名前が変更された後も https://x.com/i/user/<id> でアクセスできます。
  • Snowflake タイムスタンプ:(id >> 22) + 1288834974657 = Unix ミリ秒。
  • 過去のデータには Wayback CDX、シンジケーション API、memory.lol を使用してください(Nitter は終了しているため、使用しないでください)。social-media.md を参照してください。

Tumblr の調査

  • ブログの確認:curl -sI で x-tumblr-user ヘッダーを確認します。アバターは /avatar/512 にあります。social-media.md を参照してください。

ユーザー名 OSINT

  • whatsmyname.app(2026-10 時点で約 717 サイト。ブラウザー専用で JSON API はありません。スクリプトで使用する場合は WebBreacher/WhatsMyName データセットを使用してください)、namechk.com。プラットフォームの誤検知に注意してください。social-media.md を参照してください。

画像分析と逆画像検索

  • Google Lens(注目領域を切り抜き)、Google Images、TinEye、Yandex(顔)。隅に視覚的なステガノグラフィーがないか確認します。Twitter は EXIF を削除します。geolocation-and-media.md を参照してください。
  • 切り抜き領域の検索: 特徴的な要素(店舗の看板、建物のファサードなど)を切り抜き、Google Lens で検索すると、シーン全体を検索するよりも良い結果が得られます。geolocation-and-media.md を参照してください。
  • 反射した文字: 水面やガラスに映った文字を水平方向に反転させます。引用符で囲んだ文字列で、一部の文字を検索します。geolocation-and-media.md を参照してください。

位置の特定

  • 鉄道標識、インフラ地図(OpenRailwayMap、OpenInfraMap)、消去法を使います。geolocation-and-media.md を参照してください。
  • ストリートビューのパノラマ照合: 特徴量を抽出し、複数の指標を使って候補となるパノラマとの画像類似度を順位付けします。チャレンジ画像がストリートビュー写真の切り抜きである場合に便利です。geolocation-and-media.md を参照してください。
  • 道路標識の OCR: 道路標識から文字(町名、道路番号など)を抽出し、道路の経路を特定します。車線の通行方向、標識の様式、文字体系から国を特定できます。geolocation-and-media.md を参照してください。
  • 建築様式とブランドの特定: ポストソビエト様式のコンクリート建築ならロシア/CIS の可能性があります。名称がわかる事業者から店舗や支店を検索し、海岸線や地形と照合します。geolocation-and-media.md を参照してください。
  • 音楽をテーマにしたランドマークの位置特定: 世界各地にある音楽関連のランドマークの画像が複数あり、それぞれから国旗の1文字を符号化したピアノの鍵盤番号を読み取ります。まずすべての場所を特定し、その後で鍵盤の番号列を解読します。geolocation-and-media.md を参照してください。

MGRS 座標

  • グリッド形式の「4V FH 246 677」→ オンライン変換ツール → 緯度/経度 → Google Maps。geolocation-and-media.md を参照してください。

Google Plus Codes

  • 形式は XXXX+XXX(文字:23456789CFGHJMPQRVWX)です。Google Maps にピンを立てると、詳細に Plus Code が表示されます。無料で、API キーも不要です。geolocation-and-media.md を参照してください。

メタデータの抽出

exiftool image.jpg           # EXIF data
pdfinfo document.pdf         # PDF metadata
mediainfo video.mp4          # Video metadata

Google 検索演算子の活用

site:example.com filetype:pdf
intitle:"index of" password

画像の TBS フィルター: Google 画像の URL に &tbs=itp:face を追加すると、顔だけに絞り込めます(ロゴやバナーは除外されます)。web-and-dns.md を参照してください。

Google Docs/Sheets

  • /export?format=csv、/pub、/gviz/tq?tqx=out:csv、/htmlview を試してください。web-and-dns.md を参照してください。

DNS 偵察

dig -t txt subdomain.ctf.domain.com
dig axfr @ns.domain.com domain.com  # Zone transfer

CTF ドメインでは、必ず TXT、CNAME、MX を確認してください。web-and-dns.md を参照してください。

Tor リレーの検索

  • https://metrics.torproject.org/rs.html#simple/<FINGERPRINT> -- ファミリーを確認し、「first seen」で並べ替えます。web-and-dns.md を参照してください。

GitHub リポジトリの分析

  • gh api を使って、Issue のコメント、PR のレビュー、コミットメッセージ、Wiki の編集を確認します。web-and-dns.md を参照してください。

Telegram ボットの調査

  • ブラウザーの履歴からボットへの参照を見つけ、/start でやり取りし、認証の質問に答えます。web-and-dns.md を参照してください。

FEC の政治献金調査

  • 委員会の収支は FEC.gov で確認します。501(c)(4) 団体は、元の資金提供者を隠していることがあります。web-and-dns.md を参照してください。

IP の位置特定

curl "http://ip-api.com/json/103.150.68.150"

geolocation-and-media.md を参照してください。

Unicode の同形異字を使ったステガノグラフィー

パターン: ソーシャルメディアの投稿では、異なるブロック(キリル文字、ギリシャ文字、数学記号)にある見た目が同一の Unicode 文字でバイナリデータを符号化できます。ASCII = 0、同形異字 = 1 とし、ビットをバイト単位にまとめてフラグを取得します。social-media.md を参照してください。

BlueSky パブリック API

認証は不要です。エンドポイント:public.api.bsky.app/xrpc/app.bsky.feed.searchPosts?q=...、app.bsky.actor.searchActors、app.bsky.feed.getAuthorFeed。公式投稿への返信をすべて確認してください。social-media.md を参照してください。

偽サービスのバナー検出

パターン: 標準的なサービスのポート(22/SSH、80/HTTP)が開いているように見えても、偽のサービスが稼働していることがあります。nmap -sV または nc host port を使うと、バナーからフラグを確認できます。ポート番号だけを信用せず、必ずサービスをフィンガープリントしてください。web-and-dns.mdを参照してください。

ShodanでのSSHフィンガープリント検索

SSHホストキーのフィンガープリントでShodanを検索し、サーバーを特定します:shodan search "fingerprint:AA:BB:CC:..."。web-and-dns.mdを参照してください。

ゲームプラットフォームのOSINT

ゲームプラットフォーム(Steam、Xbox、PSN、MMO)でユーザー名を検索し、キャラクターのプロフィール、アクティビティ、連携アカウントを確認します。social-media.mdを参照してください。

リソース

  • Shodan - インターネットに接続されたデバイス
  • Censys - 証明書とホストの検索
  • VirusTotal - ファイル/URLのレピュテーション
  • WHOIS - ドメイン登録情報
  • Wayback Machine - 過去のスナップショット

コメント