
metabigor v2.2.0
Инструмент OSINT-разведки для обнаружения сети, перечисления поддоменов, обогащения IP-адресов и обнаружения секретов через журналы сертификатов, Shodan и поиск по коду GitHub — всё без API-ключей.
Metabigor - мощь OSINT без хлопот с API-ключами
Что такое 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
Установка
npm install -g @j3ssie/metabigor # macOS, Linux, Windows
brew install j3ssie/tap/metabigor # macOS, Linux
Оба способа поставляют один и тот же предварительно собранный бинарник для вашей платформы - инструментарий Go не нужен.
Или соберите из исходников:
git clone https://github.com/j3ssie/metabigor.git
cd metabigor
make build # бинарник в ./bin/metabigor
Или скачайте бинарник со страницы релизов.
Экскурсия на 30 секунд
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 # вероятные исходные серверы
Как работает каждая команда
Одни и те же соглашения действуют везде, так что, освоив одну команду, вы знаете их все.
Четыре способа передачи целей
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
Их можно комбинировать, и объединённый список дедуплицируется:
metabigor cluster 1.1.1.1 -i 8.8.8.8 -I more-ips.txt
Аргументы - самый короткий путь и работают в каждой команде. Используйте -i, когда цель иначе
выглядела бы как флаг, или когда скрипт собирает команду за вас:
metabigor github -i "--endpoint-url"
metabigor net --input "$TARGET" -f json
Стандартный ввод читается только тогда, когда цель не задана никаким другим способом, поэтому metabigor net AS13335 никогда не блокируется в ожидании ввода внутри скрипта или задания CI.
Один флаг для формы вывода
-f/--format работает в каждой команде:
| Формат | Что вы получаете | Для чего |
|---|---|---|
text (по умолчанию) | Читаемые колонки | Чтение в терминале |
flat | Голое основное значение | Передача в другие инструменты |
json | Один JSON-объект в строке | jq, автоматизация |
csv | Строки под одним заголовком | Таблицы, отчёты |
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. Файл
перезаписывается только тогда, когда есть что записать, поэтому запуск, завершившийся сбоем или ничего
не нашедший, оставляет предыдущие результаты нетронутыми.
Команды соединяются в цепочки
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, доменом или организацией. Использует встроенную офлайн-базу данных.
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 - прозрачность сертификатов
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)
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)
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. Работает офлайн.
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 - обнаружение связанных доменов
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 из веб-архивов
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
metabigor cdn 1.1.1.1 # поставщик и тип
cat ips.txt | metabigor cdn --exclude # вероятные исходные серверы
cat ips.txt | metabigor cdn --only # только защищённые адреса
update - обновление локальных баз данных
metabigor update
Обновляет обе базы данных - IP-в-ASN и IP-в-страну - в ~/.metabigor. Копия поставляется вместе с
бинарником и распаковывается при первом использовании, поэтому команда нужна только для получения
более свежих данных о маршрутизации.
skills - навыки для кодинг-агентов
Metabigor поставляется с навыком agentskills.io, который обучает ИИ-кодинг-агента (Claude Code, Codex или любого совместимого агента) управлять CLI. Навык встроен в бинарник, поэтому он всегда соответствует установленной у вас версии.
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 в ваш рабочий процесс разведки?
Этот проект был частью Osmedeus Engine. Посмотрите, как он был интегрирован, в @OsmedeusEngine
Благодарности
📊 Источники данных
- Локальная база данных - сопоставления 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 и выпущен под лицензией MIT.

