Как отключить mdns windows 10

Обновлено: 30.06.2024

Один из самых популярных способов защиты ваших персональных данных в сети заключается в использовании VPN-сервиса. Однако, иногда недостаточно просто установить службу и надеяться на лучшее. Данное руководство поможет вам убедиться, что VPN не раскрывает ваши DNS-запросы.

В поисковой системе Google можно найти много статей по отключению Smart Multi-Homed Name Resolution или улучшенное многоадресное разрешение имен, но что это за функция? Еще в Windows 8 Microsoft представила новую функцию, которая ускоряет DNS-запросы за счет использования всех доступных в системе сетевых адаптеров для возврата самого первого результата. Это означает, что даже если вы используете VPN-сервис для работы в Интернете, но в вашей системе установлено несколько сетевых адаптеров, DNS-запрос может быть передан вне вашего защищенного VPN соединения.

Приведенные ниже шаги позволяют отключить данную функцию в Windows 8.1 и Windows 10 в системах с несколькими сетевыми адаптерами, например, при использовании нескольких беспроводных подключений или беспроводного и проводного подключений.

Windows 8 и 8.1

Следующий твик реестра можно применить только в системах Windows 8 и 8.1, в Windows 10 он не работает.

Если вы не любите работать с реестром, то можете пропустить данный способ и отключить функцию с помощью редактора групповых политик.

Примечание: Некорректное изменение реестра может привести к серьезным проблемам. Рекомендуется создать резервную копию реестра Windows перед тем, как выполнить данные шаги. В меню редактора реестра выберите Файл > Экспорт для сохранения резервной копии.

  1. Откройте редактор реестра: нажмите клавишу Windows, затем введите regedit.exe и нажмите Enter. Появится запрос службы контроля учетных записей, подтвердите его.
  2. Перейдите по пути: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient .
  3. Если параметр DisableSmartNameResolution уже существует, убедитесь, что его значение равно 1.
  4. В противном случае щелкните правой кнопкой мыши по директории DNSClient и в меню выберите Создать > Параметр DWORD (32 бита).
  5. Назовите параметр DisableSmartNameResolution .
  6. Установите значение, равное 1. Вы сможете в любой момент снова включить функцию, просто установив значение, равное 0 или просто удалив параметр.
  7. Перейдите по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters .
  8. Если параметр DisableParallelAandAAAA уже существует, убедитесь, что его значение равно 1.
  9. В противном случае щелкните правой кнопкой мыши по директории Parameters и в меню выберите Создать > Параметр DWORD (32 бита).
  10. Назовите параметр DisableParallelAandAAAA .
  11. Установите значение, равное 1. Вы сможете в любой момент снова включить функцию, просто установив значение, равное 0 или просто удалив параметр.

После этого можно закрыть редактор реестра и перезагрузить Windows, чтобы применить изменения.

Windows 8 и Windows 10 (редактор локальной групповой политики)

Следующий способ работает во всех версиях Windows 10, а также в Windows 8 и 8.1.

Обратите внимание, что редактор групповых политик доступен только в версиях Windows 10 Pro. Если вы используете Windows 10 Домашняя, то можете использовать бесплатное приложение с открытым исходным кодом Policy Plus для редактирования групповых политик и отключения функции Smart Multi-Homed Name Resolution.

Отключить улучшенное многоадресное разрешение имен

  1. Откройте редактор локальной групповой политики: нажмите клавишу Windows, затем введите gpedit.msc и нажмите Enter.
  2. Перейдите по пути: Конфигурация компьютера > Административные шаблоны > Сеть > DNS-клиент > Отключить улучшенное многоадресное разрешение имен.
  3. Установите статус политики Включено для отключения данной функции в системе.

статус политики

Перезагрузите Windows, чтобы применить изменения.

Данная метод ни в коем случае не является верным способом защиты вашей конфиденциальности в Интернете, многие другие факторы также играют важную роль. Если у вас есть собственный лайфхак, который вы используете, чтобы поддерживать безопасность в сети, поделитесь им ниже в обсуждениях. Давайте сделаем серфинг снова безопасным вместе!

date

09.04.2021

directory

Windows 10, Windows Server 2019, Безопасность, Групповые политики

comments

комментариев 9

Широковещательные протоколы NetBIOS over TCP/IP и LLMNR являются устаревшими и в большинстве современных сетей они используются только для совместимости с legacy версиями Windows. Оба протокола подвержены спуфингу и атакам MITM. В том же Metasploit есть готовые модули, позволяющие легко использовать уязвимости в широковещательных протоколах NetBIOS и LLMNR для перехвата учетных данных пользователей в локальной подсети (в т.ч. можно получить хэши NTLMv2). Для повышения безопасности необходимо отключать эти старые протоколы в доменной сети. Разберемся, как отключить протоколы LLMNR и NetBIOS в Windows 10/Windows 2016 вручную или через групповые политики.

Протокол LLMNR

LLMNR (UDP/5355, Link-Local Multicast Name Resolution — механизм широковещательного разрешения имен) – протокол присутствует во всех версиях Windows, начиная с Vista и позволяет IPv6 и IPv4 клиентам разрешать имена соседних компьютеров без использования DNS сервера за счет широковещательных запросов в локальном сегменте сети L2. Этот протокол также автоматически используется при недоступности DNS (в рабочих группах Windows этот протокол используется для сетевого обнаружения/Network Discovery). Соответственно, при работающих DNS-серверах в домене, этот протокол абсолютно не нужен.

Протокол NetBIOS over TCP/IP

Протокол NetBIOS over TCP/IP или NBT-NS (UDP/137,138;TCP/139) – является широковещательным протоколом-предшественником LLMNR и используется в локальной сети для публикации и поиска ресурсов. Поддержка NetBIOS over TCP/IP по умолчанию включена для всех интерфейсов во всех версиях Windows.

В Windows вы можете вывести статистику протокола NetBIOS и текущий подключений TCP/IP по NBT с помощью команды nbtstat. Чтобы по IP адресу получить имя компьютера, выполните:

nbtstat -A 192.168.31.90

nbtstat обнаружение соседних компьютеров через netbios

Как вы видите, утилита с помощью NetBIOS обнаружила в локальной сети компьютер и вернула его имя.

Можете вывести все записи о соседних компьютерах в локальных сети в кэше NetBIOS:

Протоколы NetBIOS и LLMNR позволяют компьютерам в локальной сети найти друг друга при недоступности DNS сервера. Возможно они и нужны в рабочей группе, но в доменной сети оба этих протокола можно отключить.

Совет. Перед массовым внедрением данных политики в домене, настоятельно рекомендуем протестировать работу компьютеров с отключенными NetBIOS и LLMNR на тестовых группах компьютеров и серверах. И если проблем с отключением LLMNR обычно нет, то отключение NetBIOS может парализовать работу устаревших систем

Отключение протокола LLMNR с помощью GPO

Можно отключить LLMNR на компьютере Windows локально через реестр с помощью следующей команды PowerShell:

New-Item "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT" -Name DNSClient -Force
New-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name EnableMultiCast -Value 0 -PropertyType DWORD -For ce

В доменной среде широковещательные запросы LLMNR на компьютерах и серверах домена проще отключить с помощью групповой политики. Для этого:

отключение протокола LLMNR через GPO Turn off smart multi-homed name resolution

  1. В консоли GPMC.msc создайте новую или отредактируйте имеющуюся политику, применяемую ко всем рабочим станциям и серверам;
  2. Перейдите в раздел Computer Configuration -> Administrative Templates -> Network -> DNS Client;
  3. Включите политику Turn off smart multi-homed name resolution, изменив ее значение на Enabled;
  4. Дождитесь обновления параметров GPO на клиентах или обновите их вручную командой gpupdate /force .
Либо вы можете через GPP распространить на компьютеры домена параметр реестра EnableMulticast = 0 (HKLM\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient).

Отключение протокола NetBIOS over TCP/IP в Windows 10

Примечание. Протокол NetBIOS может использовать старыми версиями Windows и некоторыми не-Windows системами, поэтому процесс его отключения в конкретной среде стоит тестировать.

