今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

soxoj/maigret

ユーザー名を入力するだけで数千件のサイトを横断検索し、アカウント情報を集めるOSINT用CLIツールです。

ユーザー名を1つ入力するだけで、3,000件以上のサイトを横断してアカウントを探し、見つかったプロフィールから情報を自動抽出、そこから再帰的に検索を広げていく様子を実際に見ると、手作業での身元調査がいかに非効率だったか実感できます。結果はHTML・PDF・JSON・Neo4jなど好みの形式で受け取れ、内蔵の web UIやグラフ可視化を使えば、点在するアカウント群が1つの人物像として繋がっていく過程を目で追えます。Sherlockの3倍以上のサイトカバレッジに加え、Tor・I2Pプロキシ対応やAI分析モードまで備えているので、サイバーセキュリティ調査でもクリエイターのアカウント棚卸しでも、今日この場で試す価値があります。

01 / 概要
何をするものか一文で言うと
ひとことでユーザー名を入力するだけで数千件のサイトを横断検索し、アカウント情報を集めるOSINT用CLIツールです。

Maigretは、ユーザー名1つを手がかりに3,000以上のサイトを横断調査し、アカウントの有無や公開情報をまとめてレポート化するOSINTツールです。APIキー不要で動作し、CLI・ライブラリ・Webインターフェースの3通りで使えます。soxoj/sherlock系譜のツールで、探偵小説の主人公メグレ警部にちなんだ名前です。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

maigret/resources/data.jsonにサイトごとのチェックルール(URL構造、存在判定パターンなど)が定義されており、maigret/sites.pyのMaigretDatabaseがこれを読み込みます。checking.pyが各サイトへ非同期リクエストを送り、executors.pyが並列実行を管理します。見つかったプロフィールページからmaigret/errors.pyやerror_detection.pyでブロック・CAPTCHAを判別しつつ、socid_extractorで名前・リンクなど付随情報を抽出します。抽出した別ユーザー名やIDを使い再帰的に追加検索する仕組みもあります。結果はreport.pyでHTML・PDF・xmindなど複数形式にまとめられ、--aiオプション使用時はai.pyがOpenAI互換APIへ結果を渡して短い調査サマリーを生成します。db_updater.pyがGitHub上の最新サイトDBを24時間ごとに取得し、オフライン時は同梱のdata.jsonにフォールバックします。maigret/web/app.pyのFlaskアプリはSSE(Server-Sent Events)でチェック進捗をブラウザにストリーミングし、live.htmlなどのテンプレートで結果をグラフ表示します。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    pip install maigretを実行すると依存パッケージ一式がインストールされ、続けてmaigret USERNAMEでコマンドが使えるようになります。

  2. STEP 02

    実行直後にサイトDBの自動更新チェックが走り、GitHubから最新のdata.jsonを取得しようとする通信が発生します(オフラインなら同梱データにフォールバックします)。

  3. STEP 03

    デフォルトではアクセス数上位500サイトへ順次アクセスするため、ネットワーク環境によっては数分単位の待ち時間が発生し、進捗バーが逐次更新されます。

  4. STEP 04

    見つかったアカウントごとにコンソールへURLと簡単な抽出情報が表示され、終了後にreport_USERNAME.htmlなどのレポートファイルがカレントディレクトリに生成されます。

  5. STEP 05

    -aオプションを付けると全3,000サイトを対象にするため実行時間が大幅に伸び、--tagsで国やカテゴリを絞ると対象サイト数を減らせます。

  6. STEP 06

    maigret --webでFlaskのWeb UIを起動すると、ブラウザ上でライブ進捗のグラフ表示や結果のダウンロードが可能になります。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

実行後には、対象ユーザー名が存在した各サイトのURL一覧と、プロフィールページから抽出できた氏名・関連リンク・その他IDなどをまとめたレポートファイル(HTML・PDF・xmindなど選択形式)が手元に残ります。--aiを使えば、それらの生データをもとにした短い調査サマリー文章も追加で得られます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

サイトDBは実行のたびにGitHubへ問い合わせて自動更新される仕様のため、オフライン環境や社内プロキシ配下では通信が制限され同梱データのみで動作する点に注意が必要です。

02

3,000件のサイトを全て調査する-aオプションは実行時間が長くなり、対象サイト側からブロックやCAPTCHAを受けるケースもerror_detection.pyで検出はされるものの完全には回避できません。

03

README冒頭やドキュメントに明記の通り、教育・合法目的専用のツールであり、収集した個人情報の扱いはGDPRなど各法域の規制に利用者自身が従う責任があります。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

OSINT調査や penetration test の初動でユーザー名から足がかりを広げたい人に向いたツールです。3,000件超のサイト定義ファイル(data.json)と非同期実行基盤(checking.py・executors.py)、レポート生成(report.py)、Web UI(app.py)まで実コードが揃っており、READMEの主張(APIキー不要・自動DB更新・再帰検索・AI要約)は各ソースファイルの役割と整合しています。テストディレクトリにもtest_checking.pyやtest_web.pyなど機能単位のテストが存在するため、記載機能の実在性は高いと判断できます。ただし実行時間・通信量・法的責任は利用者側の判断に委ねられる部分であり、その点は事前に理解した上で導入するのがよいでしょう。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する