После установки кумулятивных обновлений от 14 апреля 2026 года (CVE-2026-26151) клиент удалённого рабочего стола по-другому открывает .rdp-файлы. Перед подключением mstsc.exe показывает окно с адресом сервера, издателем файла и списком перенаправлений: диски, буфер обмена, смарт-карты, WebAuthn, принтеры, камера, микрофон, USB. Все перенаправления по умолчанию выключены, пользователь должен отметить нужные вручную.

Изменение касается только запуска по файлу. Если подключаться командой mstsc /v:rds01 или вводить адрес в окне клиента, ничего не изменится.

Причина — фишинг через RDP-файлы. В .rdp можно прописать drivestoredirect:s:*, redirectclipboard:i:1, redirectsmartcards:i:1, и при открытии файл подключит пользователя к серверу атакующего и отдаст ему локальные диски, буфер обмена и смарт-карту. Так в октябре 2024 года действовала группировка Midnight Blizzard (APT29): файлы рассылались тысячам адресатов в сотне с лишним организаций и были подписаны сертификатом Let's Encrypt.

Как выглядит предупреждение

При первом открытии RDP-файла Windows один раз показывает ознакомительное окно о рисках RDP-файлов. После подтверждения для этого пользователя оно больше не появляется.

Дальше при каждом запуске файла показывается окно безопасности. Если файл не подписан, в окне будет заголовок Caution: Unknown remote connection и издатель Unknown publisher. Если подписан, будет имя издателя из сертификата и заголовок Verify the publisher of this remote connection.

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

Проверить, есть ли новое поведение на компьютере

Обновления кумулятивные, и в сентябре Get-HotFix покажет уже не апрельский KB, а более поздний. Проще сравнить номер сборки:

$v = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
"$($v.CurrentBuild).$($v.UBR)"

Новое поведение есть, если сборка не ниже указанной:

ОС Апрельское обновление Сборка
Windows 11 24H2 / 25H2 KB5083769 26100.8246 / 26200.8246
Windows 11 23H2 KB5082052 22631.6936
Windows 10 22H2 (ESU) KB5082200 19045.7184

Подписать RDP-файл

Для подписи нужен сертификат для подписи кода. В домене его лучше выпустить во внутреннем центре сертификации. Для теста подойдёт самоподписанный:

$cert = New-SelfSignedCertificate -Type CodeSigningCert `
  -Subject "CN=RDP Publisher" -CertStoreLocation Cert:\LocalMachine\My

Самоподписанному сертификату клиенты не доверяют, его нужно разложить на компьютеры в хранилище доверенных корневых сертификатов, например через GPO. С сертификатом из доменного ЦС этого делать не нужно.

Утилите rdpsign.exe нужен отпечаток сертификата. Начиная с Windows Server 2016 используется SHA256-отпечаток (ключ /sha256), на более старых системах — SHA1 (ключ /sha1). Свойство Thumbprint в PowerShell содержит только SHA1, SHA256 нужно посчитать:

$sha256 = [BitConverter]::ToString(
  [Security.Cryptography.SHA256]::Create().ComputeHash($cert.RawData)) -replace '-'
$sha256

Сначала проверьте подпись в тестовом режиме, файл при этом не изменится:

rdpsign.exe /sha256 $sha256 /l C:\RDP\office.rdp

Если ошибок нет, подпишите файл:

rdpsign.exe /sha256 $sha256 /v C:\RDP\office.rdp

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

Если RDP-файлы раздаёт Remote Desktop Services (RD Web, RemoteApp), вручную их подписывать не нужно. Их подписывает сертификат роли RDPublishing. Назначить ему сертификат из вашего ЦС можно командлетом Set-RDCertificate с параметром -Role RDPublishing.

Убрать предупреждение для своих файлов через GPO

Чтобы подписанные вами файлы открывались без окна, добавьте отпечаток сертификата в политику. Откройте консоль gpmc.msc и перейдите в раздел:

Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Connection Client

Включите политику Specify thumbprints of certificates representing trusted .rdp publishers и укажите отпечаток сертификата.

До июльских обновлений 2026 года политика называлась Specify SHA1 thumbprints… и принимала только SHA1-отпечатки. После них в неё можно указать SHA-2, с префиксом, который описан в справке к политике. Поддержку SHA1 в этой политике Microsoft обещает убрать, поэтому новые отпечатки лучше сразу задавать в SHA-2.

Обновите политики на клиенте:

gpupdate /force

Закрытый ключ этого сертификата стоит защищать как ключи уровня 0. Файл, подписанный им, на любом компьютере с этой политикой откроется без окна и с любыми прописанными перенаправлениями, включая все диски и смарт-карту.

Запретить открывать чужие RDP-файлы

В том же разделе GPO есть ещё две политики:

  • Allow .rdp files from unknown publishers — если выключить, неподписанные .rdp-файлы открываться не будут;
  • Allow .rdp files from valid publishers and user's default .rdp settings — если выключить, будут открываться только файлы издателей из списка доверенных.

Microsoft рекомендует выключить обе политики и оставить в доверенных только свои сертификаты. Тогда пользователь сможет открыть только ваши RDP-файлы. Файлы с чужой подписью, даже настоящей, заблокируются.

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

Значения обеих политик хранятся в реестре в ключе HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services, параметры AllowUnsignedFiles и AllowSignedFiles.

Временно вернуть старое поведение

Если новое окно мешает работе, пока файлы не подписаны, его можно отключить. Выполните в командной строке с правами администратора:

REG ADD "HKLM\Software\Policies\Microsoft\Windows NT\Terminal Services\Client" /v RedirectionWarningDialogVersion /t REG_DWORD /d 1 /f

Microsoft предупреждает, что поддержку этого параметра могут убрать в следующих обновлениях, поэтому оставлять его надолго не стоит.

Для приложений, которые используют ActiveX-контрол mstscax.dll, то же поведение настраивается свойством RedirectionWarningDialogVersion интерфейса IMsRdpExtendedSettings.

Что ещё сделать

  • Заблокируйте на периметре исходящие подключения по RDP в интернет. Тогда RDP-файл, даже если его откроют, не подключится к внешнему серверу.
  • Режьте вложения .rdp на почтовом шлюзе. Получать такие файлы от внешних отправителей обычно незачем.
  • Если окно появилось при подключении к Azure Virtual Desktop или Windows 365, не подключайтесь: их файлы подписаны Microsoft, и окна там быть не должно.

Источники