Вы можете отключить NetBIOS в Windows вручную:

отключить netbios в свойствах сетевого адаптера windows

Если у вас на компьютере несколько сетевых интерфейсов (или отдельных VLAN), нужно будет отключить NetBIOS в свойствах каждого их них.

Вы можете проверить статус NetBIOS over TCP/IP для сетевых адаптеров из командной строки Windows:

ipconfig /all |find "NetBIOS"

проверить, что netbios отключен NetBIOS over Tcpip. . . . . . . . : Disabled

Отключить поддержку NetBIOS для конкретного сетевого адаптера можно и из реестра. Для каждого сетевого адаптера компьютера есть отдельная ветка с его TCPIP_GUID внутри HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces.

Чтобы отключить NetBIOS для конкретного сетевого адаптера, нужно открыть его ветку и изменить значение параметра NetbiosOptions на 2 (по умолчанию значение – 0).

отключение netbios через реестр

На клиентах домена, получающих IP адреса с DHCP на Windows Server, вы можете отключить NetBIOS через настройку опций DHCP сервера.

  1. Для этого откройте консоль dhcpmgmt.msc и выберите настройки зоны Scope Option (или сервера – Server Options);
  2. Перейдите на вкладку Advanced, в выпадающем списке Vendor class выберите Microsoft Windows 2000 Options;
  3. Включите опцию 001 Microsoft Disable Netbios Option и измените ее значение на 0x2.

Отключение NetBios ддя клиентов DHCP опцией 001 Microsoft Disable Netbios Option

Как отключить NetBIOS через групповые политики?

В редакторе групповых политик или последней версии административных шаблонов для Windows 10/Windows Server 2019 нет отдельного параметра, позволяющего отключить протокол NETBIOS over TCP/IP для всех сетевых адаптеров компьютера. Чтобы отключить NETBIOS для всех адаптеров компьютера воспользуйтесь таким логон скриптом PowerShell.

$regkey = "HKLM:SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces"
Get-ChildItem $regkey |foreach

Сохраните этот код в файл disableNetbios.ps1, скопируйте его в каталог вашей GPO и запускайте на клиентах через Computer Configuration -> Policies -> Windows Settings -> Scripts -> Startup- > PowerShell Scripts.

Если на клиентах настройки политики выполнения PowerShell блокируют запуск этого скрипта, нужно подписать PS1 скрипт или запускать его в режиме –bypass.

групповая политика для отключения NetBios в Windows с помощью скрипта PowerShell

Примечание. Для вступления изменений в силу, нужно отключить/включить сетевые адаптеры или перезагрузить компьютер.

Затем откройте командную строку и проверьте, что NetBIOS отключен для ваших сетевых адаптеров (кроме туннельных интерфейсов):


Это перевод статьи Марка Э. Хааса, впервые опубликованной в блоге Hyperion Gray. Перевела Алёна Георгиева.

Что такое mDNS?

Официальные сайты Multicast DNS и DNS Service Discovery способны скорее запутать, чем пролить свет на суть этих технологий. Поэтому — прежде чем погружаться в вопросы безопасности mDNS и DNS-SD — мы обсудим, почему вообще эти протоколы существуют и чем они на самом деле занимаются.

Оба протокола являются частью Zeroconf — пакета технологий, который помогает сетевым устройствам находить друг друга автоматически. Когда ты отправляешь документ на печать, а твой компьютер сам предлагает на выбор ближайшие принтеры, скорее всего, он использует именно Zeroconf. Протоколы связаны с DNS, так что здесь нужно хотя бы на базовом уровне понимать, как устроена система DNS.

Обычно DNS работает «одноадресно» (unicast) — это значит, что каждый запрос отправляется на конкретный IP-адрес. Слово multicast (то есть «многоадресность») в mDNS означает, что запрос веерно рассылается всем девайсам широковещательного домена (broadcast domain). Сам по себе термин «широковещательный домен» означает, грубо говоря, все сообщающиеся устройства второго уровня — например, компьютеры, соединенные сетевыми коммутаторами. Это важный момент, ведь запросы mDNS не проходят через роутеры — потому что роутеры уже устройства третьего уровня.

