1

Хорошо. первый пост после долгих лет. и даже название было проблемой само по себе ...

Необходимое условие:

  • Компания A предоставляет услуги через CDN, такие как Cloudflare, Akamai, CloudFront, ...

Ситуация:

  • (Мой) Клиент А запрашивает информацию
  • (Мой) DNS-сервер (dnsmasq) видит запрос и разрешает адрес, который указывает на CDN
  • Клиент А с радостью получает доступ к CDN через https. Все работает.

Мой вызов:

Я хотел бы узнать, из какой компании мой клиент получает доступ к услуге. (Компания А в этом примере). Прямо сейчас, единственный фрагмент информации, которую я имею, является запросом и ответом DNS, например:

query[A] e4478.a.akamaiedge.net from [IP_of_Client_A]
query[A] e673.dsce9.akamaiedge.net from [IP_of_Client_A]
query[A] e6858.dsce9.akamaiedge.net from [IP_of_Client_A]

Что я пробовал:

Помимо nslookup, dig (который я не герой), nmap, netstat и небольшой tcpdump Я прочитал каждую статью на Superuser.com с надписью "Akamai" и много "исследовал" (duckduckgo'ed). Либо мои параметры поиска неверны, либо это очень простой вопрос, увы, ответы не найдены.

Почти готово:

При этом я наткнулся на robtex.com, где можно ввести адрес ex. "e4478.a.akamaiedge.net", и он возвращает всю информацию.
Под заголовком "Использование в качестве CNAME" он преобразует «e4478.a.akamaiedge.net» в «www.icloud.com.edgekey.net».
Теперь это помогает мне долгий путь! Это то, что я хотел бы получить с (комбинацией) команд оболочки un * xy, если это вообще возможно.

Не каждый адрес разрешен только одному CNAME.
Ex. «e6858.dsce9.akamaiedge.net» преобразуется в список «com-instantwinner.club, www.pboy.com, www.apple.com.edgekey.net.globalredir.akadns.net», но это нормально. По крайней мере, я могу сузить это (если это не очевидно, как в этом случае).

Я тоже наткнулся на эту ссылку Определение сервиса, который использует *.CloudFront.net, который выглядел многообещающе, но в основном говорит, что нет никакой возможности узнать эту информацию. Каким-то образом Robtex делает это, и я не теряю надежды, что есть способ сделать это и для меня.

Любой совет?

2 ответа2

0

Во многих случаях перенаправление краевого узла CDN выполняется с помощью хитростей DNS CNAME, как вы заметили, поэтому клиент по-прежнему думает, что идет на исходный сайт. В этом случае заголовок «Host:» HTTP-запроса будет по-прежнему иметь имя исходного сайта. В случае TLS (HTTPS) рукопожатие TLS может содержать индикатор имени сервера (SNI), который говорит вам то же самое.

Прежде чем спросить: да, даже TLS часто дает утечку названия сайта, на который вы идете. Исследователи изо всех сил пытаются найти хороший способ обойти это, не разрушая виртуальный веб-хостинг. Большинству провайдеров CDN, вероятно, нужен виртуальный веб-хостинг для работы, поэтому они, вероятно, используют SNI.

0

Wireshark идеально подходит для этого. Но сначала обязательное предупреждение:

ПОЛУЧАТЬ РАЗРЕШЕНИЕ!

Если вы прослушиваете сеть без согласия всех, кто ее использует (кашель, EULA, кашель), вы нарушаете федеральные законы о прослушивании.

Как уже упоминалось в другом ответе, SNI - это путь. Сначала захватите немного трафика. Он ДОЛЖЕН включать в себя привет клиента, что произойдет, если вы перехватили его с начала соединения. Затем перейдите и найдите указанный клиентский пакет приветствия. В этом пакете осмотрите анализатор SSL, и вы найдете имя сервера. Вот где это визуально:

Wireshark иллюстрация

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .