Как узнать все домены сайта или приложения: гайд по 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 не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

Взломают завтра? как математика предсказывает кибератаки

31 марта в 14:00 — SuperHardio Brothers* раскрывают, как превратить математическое моделирование времени атак в конкурентное преимущество вашей компании.

Реклама. АО «Позитив Текнолоджиз», ИНН 7718668887 *герои-эксперты харденинга


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

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