Разберемся на примере. Мой MacBook Pro имеет в системе mDNS имя MehBook.local . Выяснить это можно во вкладке «Общий доступ» (Sharing) системных настроек.



Чтобы вычислить IP макбука, мы можем использовать инструмент DNS-запросов вроде dig :

$ dig @224.0.0.251 -p 5353 +short MehBook.local
10.105.0.203

Обрати внимание, что имя заканчивается на .local — это домен верхнего уровня, зарезервированный специально под mDNS. Если ты видишь подобное имя — то, вероятно, сможешь вычислить айпишник, используя mDNS. Такие доменные имена называются именами локальной связи (link-local names), потому что увидеть их можно только внутри локальной сети.

Имей в виду: некоторые сисадмины некорректно используют местный домен верхнего уровня вместе с одноадресным DNS. Следи за собой, будь осторожен!

Вместо того чтобы посылать запрос DNS-серверу на порт 53, мы используем порт 5353 и специальный адрес 224.0.0.251 — собственно, мультикастомный. Этот конкретный адрес зарезервирован специально для mDNS. Когда на адрес 224.0.0.251 приходит запрос, все устройства сети получают копию этого запроса и могут на него ответить. В нашем примере мой макбук увидел запрос и вернул по нему свой собственный айпишник — 10.105.0.203 .

IP моего макбука динамический, через какое-то время он поменяется — а вот mDNS-имя останется прежним! Так что мы можем взаимодействовать с доменными именами без запуска DNS-сервера. Сам понимаешь, чем это полезно в домашних и небольших офисных сетях.

Что такое DNS-SD?

В примере с mDNS мы выясняли айпишник устройства с уже известным именем. Но что, если ты хочешь связаться с девайсом, имя которого не знаешь, — например, с принтером? Эту проблему как раз и решает протокол обнаружения сервисов (Service Discovery). Он позволяет устройствам заявлять о конкретных сервисах, которые они предлагают, — так, чтобы можно было обнаружить их без централизованной настройки.

Начнем с вычисления принтеров:

Тут нам помогут те же мультикастомный DNS-адрес и порт, но на сей раз мы запрашиваем PTR-записи и используем специальное доменное имя _printer._tcp.local — оно как раз предназначено для распознавания принтеров. В ответ на этот запрос мой принтер Brother вернул свое локальное доменное имя.

Если ты хочешь запросить устройства с другими сервисами, то стоит свериться с их официальным реестром. Например, там есть любопытная служба RAOP — она же протокол Apple, известный как AirTunes. Давай-ка его вычислим:

Запрос показывает устройство в моей сети, предлагающее сервис RAOP, — это Apple TV под названием «Гостиная» (Living Room). На самом деле в моей сети два Apple TV, но dig выводит только первый полученный ответ. К счастью, есть инструменты и получше. На macOS это команда dns-sd в программном модуле Rendezvous (Bonjour), эппловской реализации Zeroconf.

Эта команда разошлет запрос и отобразит все полученные ответы (чтобы избавиться от них, нужно будет нажать Ctrl-C). Теперь мы видим оба моих Apple TV.

На Linux тот же набор инструментов предлагает пакет Avahi (на Debian/Ubuntu он называется avahi-utils ).

$ avahi-browse _raop._tcp
+ IPv6 D0D2B0XXXXXX@Bedroom AirTunes Remote Audio local
+ IPv6 C8D083XXXXXX@Living Room AirTunes Remote Audio local
+ IPv4 D0D2B0XXXXXX@Bedroom AirTunes Remote Audio local
+ IPv4 C8D083XXXXXX@Living Room AirTunes Remote Audio local
^C

Avahi умеет переводить имена служб типа _raop._tcp.local в более понятные — AirTunes Remote Audio local , например. Также Avahi может вычислить айпишник с помощью mDNS, так что dig здесь вообще не нужен:

Обрати внимание, что при mDNS-запросе мы не вставляем значения типа _raop._tcp — потому что это название службы, а не устройства. Также мы ничего не пишем слева от символа @ .

