
ネットワーク発見、サブドメイン列挙、IPエンリッチメント、およびシークレット検出のためのOSINT偵察ツール。証明書ログ、Shodan、GitHubコード検索を介して動作し、すべてAPIキーを必要としません。
<p align="center">
<img alt="Metabigor" src="https://assets.kitploit.com/production/public/readmes/2602/a91acb0c74fbed7b623c138dcc568e51b46b54c20992493fa0be6f3dea3d9c1d.png" height="140" />
<br />
<strong>Metabigor - APIキーの手間なしで手に入るOSINTパワー</strong>
<p align="center">
<a href="https://docs.osmedeus.org/donation/"><img src="https://img.shields.io/badge/Sponsors-0078D4?style=for-the-badge&logo=GitHub-Sponsors&logoColor=39ff14&labelColor=black&color=black"></a>
<a href="https://twitter.com/OsmedeusEngine"><img src="https://img.shields.io/badge/@OsmedeusEngine-0078D4?style=for-the-badge&logo=Twitter&logoColor=39ff14&labelColor=black&color=black"></a>
<a href="https://github.com/j3ssie/osmedeus/releases"><img src="https://img.shields.io/github/release/j3ssie/metabigor?style=for-the-badge&labelColor=black&color=2fc414&logo=Github"></a>
</p>
</p>
***
## Metabigorとは?
Metabigor は、1つもAPIキーを登録する必要なく、ターゲットのインフラストラクチャをマッピングします。
ネットワークレンジ、証明書、関連ドメイン、露出したポート、CDNベンダー、コードリークなど、すべてを
無料のソースから取得でき、すべてパイプで相互に接続できます。
## 機能
- **ネットワークディスカバリ** - ASN、組織、ドメイン、またはIPからIPレンジ(CIDR)を検索
- **証明書透過性(Certificate Transparency)** - crt.sh 経由でサブドメインを発見
- **IPエンリッチメント** - Shodan InternetDB 経由でポート、ホスト名、CVEを取得(無料、キー不要)
- **GitHubコード検索** - grep.app 経由で公開リポジトリ内のシークレット、認証情報、サブドメインを検索
- **IPクラスタリング** - IPをASNごとにグループ化してインフラをマッピング
- **関連ドメイン** - 証明書ログ、リバースWHOIS、アナリティクスIDを介してピボット
- **CDN/WAF検出** - 保護されたアドレスと候補オリジンを分離
- **URL収集** - Webアーカイブが記録したすべてのURL(WARCから抽出したエンドポイントを含む)
## インストール
```bash
npm install -g @j3ssie/metabigor # macOS, Linux, Windows
brew install j3ssie/tap/metabigor # macOS, Linux
```
どちらもお使いのプラットフォーム向けの同じプリビルドバイナリを提供します。Goツールチェーンは不要です。
またはソースからビルド:
```bash
git clone https://github.com/j3ssie/metabigor.git
cd metabigor
make build # binary at ./bin/metabigor
```
または [リリースページ](https://github.com/j3ssie/metabigor/releases) からバイナリをダウンロード。
## 30秒ツアー
```bash
metabigor net AS13335 # network ranges behind an ASN
metabigor cert hackerone.com # subdomains from certificate logs
metabigor ip 1.1.1.1 # open ports and CVEs for an IP
metabigor related tesla.com # other domains the target owns
metabigor cdn --exclude -I ips.txt # candidate origin servers
```
## すべてのコマンドの動作
同じ規約がすべてのコマンドに適用されるため、1つのコマンドを覚えればすべてを理解できます。
### ターゲットを渡す4つの方法
```bash
metabigor cert example.com # as an argument
metabigor cert example.com tesla.com # several arguments
metabigor cert -i example.com # with -i
metabigor cert -I domains.txt # from a file, one per line (# comments are ignored)
cat domains.txt | metabigor cert # on stdin
```
これらは組み合わせ可能で、マージされたリストは重複排除されます:
```bash
metabigor cluster 1.1.1.1 -i 8.8.8.8 -I more-ips.txt
```
引数は最短の方法で、すべてのコマンドで機能します。ターゲットがフラグに見えてしまう場合や、スクリプトがコマンドを構築する場合は `-i` を使用します:
```bash
metabigor github -i "--endpoint-url"
metabigor net --input "$TARGET" -f json
```
標準入力は、他の方法でターゲットが指定されていない場合にのみ読み取られます。そのため `metabigor net AS13335` はスクリプトやCIジョブ内で入力待ちによってブロックされることはありません。
### 出力形式を制御する1つのフラグ
`-f/--format` はすべてのコマンドで機能します:
| フォーマット | 得られるもの | 用途 |
|---|---|---|
| `text` *(デフォルト)* | 読みやすいカラム | ターミナルでの表示 |
| `flat` | 主要な値のみ | 他のツールへのパイプ |
| `json` | 1行に1つのJSONオブジェクト | `jq`、自動化 |
| `csv` | ヘッダー付きの行 | スプレッドシート、レポート |
```bash
metabigor ip 1.1.1.0/28 # 1.1.1.1 | 80,443 | one.one.one.one
metabigor ip 1.1.1.0/28 -f flat # 1.1.1.1:80
metabigor ip 1.1.1.0/28 -f json # {"ip":"1.1.1.1","ports":[80,443],...}
metabigor ip 1.1.1.0/28 -f csv -o ports.csv
```
結果は常に標準出力に、ログは常に標準エラー出力に出力されるため、どのログレベルでもパイプはクリーンなままです。`-o` は結果をファイルにも書き込みますが、`--append` を渡さない限り上書きします。ファイルは書き込む結果がある場合にのみ書き換えられるため、失敗したり何も見つからなかった実行では、以前の結果がそのまま残ります。
### コマンドはチェーンでつなげる
```bash
metabigor net AS13335 -f flat | metabigor ip -f flat
metabigor related tesla.com -f flat | metabigor cert
cat domains.txt | dnsx -silent -resp-only | metabigor cdn --exclude
```
## コマンド
### `net` - ネットワークディスカバリ
ASN、IP、ドメイン、または組織の背後にあるCIDRを検索します。同梱のオフラインデータベースを使用します。
```bash
metabigor net AS13335 # every CIDR announced by an ASN
metabigor net 1.1.1.1 --detail # which ASN owns this IP
metabigor net --org Cloudflare # search by company name
metabigor net --live tesla.com # query live sources instead of the local DB
metabigor net -I asn-list.txt -f csv -o ranges.csv
```
ターゲットタイプは自動検出されます。`--asn`、`--ip`、`--domain`、`--org` で上書きできます(相互排他)。`--detail` はASN、組織、国のカラムを追加します。
### `cert` - 証明書透過性
```bash
metabigor cert hackerone.com # one domain per line
metabigor cert "HackerOne Inc" # search by organization
metabigor cert example.com --clean # strip the *. from wildcards
metabigor cert example.com --wildcard # only wildcard entries
metabigor cert example.com --detail # cert IDs, issuers, validity dates
metabigor cert tesla.com | dnsx -silent
```
### `ip` - IPエンリッチメント(Shodan InternetDB)
```bash
metabigor ip 1.1.1.1 # ports, hostnames, CVEs
metabigor ip 1.1.1.0/28 # CIDRs expand to hosts
metabigor ip 1.1.1.0/28 -f flat # IP:PORT pairs
metabigor ip -I ips.txt -c 30 -f csv -o ports.csv
```
InternetDBが情報を持たないIPはスキップされます。保持するには `--all` を渡します。
### `github` - コード検索(grep.app)
```bash
metabigor github hackerone.com # repo and path per match
metabigor github tesla.com --subs # only subdomains found in matches
metabigor github "api_key=" --detail # show the matching code
metabigor github AKIA --pages 3 --detail
```
ChromeまたはChromiumが必要です。grep.appはプレーンなHTTPクライアントにボットチャレンジで応答します。grep.appのレート制限を尊重するため、検索は `-c` に関係なく1つずつ実行されます。
### `cluster` - IPクラスタリング
所有するASNごとにIPをグループ化し、最大のクラスタから順に表示します。IPまたはCIDRを受け入れます。オフラインで動作します。
```bash
cat ips.txt | metabigor cluster
metabigor cluster -I ips.txt -f csv -o clusters.csv
cat domains.txt | dnsx -silent -resp-only | metabigor cluster
```
### `related` - 関連ドメインの発見
```bash
metabigor related hackerone.com # all sources
metabigor related tesla.com --sources crt
metabigor related tesla.com --sources crt,whois
```
ソース: `crt`(crt.sh)、`whois`(viewdns.info リバースWHOIS)、`analytics`(共有されたGoogleアナリティクス / タグマネージャーID)、または `all`。結果はソース間で重複排除され、最初に発見したソースがタグ付けされます。
### `url` - WebアーカイブからのURL収集
```bash
metabigor url hackerone.com # every keyless source, subdomains included
metabigor url blog.hackerone.com --no-subs # one hostname only
metabigor url hackerone.com/reports # scope to a path prefix
metabigor url tesla.com --sources wayback,urlscan
metabigor url tesla.com --keywords '\.js(\?|$)' # JavaScript only
metabigor url tesla.com --blacklist default --no-params
metabigor url tesla.com -f flat | httpx
```
ソース: `wayback`、`commoncrawl`、`otx`、`urlscan`、`ghostarchive` に加え、キーが設定されている場合は `virustotal` と `intelx`。キー不要の5つのソースがデフォルトで実行されます。認証付きの2つは、環境に `VT_API_KEY` / `INTELX_API_KEY` が存在すると自動的に参加し、`URLSCAN_API_KEY` は urlscan のページサイズを引き上げます。キーなしで認証付きソースを指定すると、黙ってスキップするのではなくエラーになります。
**サブドメインはデフォルトで含まれます** - クエリは `target` ではなく `*.target` です。これは実行結果の量を左右する最大の要因です。`--no-subs` で絞り込めます。
**GhostArchiveは一覧表示だけでなく、掘り下げて抽出します。** アーカイブされたすべてのページには生のWARCもあり、WARCにはページをキャプチャ中にブラウザが行ったすべてのサブリクエスト(XHR呼び出し、JSONエンドポイント、動的に構築されたスクリプトURL)が記録されています。CDXインデックスはページURL自体のキャプチャのみをインデックスするため、そのような情報は一切表示されません。テストでは、`tesla.com` に対する8リクエストで、実際のJSON APIエンドポイントを含む147のURLが返されました。コストは `--limit-requests` で制限できます。
フィルタはデフォルトでオフになっており、頼まれもしないのに何かが削除されることはありません。`--match-status` / `--filter-status`、`--match-mime` / `--filter-mime`、`--from` / `--to`、`--keywords` はWaybackとCommon CrawlのAPIにサーバーサイドで渡され、ローカルでも再チェックされます。`--blacklist` と `--no-params` はローカルで処理されます。`--limit-requests` はソースごとのリクエスト数を上限で制限し、`--limit-collections` はCommon Crawlの約126のインデックスコレクションをどこまで深く検索するかを設定します(`0` ですべて、2008年まで遡ります)。
### `cdn` - CDN/WAF検出
```bash
metabigor cdn 1.1.1.1 # vendor and type
cat ips.txt | metabigor cdn --exclude # candidate origins
cat ips.txt | metabigor cdn --only # only protected addresses
```
### `update` - ローカルデータベースの更新
```bash
metabigor update
```
`~/.metabigor` 内のIP-to-ASNとIP-to-Countryの両データベースを更新します。バイナリにコピーが同梱されており、初回使用時に展開されるため、これは新しいルーティングデータを取得する場合にのみ必要です。
### `skills` - コーディングエージェントスキル
Metabigorには、AIコーディングエージェント(Claude Code、Codex、または互換性のある任意のエージェント)にCLIの操作方法を教える [agentskills.io](https://agentskills.io) スキルが同梱されています。スキルはバイナリに埋め込まれているため、インストールしているバージョンと常に一致します。
```bash
metabigor skills # list the bundled skills
metabigor skills get metabigor --full # print the skill and its references
metabigor skills install # install into .claude/skills (this project)
metabigor skills install --scope global # install into ~/.claude/skills
metabigor skills install --agent agents # install into .agents/skills for Codex
metabigor skills install --dir ./skills # install into a directory you choose
```
`get` は生のMarkdownを標準出力に出力します(パイプするか、`-o` で保存します)。`install` はバンドル全体(`SKILL.md` とその `references/`)をコピーし、`--force` を渡さない限り既存のコピーはスキップします。インストールすると、metabigorに言及するたびにエージェントがスキルを自動的にトリガーします。
## グローバルフラグ
```
-i, --input string Target to look up (also accepts arguments or stdin)
-I, --input-file string File of targets, one per line (use - for stdin)
-o, --output string Also write results to this file
-f, --format string Output format: text, json, csv, flat (default "text")
--append Append to the output file instead of overwriting it
-c, --concurrency int Number of parallel workers (default 10)
-t, --timeout int Request timeout in seconds (default 40)
--retry int Retries per failed request (default 3)
--proxy string Upstream proxy, e.g. http://127.0.0.1:8080
-v, --verbose Show step-by-step progress
-q, --quiet Show results and errors only
--debug Show HTTP traffic and internal traces (implies --verbose)
--no-color Disable colored log output
```
Metabigorは失敗時に非ゼロで終了するため、`&&`、`set -e`、CIと組み合わせて使用できます。
## v2からのアップグレード
v3では一貫性のためフラグとコマンドが改名されました。エイリアスはないため、スクリプトを更新してください。
| v2 | v3 | 理由 |
|---|---|---|
| `metabigor ipc` | `metabigor cluster` | `ipc` は推測不能だった |
| `-I, --inputFile` | `-I, --input-file` | camelCaseはCLIの慣習ではない |
| `-q, --silent` | `-q, --quiet` | `-q` は長い形式と一致させるべき |
| `--json` | `-f json` | 1つのフラグが出力形式を制御する |
| `ip --csv` / `ip --flat` | `-f csv` / `-f flat` | 同上 |
| `cert --simple` | *(現在はデフォルト)* | `--detail` が詳細ブロックにオプトインする |
| `net --dynamic` | `net --live` | わかりやすい言葉に |
| `cdn --strip-cdn` | `cdn --exclude` | 新しい `--only` と対になる |
| `related -s ua` / `-s gtm` | `--sources analytics` | 両者は同じことをしていた |
| `related -s` | `-s, --sources` | 実際にリストを受け付けるようになった |
| `github` *(サブドメインがデフォルト)* | `github --subs` | 出力形式が結果に依存しなくなった |
知っておくべき動作変更:
- **進行状況の出力はデフォルトで非表示です。** `[verbose]` 行には `-v` が必要になりました。
- **`-o` は黙って追記する代わりに上書きします。** 以前の動作にするには `--append` を使用します。
- **`ip` は生のJSONではなく、読みやすいテキストを出力します。** JSONにするには `-f json` を使用します。
- **`cert` はプレーンなドメインリストを出力します。** グループ化された証明書ビューには `--detail` を使用します。
- **CIDRに対する `net` は、すべてのホストに展開する代わりに、所有するネットワークを報告します。**
- **エラーは終了コード1になります。** 以前は失敗しても常に0で終了していました。
- **`metabigor update` は両方のデータベースを更新します。** 以前は国データベースをスキップしていました。
## Metabigorをリコン・ワークフローに簡単に統合しませんか?
<p align="center">
<img alt="OsmedeusEngine" src="https://assets.kitploit.com/production/public/readmes/2602/eafa8ee9ab8d11baf808ad0024f1153b25dd09c470be9ccc68ccf44c2ab63b2a.png" />
<p align="center">
このプロジェクトはOsmedeus Engineの一部でした。統合の様子は <a href="https://twitter.com/OsmedeusEngine">@OsmedeusEngine</a> で確認できます。
</p>
</p>
# クレジット
ロゴは [freepik](https://www.flaticon.com/authors/freepik) による [flaticon](https://image.flaticon.com/icons/svg/1789/1789851.svg) から
## 📊 データソース
- **ローカルデータベース** - IP-to-ASNおよびIP-to-Countryマッピング(200万件以上)
- **crt.sh** - 証明書透過性ログ
- **Shodan InternetDB** - 無料のIPエンリッチメントAPI
- **grep.app** - GitHubコード検索
- **bgp.he.net** - リアルタイムBGPルーティングデータ
- **viewdns.info** - リバースWHOISルックアップ
- **builtwith.com** - アナリティクス追跡の相関関係
- **projectdiscovery/cdncheck** - CDN/WAF検出ライブラリ
- **web.archive.org** - Wayback Machine CDXインデックス
- **index.commoncrawl.org** - Common Crawl CDXインデックス
- **otx.alienvault.com** - AlienVault OTX URLリスト
- **urlscan.io** - スキャン履歴の検索
- **ghostarchive.org** - アーカイブされたページとそのWARCファイル
- **virustotal.com** - ドメインの関連性(オプションのAPIキー)
- **intelx.io** - Intelligence Xフォンブック(オプションのAPIキー)
# 免責事項
このツールは教育目的のみで提供されています。行動の責任はすべて自分自身にあります。このソフトウェアの使用中に何かを壊したり、法律に違反したりした場合、それはすべてあなた自身の責任です。
# ライセンス
`Metabigor` は [@j3ssie](https://twitter.com/j3ssie) によって ♥ を込めて作られており、MITライセンスのもとで公開されています。
# 寄付
[](https://paypal.me/j3ssiejjj)
[](https://www.buymeacoffee.com/j3ssie)