
Инструмент OSINT-разведки для обнаружения сети, перечисления поддоменов, обогащения IP-адресов и обнаружения секретов через журналы сертификатов, 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 - мощь OSINT без хлопот с API-ключами</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 картографирует инфраструктуру цели, не требуя от вас регистрации ни для одного API-ключа.
Сетевые диапазоны, сертификаты, связанные домены, открытые порты, CDN-провайдеры и утечки кода - всё
из бесплатных источников, и всё можно передавать по конвейеру из одной команды в другую.
## Возможности
- **Сетевое обнаружение** - находит IP-диапазоны (CIDR) по ASN, организации, домену или IP
- **Прозрачность сертификатов** - обнаруживает поддомены через crt.sh
- **Обогащение IP** - порты, hostname и CVE через Shodan InternetDB (бесплатно, без ключа)
- **Поиск кода на GitHub** - находит секреты, учётные данные и поддомены в публичных репозиториях через grep.app
- **Кластеризация IP** - группирует IP по ASN для картографирования инфраструктуры
- **Связанные домены** - переход через журналы сертификатов, обратный WHOIS и ID аналитики
- **Обнаружение CDN/WAF** - отделяет защищённые адреса от вероятных исходных серверов
- **Сбор URL** - все 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 # бинарник в ./bin/metabigor
```
Или скачайте бинарник со страницы [релизов](https://github.com/j3ssie/metabigor/releases).
## Экскурсия на 30 секунд
```bash
metabigor net AS13335 # сетевые диапазоны за ASN
metabigor cert hackerone.com # поддомены из журналов сертификатов
metabigor ip 1.1.1.1 # открытые порты и CVE для IP
metabigor related tesla.com # другие домены, которыми владеет цель
metabigor cdn --exclude -I ips.txt # вероятные исходные серверы
```
## Как работает каждая команда
Одни и те же соглашения действуют везде, так что, освоив одну команду, вы знаете их все.
### Четыре способа передачи целей
```bash
metabigor cert example.com # как аргумент
metabigor cert example.com tesla.com # несколько аргументов
metabigor cert -i example.com # с -i
metabigor cert -I domains.txt # из файла, по одному в строке (комментарии # игнорируются)
cat domains.txt | metabigor cert # через 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.
### Один флаг для формы вывода
`-f/--format` работает в каждой команде:
| Формат | Что вы получаете | Для чего |
|---|---|---|
| `text` *(по умолчанию)* | Читаемые колонки | Чтение в терминале |
| `flat` | Голое основное значение | Передача в другие инструменты |
| `json` | Один 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
```
Результаты всегда идут в stdout, а журналы - в stderr, поэтому конвейеры остаются чистыми при любом уровне журналирования.
`-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` - сетевое обнаружение
Находит CIDR за ASN, IP, доменом или организацией. Использует встроенную офлайн-базу данных.
```bash
metabigor net AS13335 # все CIDR, анонсируемые данным ASN
metabigor net 1.1.1.1 --detail # какой ASN владеет этим IP
metabigor net --org Cloudflare # поиск по названию компании
metabigor net --live tesla.com # запрос к живым источникам вместо локальной БД
metabigor net -I asn-list.txt -f csv -o ranges.csv
```
Тип цели определяется автоматически. Переопределите его с помощью `--asn`, `--ip`, `--domain` или `--org`
(взаимоисключающие). `--detail` добавляет колонки ASN, организации и страны.
### `cert` - прозрачность сертификатов
```bash
metabigor cert hackerone.com # по одному домену в строке
metabigor cert "HackerOne Inc" # поиск по организации
metabigor cert example.com --clean # убирает *. из wildcard-записей
metabigor cert example.com --wildcard # только wildcard-записи
metabigor cert example.com --detail # ID сертификатов, издатели, сроки действия
metabigor cert tesla.com | dnsx -silent
```
### `ip` - обогащение IP (Shodan InternetDB)
```bash
metabigor ip 1.1.1.1 # порты, hostname, CVE
metabigor ip 1.1.1.0/28 # CIDR разворачиваются в хосты
metabigor ip 1.1.1.0/28 -f flat # пары IP:PORT
metabigor ip -I ips.txt -c 30 -f csv -o ports.csv
```
IP, о которых InternetDB ничего не знает, пропускаются; передайте `--all`, чтобы сохранить их.
### `github` - поиск кода (grep.app)
```bash
metabigor github hackerone.com # репозиторий и путь для каждого совпадения
metabigor github tesla.com --subs # только поддомены, найденные в совпадениях
metabigor github "api_key=" --detail # показать совпадающий код
metabigor github AKIA --pages 3 --detail
```
Требуется Chrome или Chromium - grep.app отвечает простым HTTP-клиентам антибот-проверкой.
Поиски выполняются по одному независимо от `-c`, чтобы соблюдать лимит частоты запросов grep.app.
### `cluster` - кластеризация IP
Группирует IP по владеющему ими ASN: сначала самый большой кластер. Принимает 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 # все источники
metabigor related tesla.com --sources crt
metabigor related tesla.com --sources crt,whois
```
Источники: `crt` (crt.sh), `whois` (обратный WHOIS через viewdns.info), `analytics` (общие ID Google
Analytics / Tag Manager) или `all`. Результаты дедуплицируются по всем источникам и помечаются
источником, который нашёл их первым.
### `url` - сбор URL из веб-архивов
```bash
metabigor url hackerone.com # все источники без ключей, включая поддомены
metabigor url blog.hackerone.com --no-subs # только один hostname
metabigor url hackerone.com/reports # ограничение префиксом пути
metabigor url tesla.com --sources wayback,urlscan
metabigor url tesla.com --keywords '\.js(\?|$)' # только JavaScript
metabigor url tesla.com --blacklist default --no-params
metabigor url tesla.com -f flat | httpx
```
Источники: `wayback`, `commoncrawl`, `otx`, `urlscan`, `ghostarchive`, а также `virustotal` и
`intelx`, когда заданы их ключи. Пять источников без ключей работают по умолчанию; два источника
с учётными данными подключаются автоматически, когда в окружении присутствуют `VT_API_KEY` /
`INTELX_API_KEY`, а `URLSCAN_API_KEY` увеличивает размер страницы urlscan. Указание источника
с учётными данными без его ключа - это ошибка, а не молчаливый пропуск.
**Поддомены включены по умолчанию** - запрос идёт по `*.target`, а не по `target`. Это самый мощный
рычаг влияния на объём результатов запуска; `--no-subs` сужает выборку.
**GhostArchive добывается, а не просто перечисляется.** У каждой архивированной страницы также есть
сырой WARC, а WARC фиксирует каждый подзапрос, который браузер совершил при захвате страницы, - XHR-вызовы,
JSON-эндпоинты, динамически собираемые URL скриптов. Ничего из этого не появляется в CDX-индексе,
который индексирует только захваты самого URL страницы. В ходе тестирования 8 запросов к `tesla.com`
вернули 147 URL, включая живые JSON API-эндпоинты. Ограничьте затраты с помощью `--limit-requests`.
Фильтры по умолчанию выключены, поэтому ничего не отбрасывается без запроса. `--match-status` /
`--filter-status`, `--match-mime` / `--filter-mime`, `--from` / `--to` и `--keywords` передаются
в API Wayback и Common Crawl на серверной стороне и повторно проверяются локально; `--blacklist`
и `--no-params` работают локально. `--limit-requests` ограничивает число запросов на источник, а
`--limit-collections` задаёт, насколько глубоко искать по ~126 коллекциям индексов Common Crawl
(`0` - по всем, вплоть до 2008 года).
### `cdn` - обнаружение CDN/WAF
```bash
metabigor cdn 1.1.1.1 # поставщик и тип
cat ips.txt | metabigor cdn --exclude # вероятные исходные серверы
cat ips.txt | metabigor cdn --only # только защищённые адреса
```
### `update` - обновление локальных баз данных
```bash
metabigor update
```
Обновляет обе базы данных - IP-в-ASN и IP-в-страну - в `~/.metabigor`. Копия поставляется вместе с
бинарником и распаковывается при первом использовании, поэтому команда нужна только для получения
более свежих данных о маршрутизации.
### `skills` - навыки для кодинг-агентов
Metabigor поставляется с навыком [agentskills.io](https://agentskills.io), который обучает
ИИ-кодинг-агента (Claude Code, Codex или любого совместимого агента) управлять CLI. Навык встроен
в бинарник, поэтому он всегда соответствует установленной у вас версии.
```bash
metabigor skills # список встроенных навыков
metabigor skills get metabigor --full # вывести навык и его ссылки
metabigor skills install # установить в .claude/skills (этот проект)
metabigor skills install --scope global # установить в ~/.claude/skills
metabigor skills install --agent agents # установить в .agents/skills для Codex
metabigor skills install --dir ./skills # установить в выбранную вами директорию
```
`get` выводит исходный Markdown в stdout (передайте его по конвейеру или используйте `-o` для сохранения).
`install` копирует весь комплект - `SKILL.md` вместе с `references/` - и пропускает существующую копию,
если не передать `--force`. После установки агент автоматически активирует навык, когда вы упоминаете metabigor.
## Глобальные флаги
```
-i, --input string Цель для поиска (также принимает аргументы или stdin)
-I, --input-file string Файл с целями, по одной в строке (используйте - для stdin)
-o, --output string Также записать результаты в этот файл
-f, --format string Формат вывода: text, json, csv, flat (по умолчанию "text")
--append Дописать в выходной файл вместо перезаписи
-c, --concurrency int Число параллельных рабочих процессов (по умолчанию 10)
-t, --timeout int Таймаут запроса в секундах (по умолчанию 40)
--retry int Повторные попытки для каждого неудачного запроса (по умолчанию 3)
--proxy string Вышестоящий прокси, например http://127.0.0.1:8080
-v, --verbose Показывать пошаговый прогресс
-q, --quiet Показывать только результаты и ошибки
--debug Показывать HTTP-трафик и внутренние трассы (подразумевает --verbose)
--no-color Отключить цветной вывод журнала
```
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` | один флаг управляет формой вывода |
| `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. Используйте `-f json` для JSON.
- **`cert` выводит простой список доменов.** Используйте `--detail` для сгруппированного просмотра сертификатов.
- **`net` по CIDR сообщает владеющую сеть** вместо разворачивания во все хосты.
- **Ошибки завершаются кодом 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>
# Благодарности
Логотип: [flaticon](https://image.flaticon.com/icons/svg/1789/1789851.svg) от [freepik](https://www.flaticon.com/authors/freepik)
## 📊 Источники данных
- **Локальная база данных** - сопоставления IP-в-ASN и IP-в-страну (2M+ записей)
- **crt.sh** - журналы прозрачности сертификатов
- **Shodan InternetDB** - бесплатный API обогащения IP
- **grep.app** - поиск кода на GitHub
- **bgp.he.net** - живые данные BGP-маршрутизации
- **viewdns.info** - обратные WHOIS-запросы
- **builtwith.com** - корреляция аналитических трекеров
- **projectdiscovery/cdncheck** - библиотека обнаружения CDN/WAF
- **web.archive.org** - CDX-индекс Wayback Machine
- **index.commoncrawl.org** - CDX-индексы Common Crawl
- **otx.alienvault.com** - списки URL AlienVault OTX
- **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)