Вычисляем устройства

Теперь ты видишь, чем пакет Zeroconf интересен пентестерам: благодаря ему можно быстро найти целый список доступных устройств буквально за пару запросов. А Avahi еще и позволяет автоматизировать этот процесс. Например, вполне реально упаковать обнаружение сервисов и пробивание IP через mDNS в один шаг.

$ avahi-browse --resolve _printer._tcp
+ enp4s0 IPv4 Brother DCP-L2540DW series UNIX Printer local
= enp4s0 IPv4 Brother DCP-L2540DW series UNIX Printer local
hostname = [brotherB85F3190.local]
address = [10.105.0.3]
port = [515]
txt = ["UUID=e3248000-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
"TBCP=F" "Transparent=T" "Binary=T" "PaperCustom=T"
"Scan=T" "Fax=F" "Duplex=T" "Copies=T" "Color=F" …]
^C

В результате мы получаем локальное имя хоста, IP-адрес и порт ( tcp/515 — дефолтный порт для Line Printer Daemon). Плюс много информации о возможностях принтера в поле txt .

Использованная здесь команда — отличный способ пересчитать все устройства конкретного типа, однако Avahi способен на большее! Следующая команда вычисляет вообще все типы сервисов сразу.

$ avahi-browse --all
+ IPv6 8FB20F14F5966F78620XXXX iPod Touch Music Library local
+ IPv6 276A1455BC533567B08XXXX iPod Touch Music Library local
+ IPv4 8FB20F14F5966F78620XXXX iPod Touch Music Library local
+ IPv4 276A1455BC533567B08XXXX iPod Touch Music Library local
+ IPv6 8FB20F14F5966F78620XXXX _appletv-v2._tcp local
+ IPv6 276A1455BC533567B08XXXX _appletv-v2._tcp local
+ IPv4 8FB20F14F5966F78620XXXX _appletv-v2._tcp local
+ IPv4 276A1455BC533567B08XXXX _appletv-v2._tcp local
^C

Наконец, Avahi может слушать запросы по протоколам Zeroconf от других устройств, что позволяет вычислять девайсы фоново.

$ avahi-browse -a
+ IPv6 MehBook _companion-link._tcp local
+ IPv6 Bedroom _companion-link._tcp local
+ IPv6 Living Room _companion-link._tcp local
+ IPv4 MehBook _companion-link._tcp local
^C

Обе эти команды можно сочетать с --resolve , чтобы получить информацию об айпишниках и портах каждого девайса. Все устройства сети как на ладони!

И конечно, нельзя не упомянуть, что Nmap поддерживает вычисление устройств Zeroconf с помощью скрипта broadcast-dns-service-discovery.

Этот скрипт не включен в категорию default — его можно найти только в safe .

Немного об ограничениях

  • Это работает только внутри локальной сети, так что нужно иметь к ней доступ.
  • Большие корпоративные сети обычно сегментированы, поэтому потребуется опорная точка именно внутри интересующего тебя сегмента.
  • Есть много важных служб, которые не заявляют о себе через DNS-SD, — такие устройства в большинстве случаев придется вычислять как-то иначе.
  • Из-за того, что это широковещательные протоколы, нужно хорошенько подумать — позволяют ли твоя тактика и стратегия их использовать?

Эксплуатация

Окей, вычисление устройств — это прикольно и все такое, но есть ли здесь что поэксплуатировать? Мы нашли связку принтеров и Apple TV — и.

Во-первых, держи в уме, что продукты для домашней и небольшой офисной сети, использующие Zeroconf, с высокой вероятностью имеют неправильные настройки и уязвимости. Один простой пример: если принтер аутентифицируется через LDAP-сервер, а у того стоит дефолтный пароль производителя, ты можешь захватить контроль над сервером, заставить принтер к нему обратиться и таким образом украсть LDAP-аттестат принтера. Этим способом можно довольно быстро угнать доменный аккаунт!

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Кэш DNS (Domain Name System) — это специальные файлы для установления соответствия с доменными именами и снижения нагрузки на систему. Эти данные безопасно удаляются, благодаря чему освобождается дисковое пространство.

