Когда-то, в 2016 году, когда трава была зеленее, а главной проблемой было, кому поставить лайк на Ютубе, я сделал сервис по сбору данных по доменам и написал об этом статью.

В течение 5 лет он работал, собирал данные и выдавал аналитику, но потом размер базы превысил 2 терабайта, и на какое-то время всё перестало работать. Выделив выходные в 2022 году, я его починил, и с тех пор собирается много интересной информации.

Недавно для суда мне понадобилась история по определённым доменам, и я решил сделать инструмент, чтобы быстрее всё это просматривать. Возможно, это тоже будет кому-то полезно: cloudexplorer.ru.

В эпоху крайне дешёвой генерации кода ценность смещается от ПО к данным и доступу к ним. Оказалось, что некоторым моим знакомым этот функционал был полезен. Может, среди читателей он тоже будет кому-то полезен.

Напомню принцип работы

Получаю файлы всех доступных доменов в зонах, включая .ru, .su, .рф, .com, .net и так далее. Полный список можно посмотреть тут — всего более 1000 доменных зон. Далее по каждому домену запрашиваю DNS-записи A/AAAA/NS/MX/CNAME/TXT и сохраняю их с историей изменений.

Также постоянно сканируются IP-адреса у большинства провайдеров, что позволяет строить графики активных адресов на AS. Это косвенно отражает рост или падение количества клиентов (но если знать, как провайдер выделяет адреса, можно анализировать более точно).

Как можно использовать сайт

История изменений DNS-записей домена

На этой странице отображаются все DNS-записи домена, IP-адреса, на которые они указывают, принадлежность этих адресов к автономным системам и история изменений с 2022 года. Можно посмотреть и более ранние данные, но их надо доставать из бэкапа.

Это полезно, когда надо посмотреть, у кого и когда размещался сайт. Например, в ситуации, когда сайт перенесён на абузоустойчивый хостинг: очень хотелось бы узнать контакты владельца, а запрос послать некому (вопросы по авторскому праву, мошенничество). Если он раньше размещался у «нормального» провайдера, можно запросить информацию у него.

Домены на MX/NS-серверах и IP-адресе

Примеры можно посмотреть тут: MX/NS/IP. Достаточно простой функционал — выбираем из всех таблиц с доменами записи, которые удовлетворяют этим условиям. Если у вас есть коллеги, за которыми вы хотите наблюдать ), всегда можно посмотреть, какие ещё проекты размещаются на их оборудовании.

Сканирование поддоменов

Это достаточно интересный и сильно ресурсоёмкий функционал. Я попросил ChatGPT нагенерировать самые популярные поддомены, а также поддомены по именам сервисов. Получилось около 1500 записей.

Далее я запустил сканирование зоны .ru: фактически для каждого домена перебираем имена поддоменов из списка и отправляем DNS-запрос на A-запись. Если есть ответ, запрашиваем остальные записи: AAAA/CNAME/NS/MX/TXT. Если CNAME указывает на другой поддомен этого домена, имя этого поддомена добавляем в общую базу. Далее подключаемся к сайту по TLS и смотрим, какие поддомены указаны в сертификате. Если есть то, чего нет в базе поддоменов, добавляем и это.

В итоге после сканирования 300 000 доменов база поддоменов разрослась до 33 402 записей. И теперь есть статистика самых популярных поддоменов.

Пройдясь по провайдерам, я нашёл много интересной информации: тестовые сборки, информацию о внутренних сетях (поддомены указывают на адреса вида 10.0.x.x и 192.168.x.x), CNAME-записи на публичных доменах, указывающие на .consul, и так далее…

Самые критичные из таких записей я убрал из выдачи на сайте с помощью фильтра. Но в чатике багхантеров вроде лайков накидали.

Поиск доменов на NS

Такого функционала я раньше не находил, но мне он очень понадобился. Смысл в том, что у меня в базе есть данные обо всех NS-серверах. В сканировании я использую только NS-серверы для доменов .com и .ru — то есть серверы, сведения о которых собраны по 170 млн доменов.

И однажды у меня встал вопрос (опять же по суду): сайт спрятан за Cloudflare — у кого он размещается? NS — Cloudflare, IP — их же. Но часто провайдеры при добавлении или регистрации домена автоматом прописывают его на своих NS-серверах. Значит, надо взять доменное имя и запросить его у каждого популярного NS-сервера.

Но часто NS-серверы отдают записи на любые домены. Для таких серверов я сделал фильтр, а в таблицу сразу добавил возможность просматривать домен с определённого IP-адреса. Фактически выдаётся PNG-скриншот определённого сайта с определённого IP-адреса — например, что-то вроде такого.

Статистика доменных зон

По каждой доменной зоне парсим статистику по разным полям и выводим общие графики, информацию об AS и так далее. Тут польза только информативная… Но когда горит ДЦ, в целом это можно определить )

Но с сайтом работать неудобно, поэтому пришлось сделать MCP- и API-серверы…

Тут есть инструкции по подключению к API и MCP-серверу. Гораздо проще подключить MCP-сервер к ChatGPT и попросить его сделать отчёт по нужной информации, чем самому вручную сидеть и разбираться. Опять же, это мой кейс — может, кому-то такой функционал не особо нужен.

А для особых извращенцев, которые любят подсматривать за другими

Есть телеграм-бот — @domain_statistic_alerts_bot ), которому задаёшь список того, за чем следить, и, если что-то поменялось, бот присылает уведомление… Но из-за определённых проблем с некоторыми государственными службами он работает через раз.


Надеюсь, этот проект будет полезен. Так как есть огромная база с данными (сейчас больше 3 терабайт), я подумал: почему бы не сделать веб-морду? Мне эта информация нужна нечасто, в среднем раз в год, но явно удобнее зайти на сайт, чем писать SQL-запросы к БД.

P. S. Статью принципиально писал сам, только орфографию и пунктуацию подправил с помощью AI ), а для иллюстраций использовал fusara.ai.

Комментарии (0)