Как найти поддомены сайта: журналы сертификатов, DNS и их ограничения
Чтобы найти поддомены сайта, не обращаясь к его серверам, ищите по журналам Certificate Transparency (CT). Каждый публичный HTTPS-сертификат записывается в эти открытые журналы вместе с именами, для которых выпущен, поэтому запрос к crt.sh или Cert Spotter по example.com вернёт имена вроде mail., staging. или old-shop.example.com. Затем проверьте каждое имя в DNS: какие ещё существуют и куда ведут. Наш бесплатный поиск поддоменов делает оба шага. Важная оговорка: ни один способ снаружи не даёт гарантированно полного списка — он есть только в DNS-зоне домена, которую видит владелец.
Способы поиска поддоменов: сравнение
| Способ | Тип | Что находит | Что пропускает |
|---|---|---|---|
| Журналы Certificate Transparency (crt.sh, Cert Spotter) | Пассивный | Все имена, на которые когда-либо выпускали публичный сертификат, включая старые | Имена только под wildcard-сертификатом, имена без HTTPS, внутренние |
| Пассивный DNS и агрегаторы (например, subfinder) | Пассивный | Имена, которые видели резолверы, краулеры и разные открытые источники | Охват зависит от источников, многим нужны API-ключи |
Поисковики (site:example.com -www) | Пассивный | Публичные хосты с проиндексированными страницами | Всё, что не в индексе |
| Перебор по словарю | Активный | Типовые имена: dev, vpn, staging | Необычные имена; шлёт много запросов — только для своих доменов |
| Передача зоны (AXFR) | Активный | Всю зону, если сервер настроен неверно | На правильно настроенном сервере почти всегда отказ |
| Панель DNS-провайдера | Доступ владельца | Полный список записей | Только для ваших доменов |
Способ 1: журналы Certificate Transparency
Удостоверяющие центры публикуют выпущенные сертификаты в открытые журналы CT, куда можно только дописывать, а браузеры вроде Chrome и Safari доверяют публичным сертификатам, только если те попали в журналы. В сертификате перечислены имена, для которых он действует, поэтому журналы фактически хранят историю всех имён домена, где кто-то включал HTTPS.
- Откройте crt.sh и введите
%.example.com(%— подстановочный знак, так вы получите все поддомены). - Смотрите колонку Matching Identities. Журналы хранят записи вечно, поэтому многие имена — история.
- Для чистого списка возьмите JSON и уберите дубли:
curl -s 'https://crt.sh/?q=%25.example.com&output=json' \
| jq -r '.[].name_value' \
| tr 'A-Z' 'a-z' | sed 's/^\*\.//' | sort -u
%25 — это закодированный в URL знак %. Поле name_value может содержать несколько имён через перенос строки; jq -r выведет их отдельными строками. crt.sh — бесплатный общественный сервис и под нагрузкой часто отвечает ошибкой 502 или не отвечает вовсе: пока мы писали эту статью 13 октября 2026 года, так было раз за разом. В этом случае повторите позже или используйте Cert Spotter:
curl -s 'https://api.certspotter.com/v1/issuances?domain=example.com&include_subdomains=true&expand=dns_names' \
| jq -r '.[].dns_names[]' | sort -u
По документации API SSLMate, Cert Spotter отдаёт только неистёкшие сертификаты, а без ключа разрешает ограниченное число запросов в час для личного использования или пробы. Итого: crt.sh — это история, Cert Spotter — текущее состояние.
Способ 2: проверить, какие поддомены живы в DNS
Имя в журнале сертификатов доказывает лишь то, что сертификат когда-то выпускали. Что существует сейчас, покажет DNS:
# разрешается ли имя и куда?
dig +short staging.example.com
# это псевдоним (CNAME)? на какой хост?
dig +short CNAME staging.example.com
# полный ответ: смотрите «status:» — NOERROR или NXDOMAIN
dig staging.example.com
# проверка wildcard DNS: случайное имя НЕ должно разрешаться
dig +short pp-test-8f3k2.example.com
- NXDOMAIN — имени больше нет, остался только старый сертификат. Это история, а не проблема.
- NOERROR с адресом — поддомен жив. Убедитесь, что он вам нужен и обновляется.
- NOERROR без записи A/AAAA — имя есть, но без адреса (например, только MX или TXT). Обычно нормально.
- CNAME ведёт на несуществующее имя — висящая запись. Подробнее в разделе о захвате поддомена.
Если случайное имя из последней команды разрешилось, у домена включён wildcard DNS: отвечает любое имя, и «разрешается» ничего не говорит о конкретном поддомене.
Почему полного списка поддоменов снаружи не бывает
- Wildcard-сертификаты. Если сервисы работают под
*.example.com, в журналах будет только звёздочка, без конкретных имён. - Имена без публичного HTTPS. Хосты только на HTTP, почтовые имена и внутренние сервисы с сертификатами частного центра в журналы CT не попадают.
- В DNS нет запроса «покажи всё». Резолвер отвечает на вопросы об именах, которые вы уже знаете. Единственный стандартный способ выгрузить зону — передача зоны, а посторонним серверы в ней отказывают.
- Старые имена остаются в журналах. Список всегда смешивает живые и давно удалённые имена — поэтому и нужна проверка DNS.
Активные методы: перебор и передача зоны
Активные методы отправляют запросы в инфраструктуру цели. Это обычная практика тестирования безопасности — на своих системах или там, где тестировать явно разрешили.
- Перебор по словарю проверяет в DNS тысячи вероятных имён (
dev,api,vpn,staging…). OWASP Amass сочетает сбор открытых данных с активной разведкой; subfinder работает только с пассивными источниками. - Передача зоны (AXFR) — механизм, которым вторичные DNS-серверы копируют зону (RFC 5936). Проверьте свой домен так:
dig NS example.com +short
dig AXFR example.com @ns1.example.com
Правильно настроенный сервер ответит «Transfer failed» или откажет. Если ваш сервер отдаёт всю зону любому желающему, разрешите AXFR только своим вторичным серверам.
Висящий CNAME и захват поддомена
Типичная история: под акцию сделали promo.example.com — CNAME на example-promo.herokuapp.com. Потом приложение удалили, а запись в DNS осталась. Если платформа позволяет любому создать приложение (бакет, страницу) с тем же именем, злоумышленник займёт его и будет показывать на вашем поддомене свой контент — с вашим доменом в адресной строке. Это называется subdomain takeover, захват поддомена.
Сам по себе висящий CNAME — ещё не доказанная уязвимость: некоторые платформы не дают занять освободившееся имя, а подтвердить риск можно только на стороне самой платформы. Но исправить дёшево: удалите CNAME или заново создайте ресурс у провайдера, если поддомен ещё нужен.
Что делать с найденными поддоменами
- Выгрузите список и отметьте все имена, о которых вы не знали.
- Удалите висящие CNAME и записи старых тестовых стендов и законченных акций.
- Админки, staging и внутренние сервисы закройте авторизацией или доступом по IP и не оставляйте на устаревших версиях CMS.
- Проверьте важные живые поддомены: сертификат — проверкой SSL, записи — проверкой DNS, признаки вредоносного кода и устаревшего ПО — сканером безопасности сайта.
- Повторяйте поиск время от времени: каждый новый сертификат добавляет имена в журналы.
Как найти поддомены в PromoPilot
Введите домен в поиск поддоменов. Имена берутся из crt.sh (вся история сертификатов); если crt.sh не ответил — из Cert Spotter (только действующие сертификаты), и инструмент об этом скажет. Список имён кэшируется на 24 часа. Дальше инструмент:
- нормализует имена (нижний регистр, без
*., только сам домен и его поддомены); - проверяет в DNS до 300 имён — сначала с самыми свежими сертификатами — через публичный DNS-over-HTTPS Cloudflare (запасной — Google): записи A, затем AAAA для имён без A;
- показывает статус каждого имени (есть в DNS, нет в DNS, без A/AAAA, висящий CNAME), цепочку CNAME и дату окончания самого свежего сертификата;
- проверяет wildcard DNS случайным именем и помечает такие строки, а также предупреждает о найденных wildcard-сертификатах;
- называет сервис за висящим CNAME, если он из списка платформ, где захват возможен (Amazon S3, Azure, Heroku, GitHub Pages, Netlify, Shopify и другие);
- позволяет отфильтровать таблицу и скачать её в CSV.
Лимиты: 15 поисков в сутки без аккаунта, 45 — с бесплатным аккаунтом, в Pro суточного лимита нет; не больше 6 поисков в минуту.
Чего инструмент не делает
- Никакого перебора по словарю, сканирования портов и HTTP-запросов к найденным хостам. Поэтому риск захвата он может отметить, но не подтвердить.
- Видит только имена с публичными сертификатами. Имена под wildcard-сертификатом или без HTTPS в списке не появятся.
- Для доменов с огромным числом сертификатов список ограничен 5000 уникальных имён, а DNS за один запуск проверяется для 300 из них.
Что почитать дальше
- Проверка SSL-сертификата — срок, цепочка, протоколы.
- Проверка DNS-записей — A, CNAME, MX, TXT и что они значат.
- Как проверить сайт на безопасность — общий чек-лист.