Когда вводишь адрес сайта в строку браузера — кажется, всё просто. Есть домен, ты на него зашёл, и всё работает. На деле же, любой современный сайт — это целая инфраструктура, часто разбросанная по десяткам доменов и субдоменов. В этом тексте я расскажу, как найти абсолютно все домены, с которыми работает сайт или приложение, будь то обычная одностраничка или нечто посложнее, вроде YouTube.
Зачем вообще искать домены?
Допустим, вы исследуете безопасность веб-приложения. Или хотите понять, куда утекают данные. Может быть, просто чисто техническое любопытство. В любом случае, если хочется увидеть картину целиком — важно знать не только основной домен, но и все сопутствующие: от API и CDN до сторонней аналитики и рекламных трекеров.
Что нужно знать перед началом
Прежде чем переходить к практике, пара полезных замечаний:
- Чем больше вы взаимодействуете с сайтом, тем больше доменов он "раскроет". Просто открыть главную страницу — мало.
- Большинство сайтов подключают аналитику, рекламные сети и геолокационные API. Эти домены появляются в списке, но напрямую к сайту не относятся.
- DNS-кэш может мешать: используйте инкогнито-режим и очищайте кэш, особенно если домены не появляются.
Команды для очистки DNS:
- Windows:
ipconfig /flushdns
- Ubuntu:
sudo resolvectl flush-caches
А ещё: убедитесь, что у браузера отключён DoH (DNS over HTTPS). Иначе анализировать DNS-запросы через сетевой интерфейс не получится — они будут шифроваться и уводиться мимо.
DevTools в браузере: быстрый старт
Ручной способ
Это самый простой способ узнать, какие домены посещает сайт при загрузке в браузере:
- Открыть новую вкладку в Chrome или Firefox
- Открыть DevTools: F12 или Ctrl+Shift+I
- Перейти на вкладку Network
- Зайти на нужный сайт и смотреть столбец Domain
На простых сайтах вы увидите один-два домена: основной и, возможно, поддомен для API или статики. На сложных сайтах — лес из запросов. Пример: YouTube вываливает кучу адресов с самого запуска.
Автоматизация сбора доменов через Console
Чтобы не выписывать вручную каждый домен, используем небольшой скрипт:
window.domains = [...new Set(performance.getEntriesByType('resource').map(r => (new URL(r.name)).hostname))];
console.log(domains);
DevTools предупредит, что вставлять скрипты небезопасно — пишем allow pasting
и жмём Enter.
Получаем массив всех уникальных доменов. Например, для YouTube он может выглядеть так:
[
"googleads.g.doubleclick.net",
"yt3.ggpht.com",
"static.doubleclick.net",
"rr1---sn-gvnuxaxjvh-c35z.googlevideo.com",
"www.youtube.com",
"accounts.youtube.com",
"play.google.com",
"www.gstatic.com",
"studio.youtube.com"
]
Анализируем:
- doubleclick — реклама, в топку
- googlevideo — нужен (потоковое видео)
- gstatic — отдает скрипты и шрифты, может быть полезен
- accounts, studio — интерфейсы ЛК YouTube, нужные
- play.google — скорее всего, не имеет отношения к самому сайту
Имейте в виду: скрипт не идеален. Некоторые домены, вроде fonts.gstatic.com
, могут не попасть в список. Поэтому вручную смотреть вкладку Network всё равно полезно.
Android: PCAPdroid
Для мобильных приложений DevTools не подходят. Зато есть отличное приложение — PCAPdroid .
Оно работает как локальный VPN и может перехватывать трафик от конкретного приложения:
- Устанавливаем PCAPdroid (доступно в Google Play, F-Droid, GitHub)
- Выбираем нужное приложение или браузер
- Жмём Ready и переходим во вкладку Connection
- Протыкиваем нужные действия
- Сохраняем файл CSV через меню
- Переносим его на ПК — например, через LocalSend
Обработка файла
На Linux/macOS:
awk -F ',' '{print $10}' PCAPdroid_DATE.csv | sort -u
На Windows через PowerShell:
Import-Csv -Path "PCAPdroid_DATE.csv" | Select-Object -ExpandProperty Info | Sort-Object | Get-Unique
iOS: Network Sniffer
Ситуация на iOS чуть сложнее. Лучше всего себя показало приложение Network Sniffer.
- Убедитесь, что включен HTTP/HTTPS Capture
- Нажмите Start
- Откройте нужное приложение и поработайте с ним
- Нажмите Stop
- Вкладка Record покажет домены
- Кнопка ???? — алфавитный список доменов
Функция экспорта в HAR — платная, но базовой версии хватает. Логи можно сбросить в настройках приложения.
Windows: Microsoft Network Monitor и Wireshark
DevTools — это хорошо, но есть и более универсальные способы. Один из них — Microsoft Network Monitor:
- Запускаем New Capture → Start
- Открываем нужное приложение
- Фильтр:
dns
- Смотрим Description — там запросы к доменам
Более мощный инструмент — Wireshark. Его командная версия tshark особенно удобна для автоматизации.
tshark -f "src port 53" -n -T fields -e dns.qry.name -i 9
Перед этим желательно добавить путь к tshark
в PATH через PowerShell:
[System.Environment]::SetEnvironmentVariable("PATH", $env:PATH + "C:Program FilesWireshark", [System.EnvironmentVariableTarget]::Machine)
Linux и macOS: tshark — наше всё
На этих системах достаточно поставить Wireshark или просто tshark
:
sudo tshark -f "src port 53" -n -T fields -e dns.qry.name
Можно указать интерфейс явно:
sudo tshark -f "src port 53" -n -T fields -e dns.qry.name -i eth0
Запись в файл:
sudo tshark -f "src port 53" -n -T fields -e dns.qry.name > domains
А затем сортировка:
sort -u domains
Если у устройства нет доступа внутрь
Что делать, если у вас умный чайник или лампочка, и всё, что у вас есть — IP-адрес в локальной сети?
OpenWrt
На роутерах с OpenWrt можно поставить tcpdump
:
opkg update && opkg install tcpdump
Смотрим DNS-запросы от устройства:
tcpdump -i br-lan host 192.168.50.63 and port 53
RouterOS
В MikroTik используется команда torch
:
/tool torch interface=bridge-local src-address=192.168.50.199 port=53
Важно: если устройство использует DoH или DoT — DNS-запросы не увидите. Тогда придётся анализировать весь трафик и смотреть SNI и другие признаки.
Заключение
В статье разобраны практически все способы, как можно вытащить список доменов, к которым обращается сайт или приложение. От DevTools до анализа трафика с лампочки на OpenWrt. У каждого метода свои плюсы и минусы, но если комбинировать их, можно получить максимально полную картину.
Лично я чаще всего использую tshark и PCAPdroid. А для быстрого взгляда — старый добрый DevTools. Если знаете ещё интересные способы — расскажите. А если лень — просто сохраняйте эту статью в закладки, вдруг пригодится.