Как узнать все домены сайта или приложения: гайд по sniff и DevTools

Как узнать все домены сайта или приложения: гайд по sniff и DevTools

Когда вводишь адрес сайта в строку браузера — кажется, всё просто. Есть домен, ты на него зашёл, и всё работает. На деле же, любой современный сайт — это целая инфраструктура, часто разбросанная по десяткам доменов и субдоменов. В этом тексте я расскажу, как найти абсолютно все домены, с которыми работает сайт или приложение, будь то обычная одностраничка или нечто посложнее, вроде YouTube.

Зачем вообще искать домены?

Допустим, вы исследуете безопасность веб-приложения. Или хотите понять, куда утекают данные. Может быть, просто чисто техническое любопытство. В любом случае, если хочется увидеть картину целиком — важно знать не только основной домен, но и все сопутствующие: от API и CDN до сторонней аналитики и рекламных трекеров.

Что нужно знать перед началом

Прежде чем переходить к практике, пара полезных замечаний:

  • Чем больше вы взаимодействуете с сайтом, тем больше доменов он "раскроет". Просто открыть главную страницу — мало.
  • Большинство сайтов подключают аналитику, рекламные сети и геолокационные API. Эти домены появляются в списке, но напрямую к сайту не относятся.
  • DNS-кэш может мешать: используйте инкогнито-режим и очищайте кэш, особенно если домены не появляются.

Команды для очистки DNS:

  • Windows: ipconfig /flushdns
  • Ubuntu: sudo resolvectl flush-caches

А ещё: убедитесь, что у браузера отключён DoH (DNS over HTTPS). Иначе анализировать DNS-запросы через сетевой интерфейс не получится — они будут шифроваться и уводиться мимо.

DevTools в браузере: быстрый старт

Ручной способ

Это самый простой способ узнать, какие домены посещает сайт при загрузке в браузере:

  1. Открыть новую вкладку в Chrome или Firefox
  2. Открыть DevTools: F12 или Ctrl+Shift+I
  3. Перейти на вкладку Network
  4. Зайти на нужный сайт и смотреть столбец 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 и может перехватывать трафик от конкретного приложения:

  1. Устанавливаем PCAPdroid (доступно в Google Play, F-Droid, GitHub)
  2. Выбираем нужное приложение или браузер
  3. Жмём Ready и переходим во вкладку Connection
  4. Протыкиваем нужные действия
  5. Сохраняем файл CSV через меню
  6. Переносим его на ПК — например, через 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.

  1. Убедитесь, что включен HTTP/HTTPS Capture
  2. Нажмите Start
  3. Откройте нужное приложение и поработайте с ним
  4. Нажмите Stop
  5. Вкладка Record покажет домены
  6. Кнопка ???? — алфавитный список доменов

Функция экспорта в HAR — платная, но базовой версии хватает. Логи можно сбросить в настройках приложения.

Windows: Microsoft Network Monitor и Wireshark

DevTools — это хорошо, но есть и более универсальные способы. Один из них — Microsoft Network Monitor:

  1. Запускаем New Capture → Start
  2. Открываем нужное приложение
  3. Фильтр: dns
  4. Смотрим 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. Если знаете ещё интересные способы — расскажите. А если лень — просто сохраняйте эту статью в закладки, вдруг пригодится.

домен сайт приложение DevTools поддомен
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
310K
долларов
до 18 лет
Антипов жжет
Ребёнок как убыточный
актив. Считаем честно.
Почему рожают меньше те, кто умеет считать на десять лет вперёд.

Комнатный Блогер

Объясняю новую цифровую реальность

FREE
100%
Кибербезопасность · Обучение
УЧИСЬ!
ИЛИ
ВЗЛОМАЮТ
Лучшие ИБ-мероприятия
и вебинары — в одном месте
ПОДПИШИСЬ
T.ME/SECWEBINARS