
Инструмент OSINT-разведки для обнаружения сети, перечисления поддоменов, обогащения IP-адресов и обнаружения секретов через журналы сертификатов, Shodan и поиск по коду GitHub — всё без API-ключей.
Metabigor - мощь OSINT без хлопот с API-ключами
Metabigor картографирует инфраструктуру цели, не требуя от вас регистрации ни для одного API-ключа. Сетевые диапазоны, сертификаты, связанные домены, открытые порты, CDN-провайдеры и утечки кода - всё из бесплатных источников, и всё можно передавать по конвейеру из одной команды в другую.
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
Или скачайте бинарник со страницы релизов.
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 работает в каждой команде:
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/WAFmetabigor 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.
v3 переименовывает флаги и команды для единообразия. Псевдонимов нет - обновите свои скрипты.
Изменения поведения, о которых стоит знать:
[verbose] теперь требуют -v.-o перезаписывает вместо молчаливого дописывания. Используйте --append для прежнего поведения.ip выводит читаемый текст, а не сырой JSON. Используйте -f json для JSON.cert выводит простой список доменов. Используйте --detail для сгруппированного просмотра сертификатов.net по CIDR сообщает владеющую сеть вместо разворачивания во все хосты.metabigor update обновляет обе базы данных. Раньше он пропускал базу данных стран.
Этот проект был частью Osmedeus Engine. Посмотрите, как он был интегрирован, в @OsmedeusEngine
Этот инструмент предназначен только для образовательных целей. Вы несёте ответственность за свои действия. Если вы что-то испортите или нарушите какие-либо законы при использовании этого программного обеспечения, это ваша вина, и только ваша.
Metabigor создан с ♥ автором @j3ssie и выпущен под лицензией MIT.
| Формат | Что вы получаете | Для чего |
|---|
text (по умолчанию) | Читаемые колонки | Чтение в терминале |
flat | Голое основное значение | Передача в другие инструменты |
json | Один JSON-объект в строке | jq, автоматизация |
csv | Строки под одним заголовком | Таблицы, отчёты |
| 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 | форма вывода больше не зависит от результатов |