Кроме того, возможны различные проблемы в работе самих DNS-серверов. Например, из-за неправильной настройки, взлома или по причине каких-либо аппаратных проблем открывается страница «сервер не найден», «левый» или зараженный сайт. Очистка кэша DNS решает все эти проблемы.

Очистка кеша DNS в Windows 10

Чтобы изучить список записей ресурсов, находящихся в кэше DNS Windows 10, в командную строку с повышенными привилегиями (От имени Администратора) впишите команду ipconfig /displaydns. Для сброса кэша просто введите команду:

Правая клавиша на кнопке "Пуск"

И потом вписываем представленные выше команды.

Как почистить кеш DNS на Windows 10 и Mac OS

При успешной очистке должен появиться ответ: Кэш распознавателя ДНС успешно сброшен.

Альтернативные способы

Через команду netsh winsock reset или с помощью перезапуска службы клиента DNS. Перезапуск выполняется посредством консоли services.msc. Правой кнопкой мыши кликните на DNS Client, после чего нажмите на "Перезапустить".

  • Нажимаем WIN+R
  • Вписываем services.msc и жмем Enter

Как почистить кеш DNS на Windows 10 и Mac OS

Второй вариант перезапуска — из командной строки, в которую нужно вписать net stop Dnscache && net start Dnscache.

Запустив команду ipconfig /flushdns, можно увидеть ошибку «Не удалось очистить кэш распознавателя DNS: функция была прервана во время выполнения». Обычно это обусловлено тем, что в Windows 10 отключена DNS-служба. Для решения данной задачи просто перезапустите службу DNS-клиента.

Временные файлы

В Windows 10 предусмотрен системный каталог для временных файлов. В нем могут скапливаться ненужные компоненты и данные. Для их удаления нужно:

  1. открыть «Пуск», затем «Все приложения», перейти в «Средства администрирования и выбрать «Очистку диска»;
  2. указать диск с установленной Windows 10 и подождать, пока анализируется файловая система;
  3. в окне очистки снять все галочки, оставив только пункт временных файлов, и нажать OK.

Как удалить DNS-кэш в Mac OS

Вариант удаления рассмотрим на примере Mac OS Yosemite. Для полной очистки кэша в данном случае требуется удалить информацию из групповой передачи данных DNS (MDNS) и из односторонней передачи данных UDNS. В первую очередь нужно попробовать ввести команду dscacheutil. Если она не срабатывает, используйте другие варианты.

Очистка UDNS и MDNS по отдельности

Необходимо запустить Терминал, нажав Ctrl + Пробел и вписав в поле поиска слово «терминал». Для выполнения команд нужен пароль администратора. Команда sudo discoveryutil mdnsflushcache очищает кэш MDNS, а sudo discoveryutil udnsflushcaches — UDNS.

Как почистить кеш DNS на Windows 10 и Mac OS

Одновременная очистка

Для одновременной очистки групповой и односторонней систем передачи данных предусмотрена команда sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed.

Удаление DNS-кэша других версий

Опытные пользователи знают, что способ сброса кэша DNS в разных версиях Mac OS может отличаться. Перечислим команды, которыми можно пользоваться на других версиях.

  • OS X Mountain «Лион» — sudo killall -HUP mDNSResponder.
  • ОС X Mavericks — dscacheutil -flushcache; sudo killall -HUP mDNSResponder.
  • ОС X «Лион» — sudo killall -HUP mDNSResponder.
  • ОС X Snow «Леопард» — sudo dscacheutil -flushcache.
  • ОС X Tiger — lookupd -flushcache.
  • OS X Leopard — sudo dscacheutil -flushcache.

Дополнительные команды для Mac OS

Чтобы получить статистику о кэше UNDS, введите Sudo discoveryutil udnscachestats. Информация о групповом DNS открывается после ввода Sudo discoveryutil mdnscachestats. Проверка изменения значений может быть выполнена с помощью вводимой в URL-запрос команды: dig имя вашего сервера.

Читайте также: