Прочитайте файл .rdp, прежде чем открывать
Файл .rdp — это список настроек, которые «Подключение к удалённому рабочему столу» применяет в ту же секунду, как вы дважды щёлкнули по нему, — в том числе какие ваши диски, принтеры, смарт-карты и устройства USB может взять удалённый компьютер и какую программу он там запустит. Эта страница показывает каждую настройку файла простыми словами, по группам, и отмечает те, что отдают другой стороне что-то ваше.
Windows сохраняет такие файлы в UTF-16 с меткой порядка байт — это учтено, как и UTF-8, и старые однобайтовые кодировки. Файл читается в этой вкладке и никуда не уходит.
Откройте или вставьте файл
Ничего не загружается: в скрипте страницы нет ни fetch, ни XMLHttpRequest, ни отправки формы, счётчиков на странице нет. Сохранённый в файле пароль не показывается даже в зашифрованном виде.
Файл-пример — выдуманный и собранный так, чтобы насторожить
full address:s:203.0.113.10
username:s:
prompt for credentials:i:0
authentication level:i:0
drivestoredirect:s:*
redirectclipboard:i:1
redirectprinters:i:1
redirectcomports:i:1
redirectsmartcards:i:1
redirectwebauthn:i:1
devicestoredirect:s:*
usbdevicestoredirect:s:*
audiocapturemode:i:1
screen mode id:i:2
remoteapplicationmode:i:1
remoteapplicationname:s:Secure Storage Check
remoteapplicationprogram:s:||storagecheck
remoteapplicationcmdline:s:--user %USERNAME% --host %COMPUTERNAME%
remoteapplicationexpandcmdline:i:0
signscope:s:Full Address,Server Port,RemoteApplicationMode,RemoteApplicationName,RemoteApplicationProgram
signature:s:AQABAAEAAADKCgAAMIIKxgYJKoZIhvcNAQcCoIIKtzCCCrMCAQExDzANBglghkgBZQMEAgEFADAL
Что делает этот файл
Находки
Все настройки по группам
Почему файл .rdp стоит прочитать
В октябре 2024 года Microsoft описала фишинговую рассылку файлов .rdp, подписанных сертификатом Let’s Encrypt. Открытый файл подключался к серверу отправителей и пробрасывал в этот сеанс диски, буфер обмена, принтеры, подключённые устройства, звук и смарт-карты получателя (Microsoft Security Blog, 29 октября 2024). Ни одна строка такого файла не эксплойт. Каждая — обычная настройка, поэтому защита и состоит в том, чтобы их прочитать.
Настройку, которой в файле нет, решает клиент — собственные флажки «Подключения к удалённому рабочему столу», — так что короткий и безобидный на вид файл всё равно может открыть ваш буфер обмена. Страница называет важные для безопасности настройки, которых в файле нет.
Что значат предупреждения
- Риск — остановиться и разобраться до открытия: открыты все диски или те, что подключат позже, пробрасываются устройства USB,
authentication level:i:0, выключена проверка на уровне сети, шлюз входит под вашей учётной записью Windows без вопроса. - Проверить — нормально, когда вы этого ждёте, и странно, когда нет: общий буфер обмена, смарт-карты, принтеры, последовательные порты, камеры, микрофон, местоположение и запросы ключей доступа; программа вместо рабочего стола и её аргументы; шлюз и то, куда уходит вход на него; сохранённый пароль; настройки вне подписи; настройка, заданная дважды. Каждая копия повторённой настройки проверяется отдельно, так что безобидная строка ниже по файлу не спрячет опасную.
- Заметка — к сведению: файл подписан, в нём нет адреса, строка не является настройкой.
Названия и значения — по списку поддерживаемых свойств RDP от Microsoft и по её более старому описанию RemoteDesktopClientSettings. Всё остальное показано как есть, в группе «Не распознано».
О подписанных файлах
signscope перечисляет настройки, которые покрывает подпись; signature — сама подпись. Эта страница подпись не проверяет и подписанта не показывает. Это намеренно: настоящий сертификат можно вставить в файл без ключа к нему, и имя из непроверенной подписи хуже, чем никакого. Windows проверяет подпись при открытии файла и называет издателя в предупреждении — читайте это имя.
А вот что страница показывает — какие настройки лежат вне signscope. О них подпись не говорит ничего.
Вопросы, которые задают на самом деле
Файл куда-нибудь загружается?
Нет. Он читается в этой вкладке: в скрипте страницы нет ни fetch, ни XMLHttpRequest, ни отправки формы, счётчиков на странице нет. Сохранённый в файле пароль (password 51) даже не показывается — только его длина.
Безопасно ли открывать присланный файл .rdp?
Только если вы знаете, кто его прислал, и настройки совпадают с ожидаемыми. Файл .rdp может отдать ваши диски, буфер обмена, смарт-карты и устройства компьютеру, который в нём назван, и запустить там программу, окно которой выглядит как ваше. Сначала прочитайте его здесь; если он открывает больше, чем нужно для дела, или называет незнакомый сервер, — не открывайте.
Что значит drivestoredirect:s:*?
Все локальные диски, включая подключённые во время сеанса, доступны удалённому компьютеру на чтение и запись. drivestoredirect:s: без продолжения не открывает ни одного; список вида C:\;E:\ открывает эти диски; DynamicDrives — те, что вы подключите позже.
Если подпись верна, файл безопасен?
Нет. Подпись говорит, кто выпустил файл, если Windows может её проверить, — но не то, что настройки безобидны. Файлы из октябрьского отчёта Microsoft 2024 года были подписаны.
Что такое authentication level:i:0?
Это указание подключаться без предупреждения, даже если сервер не может доказать, кто он. 2 — предупредить и дать решить, 1 — отказаться, 3 — требование не задано. Файлу извне вашей организации незачем нести 0.
Как прочитать файл .rdp как текст?
Это обычный текст, который Windows сохраняет в UTF-16. Перетащите его на эту страницу или откройте в любом редакторе, понимающем UTF-16, — «Блокнот» в Windows понимает. Каждая строка — имя:тип:значение, где тип i — число, s — строка, b — двоичные данные.
Откуда это взялось
Conchshell подключается к машинам с Windows по RDP и файлы .rdp не читает: подключение настраивается в его собственном окне. Из всего, что файл .rdp может пробросить, он пробрасывает только буфер обмена — диски, принтеры, смарт-карты, последовательные порты, устройства USB и звук не передаются вовсе. Подключается он только с проверкой на уровне сети и закрепляет ключ сертификата сервера при первом подключении, сначала спросив вас, если только система уже не доверяет этому сертификату для введённого имени (на Android есть только закрепление). Сменившийся сертификат не используется, пока вы не подтвердите замену в системном окне, — кроме случая, когда система ручается и за старый сертификат, и за новый. Закрыть это окно, не нажав кнопку, — значит отказать, на любой системе; в версии 2.16.0 и раньше закрытие окна в Windows и Linux и кнопка «Назад» на Android считались согласием, это исправлено в 2.17.0.
Чего он не умеет: шлюза удалённых рабочих столов и режима RemoteApp у него нет, а к узлу с выключенной проверкой на уровне сети он не подключится. Если ваш файл идёт через шлюз, для этого подключения оставайтесь на клиенте Microsoft.
Что почитать дальше
- Отпечатки SSH-ключей — SHA256 и MD5, known_hosts и хэшированные хосты
- Проверка ~/.ssh/config — шифры, MAC и проверка ключа хоста
- Все инструменты сайта
- Conchshell для Windows
- Как устроено хранилище учётных данных