06 Апр, 2023

Система многоадресной рассылки доменных имен (MDNS)

Penetration Testing as a service (PTaaS)

Tests security measures and simulates attacks to identify weaknesses.

МДНС (Система многоадресной рассылки доменных имен) использует многоадресные DNS-сообщения для обнаружения и разрешения IP-адресов устройств в локальной сети. Это позволяет легко обнаруживать устройства и взаимодействовать с ними по локальной сети без необходимости в центральном DNS-сервере. 

МДНС общие порты

Port 5353: Этот порт используется самим протоколом mDNS для отправки и получения многоадресных DNS-пакетов.

Port 5355: Этот порт используется протоколом DNS-SD (обнаружение служб DNS), который построен поверх MDNS. DNS-SD позволяет устройствам рекламировать и обнаруживать сетевые службы, такие как принтеры, файловые серверы и медиаплееры.

Стандартные команды от неавторизованных пользователей

Протокол, используемый для обнаружения и разрешения имен хостов и IP-адресов в локальной сети. Стандартные команды для MDNS могут различаться в зависимости от конкретной реализации и настройки сети, но вот несколько примеров часто используемых команд:

Запрос на конкретное имя хоста: Неавторизованный пользователь может использовать запрос mDNS для поиска определенного имени хоста в сети. Например, они могут отправить запрос на имя хоста “printer.local”, чтобы узнать, есть ли в сети принтер с таким именем.

Широковещательный запрос для всех доступных служб: Неавторизованный пользователь может транслировать запрос mDNS для поиска всех доступных служб в сети. Это может выявить наличие различных устройств и служб в сети.

Поддельные ответы MDNS: Неавторизованный пользователь также может попытаться подделать ответы MDNS, чтобы перенаправить сетевой трафик на вредоносное устройство или службу. Например, они могут отправить поддельный ответ для популярного сервиса, такого как “apple-tv.local”, чтобы перенаправить трафик на свое собственное устройство.

Инструменты для использования протоколов MDNS

Ручные Инструменты:

  • mDNSResponder: Это инструмент командной строки для тестирования MDN в системах macOS и Linux. Он может быть использован для запроса и регистрации служб mDNS.

  • mdns-scan: Инструмент командной строки Linux, который позволяет сканировать локальную сеть на наличие служб и узлов MDNS.

  • Avahi: Бесплатная реализация протоколов mDNS и DNS-SD для систем Linux и BSD. Он включает в себя инструменты командной строки для тестирования MDN.

  • Bonjour Browser: Инструмент на основе графического интерфейса для macOS, который позволяет вам просматривать службы MDNS и запрашивать их в вашей локальной сети.

  • dns-sd: Инструмент командной строки для запроса MDNS и служб DNS-SD в системах macOS и Linux.

  • mdns-repeater: Инструмент командной строки Linux, который позволяет пересылать трафик MDNS между сетями.

  • mDNSWatch: Инструмент для мониторинга трафика MDNS в системах Windows.

  • mDNS-ping: Инструмент командной строки для отправки пакетов ping mDNS и тестирования ответов mDNS в системах Linux.

  • dns-sd-proxy: Инструмент командной строки Linux, который действует как прокси для MDNS и DNS-SD трафика между сетями.

  • multicast-dns: А Node.js модуль для тестирования MDN в системах Linux и macOS.

Автоматизированные инструменты:

  • nmap: Популярный инструмент для исследования сети и аудита безопасности, который включает поддержку MDNS и обнаружения DNS-SD.

  • Metasploit Framework: Мощная платформа с открытым исходным кодом для тестирования на проникновение, которая включает модули для тестирования MDNS и служб DNS-SD.

  • Kali Linux: Популярный дистрибутив Linux для тестирования на проникновение, который включает в себя множество инструментов для тестирования MDN и других сетевых протоколов.

  • The Sleuth Kit: Набор инструментов командной строки для цифровой криминалистики и расследования, который включает поддержку анализа трафика MDNS.

  • Wireshark: Популярный анализатор сетевых протоколов, который может использоваться для сбора и анализа трафика MDNS на различных платформах.

  • BonjourJolie: Плагин браузера для Firefox на macOS, который предоставляет аналогичную функциональность плагину браузера Bonjour.

  • Bonjour Print Services Plugin: Плагин браузера для Windows, который позволяет вам обнаруживать и печатать на принтерах с поддержкой Bonjour.

  • Bonjour for Windows: Программный пакет для Windows, который включает поддержку MDNS и обнаружения DNS-SD.

  • Zeroconf Neighborhood Explorer: Плагин браузера для Internet Explorer в Windows, который позволяет просматривать службы MDNS и запрашивать их из браузера.

Последние пять известных CVE для MDN 

CVE-2022-25749 – Временный отказ в обслуживании в WLAN из-за переполнения буфера при разборе кадров MDNS. в Snapdragon Auto, Snapdragon Compute, Snapdragon Connectivity, Snapdragon Consumer Electronics Connectivity, Snapdragon Consumer IOT, Snapdragon Industrial IOT, Snapdragon IoT, Snapdragon Mobile, Snapdragon Voice & Music, Snapdragon Wearables, Snapdragon проводной инфраструктуры и сетей

 CVE-2022-20682 – Уязвимость в управлении и предоставлении Обработка протокола беспроводных точек доступа (CAPWAP) в программном обеспечении беспроводного контроллера Cisco IOS XE для семейства Catalyst 9000 может позволить удаленному злоумышленнику, не прошедшему проверку подлинности, вызвать отказ в обслуживании (DoS) на уязвимом устройстве. Эта уязвимость возникает из-за неадекватной проверки входных данных входящих пакетов CAPWAP, инкапсулирующих многоадресные DNS-запросы (MDNS). Злоумышленник может воспользоваться этой уязвимостью, подключившись к беспроводной сети и отправив созданный запрос mDNS, который будет проходить через беспроводной контроллер и обрабатываться им. Успешный эксплойт может позволить злоумышленнику вызвать сбой и перезагрузку уязвимого устройства, что приведет к состоянию DoS.

 CVE-2021-1439 – Уязвимость в функции шлюза многоадресной рассылки DNS (mDNS) программного обеспечения точек доступа Cisco серии Aironet может позволить злоумышленнику, не прошедшему проверку подлинности, смежному злоумышленнику вызвать состояние отказа в обслуживании (DoS) на уязвимом устройстве. Эта уязвимость связана с недостаточной проверкой входящего трафика MDNS. Злоумышленник может воспользоваться этой уязвимостью, отправив созданный пакет mDNS на уязвимое устройство через беспроводную сеть, настроенную в режиме локальной коммутации FlexConnect, или через проводную сеть в настроенной VLAN mDNS. Успешный эксплойт может позволить злоумышленнику вызвать перезагрузку точки доступа (AP), что приведет к состоянию DoS.

 CVE-2020-6080 – В обработке распределения ресурсов Videolabs libmicrodns 0.1.0 существует уязвимость, связанная с отказом в обслуживании. При возникновении ошибок при разборе сообщений mDNS некоторые выделенные данные не освобождаются, что может привести к отказу в обслуживании из-за исчерпания ресурсов. Злоумышленник может повторно отправить одно сообщение mDNS, чтобы вызвать эту уязвимость, с помощью функции rr_read_RR [5], считывающей текущую запись ресурса, за исключением раздела RDATA. Это считывается циклом в in rr_read. Для каждого типа RR вызывается своя функция. Когда тип RR равен 0x10, функция rr_read_TXT вызывается в [6].

 CVE-2020-6079 – В обработке распределения ресурсов Videolabs libmicrodns 0.1.0 существует уязвимость, связанная с отказом в обслуживании. При возникновении ошибок при разборе сообщений mDNS некоторые выделенные данные не освобождаются, что может привести к отказу в обслуживании из-за исчерпания ресурсов. Злоумышленник может повторно отправить одно сообщение mDNS, чтобы вызвать эту уязвимость, путем декодирования доменного имени, выполняемого с помощью rr_decode.

Полезная информация

– mDNS использует IP-многоадресную рассылку для передачи DNS-сообщений по локальной сети. Это означает, что пакеты MDNS отправляются только на устройства в одном и том же сегменте сети, что делает его более эффективным и локализованным способом обнаружения сетевых служб.

– mDNS часто используется совместно с DNS-SD (DNS Service Discovery), который позволяет устройствам рекламировать и обнаруживать сетевые службы, такие как принтеры, файловые серверы и медиаплееры. DNS-SD построен поверх MDNS и использует те же самые многоадресные пакеты для обнаружения служб.

– mDNS предназначен для работы как в проводных, так и в беспроводных сетях, что делает его гибким и универсальным протоколом для обнаружения сетевых служб.

– MDNS можно использовать для обнаружения служб как в сетях IPv4, так и в IPv6. Он поддерживает оба типа IP-адресов и может быть настроен на использование любого из них.

– Пакеты MDNS отправляются с использованием протокола пользовательских дейтаграмм (UDP), а не Протокола управления передачей (TCP). Это означает, что они не имеют соединения и не гарантируют доставку пакетов, но на практике это обычно не является проблемой для локальных сетей.

– mDNS поддерживается многими операционными системами, включая macOS, Windows, Linux и iOS. Это делает его широко используемым и совместимым протоколом для обнаружения сетевых служб.

– Чтобы использовать MDNS, устройства должны поддерживать протокол и быть настроены на его использование. Обычно это включает включение MDNS на устройстве и настройку его с помощью доменного имени.

– MDNS можно использовать для обнаружения устройств и служб в сети, не полагаясь на централизованную систему именования. Это делает его полезным инструментом для домашней автоматизации, Интернета вещей (IoT) и других приложений, где устройствам необходимо взаимодействовать друг с другом, не полагаясь на сервер.

– MDNS может быть полезным инструментом устранения неполадок для сетевых администраторов. Используя такие инструменты, как Wireshark, администраторы могут перехватывать и анализировать пакеты MDNS для диагностики проблем с сетевыми службами.

Известные баннеры

Apple Inc.: Устройства Apple часто рекламируют службы MDNS с помощью баннеров, которые содержат строку “_apple-mobdev2._tcp.local”. Это указывает на то, что устройство использует протокол Bonjour от Apple для рекламы услуг в сети.

Google Chromecast: Устройства Chromecast рекламируют услуги MDNS с помощью баннеров, содержащих строку “_googlecast._tcp.local”. Это указывает на то, что устройство рекламирует свою службу Chromecast в сети.

Amazon Echo: Устройства Amazon Echo рекламируют услуги MDNS с помощью баннеров, содержащих строку “_amzn-wplay._tcp.local”. Это указывает на то, что устройство рекламирует свою услугу беспроводного воспроизведения звука в сети.

Sonos: Устройства Sonos рекламируют услуги MDNS с помощью баннеров, содержащих строку “_sonos._tcp.local”. Это указывает на то, что устройство рекламирует свою службу Sonos в сети.

Roku: Устройства Roku рекламируют услуги MDNS, используя баннеры, которые содержат строку “_roku._tcp.local”. Это указывает на то, что устройство рекламирует свою службу Roku в сети.

Philips Hue: Устройства Philips Hue рекламируют услуги MDNS с помощью баннеров, содержащих строку “_hue._tcp.local”. Это указывает на то, что устройство рекламирует свою службу Hue в сети.

Logitech Harmony: Устройства Logitech Harmony рекламируют услуги MDNS с помощью баннеров, содержащих строку “_logitech-harmony._tcp.local”. Это указывает на то, что устройство рекламирует свою службу Harmony в сети.

Книги для изучения MDNS

“Сеть с нулевой конфигурацией: окончательное руководство” Дэниел Стейнберг и Стюарт Чешир: В этой книге представлен всеобъемлющий обзор сети нулевой конфигурации (Zeroconf), которая включает MDNS. В нем рассматриваются основы MDNS и то, как это работает, а также другие протоколы, такие как разрешение имен локальной многоадресной рассылки (LLMNR) и обнаружение служб на основе DNS (DNS-SD). Он также включает практические примеры и пробы кода для реализации Zeroconf в ваших собственных проектах.

“Руководство по программированию Bonjour: для Mac OS X” от Apple Inc.: Это руководство, опубликованное Apple, содержит подробный обзор Bonjour, который является реализацией MDNS от Apple. В нем рассказывается об основах MDNS и о том, как это работает, а также о том, как использовать Bonjour в приложениях macOS. Он включает в себя примеры кода и практические советы по созданию приложений, использующих Bonjour.

“Многоадресная DNS: разработка и внедрение” автор: Стюарт Чешир: Эта книга дает углубленный взгляд на проектирование и внедрение MDNS. В нем рассказывается об истории MDNS, технических деталях того, как это работает, и практических советах по внедрению MDNS в ваши собственные проекты. Он также включает тематические исследования и реальные примеры того, как mDNS используется в различных приложениях.

“Сетевое взаимодействие для системных администраторов” Майкл У. Лукас: Эта книга предоставляет всесторонний обзор сетевых концепций для системных администраторов. Он включает в себя главу о Zeroconf, которая охватывает MDNS и другие связанные протоколы. В нем содержатся практические рекомендации по настройке и устранению неполадок Zeroconf в различных операционных системах.

“Zeroconf: создание сетей в эпоху цифровых технологий” автор: Стюарт Чешир: В этой книге представлен подробный обзор Zeroconf, который включает MDN. В нем рассказывается об истории Zeroconf, технических деталях его работы и практических советах по внедрению Zeroconf в ваши собственные проекты. Он также включает тематические исследования и реальные примеры того, как Zeroconf используется в различных приложениях.

Список полезной нагрузки для MDNS

Полезная нагрузка сообщения запроса: Эта полезная нагрузка используется для инициирования запроса mDNS для определенной службы или устройства в сети. Обычно он включает в себя имя запрашиваемой службы и тип выполняемого запроса (например, "A” для IPv4-адреса, “AAAA” для IPv6-адреса или “PTR” для запроса обратного поиска).

Полезная нагрузка ответного сообщения: Эта полезная нагрузка используется для ответа на запрос mDNS и предоставления информации о конкретной службе или устройстве в сети. Обычно он включает название рекламируемой услуги, тип услуги (например, “_http._tcp”), а также IP-адрес и номер порта устройства, предлагающего услугу.

Полезная нагрузка анонсирующего сообщения: Эта полезная нагрузка используется для рекламы сервиса или устройства в сети. Обычно он включает название рекламируемой услуги, тип услуги, IP-адрес и номер порта устройства, предлагающего услугу, а также любые дополнительные метаданные об услуге.

Полезная нагрузка прощального сообщения: Эта полезная нагрузка используется для указания того, что служба или устройство больше не доступны в сети. Обычно оно отправляется при выключении устройства или удалении службы из сети.

Полезная нагрузка зондирующего сообщения: Эта полезная нагрузка используется для определения того, используется ли уже определенное имя в сети. Обычно оно отправляется перед рекламой новой услуги, чтобы избежать конфликтов с существующими службами.

Полезная нагрузка сообщения прокси-запроса: Эта полезная нагрузка используется для пересылки запроса mDNS из одного сегмента сети в другой. Обычно он используется в более крупных сетях, имеющих несколько подсетей.

Смягчение последствий

  1. Отключите MDNS, если это не нужно: Если MDNS не является необходимым для вашей сети или приложений, рассмотрите возможность его полного отключения. Это можно сделать, настроив сетевые устройства на блокировку трафика MDNS.

  2. Сегментируйте свою сеть: Сегментация вашей сети на более мелкие подсети может помочь уменьшить влияние трафика MDNS. Ограничивая объем трафика mDNS определенными подсетями, вы можете снизить риск того, что злоумышленники воспользуются уязвимостями mDNS.

  3. Реализовать контроль доступа к сети: Внедрение контроля доступа к сети (NAC) может помочь предотвратить доступ несанкционированных устройств к вашей сети. Ограничивая доступ только к авторизованным устройствам, вы можете снизить риск того, что злоумышленники используют MDN для получения доступа к вашей сети.

  4. Используйте брандмауэры: Брандмауэры могут использоваться для блокирования входа трафика MDNS в вашу сеть или выхода из нее. Настроив брандмауэры для блокирования трафика MDNS, вы можете снизить риск того, что злоумышленники будут использовать MDNS для использования уязвимостей в вашей сети.

  5. Внедрить DNSSEC: Расширения безопасности DNS (DNSSEC) могут использоваться для защиты DNS-запросов и ответов, включая те, которые используются MDNS. Внедрив DNSSEC, вы можете снизить риск того, что злоумышленники перехватят или изменят трафик MDNS.

  6. Поддерживайте программное обеспечение в актуальном состоянии: Обновление программного обеспечения с помощью последних исправлений и обновлений безопасности может помочь снизить риск использования уязвимостей mDNS злоумышленниками. Это включает как сетевые устройства, так и приложения, использующие MDNS.

Заключение

Система многоадресных доменных имен (MDNS) протокол является ценным инструментом для обнаружения служб в локальных сетях. Это позволяет устройствам обнаруживать друг друга и взаимодействовать друг с другом без необходимости в центральном сервере или конфигурации. Однако, как и любой сетевой протокол, MDNS также может представлять угрозу безопасности, если не защищен должным образом.

Некоторые потенциальные проблемы безопасности, связанные с MDN, включают несанкционированный доступ к службам, атаки типа "отказ в обслуживании" и разведку сети. Чтобы снизить эти риски, важно внедрить соответствующие меры безопасности, такие как отключение MDNS, когда это не требуется, использование брандмауэров и списков контроля доступа для ограничения доступа к службам MDNS, мониторинг сетевого трафика на предмет подозрительной активности и поддержание программного обеспечения в актуальном состоянии для устранения уязвимостей в системе безопасности.

Другие Услуги

Готовы к безопасности?

Связаться с нами