Rdp: слабые места протокола и эксперимент с развертыванием ханипота

Проверка состояния протокола RDP

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

Сведения о том, как проверить и изменить состояние протокола RDP на локальном компьютере, см. в разделе (Как включить удаленный рабочий стол).

Примечание

Если параметры удаленного рабочего стола недоступны, см. раздел .

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

Важно!

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

Чтобы проверить и изменить состояние протокола удаленного рабочего стола на удаленном компьютере, используйте подключение сетевого реестра:

  1. Сначала откройте меню Пуск и выберите Выполнить. В появившемся текстовом поле введите regedt32.
  2. В редакторе реестра нажмите Файл и выберите пункт Подключить сетевой реестр.
  3. В диалоговом окне Выбор: «Компьютер» введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.
  4. Перейдите к записи HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server.
    • Если раздел fDenyTSConnections имеет значение , значит протокол RDP включен.
    • Если раздел fDenyTSConnections имеет значение 1, значит протокол RDP отключен.
  5. Чтобы включить протокол RDP, для fDenyTSConnections замените значение 1 на .

Проверка блокировки объектом групповой политики протокола RDP на локальном компьютере

Если не удается включить протокол RDP в пользовательском интерфейсе или для fDenyTSConnections возвращается значение 1 после его изменения, объект групповой политики может переопределять параметры на уровне компьютера.

Чтобы проверить конфигурацию групповой политики на локальном компьютере, откройте окно командной строки с правами администратора и введите следующую команду:

Когда команда будет выполнена, откройте файл gpresult.html. Выберите Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения и найдите политику Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.

  • Если для параметра этой политики задано значение Включено, групповая политика не блокирует подключения по протоколу RDP.

  • Если же для параметра этой политики задано значение Отключено, проверьте результирующий объект групповой политики. Ниже показано, какой объект групповой политики блокирует подключения по протоколу RDP.

Проверка блокировки объектом групповой политики протокола RDP на удаленном компьютере

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

В файле (gpresult-<computer name>.html), который создается после выполнения этой команды, используется такой же формат данных, как в версии файла для локального компьютера (gpresult.html).

Изменение блокирующего объекта групповой политики

Эти параметры можно изменить в редакторе объектов групповой политики (GPE) и консоли управления групповыми политиками (GPM). Дополнительные сведения об использовании групповой политики см. в статье Advanced Group Policy Management (Расширенное управление групповыми политиками).

Чтобы изменить блокирующую политику, используйте один из следующих методов.

  • В GPE укажите определенный уровень для объекта групповой политики (локальный или доменный) и выберите Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы удаленных рабочих столов > Узел сеансов удаленных рабочих столов > Подключения > Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.
    1. Задайте для политики значение Включена или Не задана.
    2. На затронутых компьютерах откройте окно командной строки с правами администратора и выполните команду gpupdate /force.
  • В GPM перейдите к подразделению, в котором блокирующая политика применяется к соответствующим компьютерам, и удалите эту политику.

Изменить порт rdp

Для того, чтобы изменить порт rdp, вам потребуется:

  1. Открываем редактор реестра (Пуск -> Выполнить -> regedit.exe)
  2. Переходим к следующему разделу:

Находим ключ PortNumber и меняем его значение на номер порта, который Вам нужен.

Выберите обязательно десятичное значение, я для примера поставлю порт 12345.

Как только вы это сделали, то перезапустите службу удаленных рабочих столов, через командную строку, вот такими командами:

Далее не забудьте в брандмауэре Windows после изменения порта RDP открыть его, для этого жмем WIN+R и в окне выполнить пишем firewall.cpl.

Далее переходим в пункт Дополнительные параметры

И создаем новое входящее правило для нового rdp порта. Напоминаю, что порт rdp по умолчанию 3389.

Выбираем, что правило будет для порта

Протокол оставляем TCP и указываем новый номер RDP порта.

Правило у нас будет разрешающее RDP соединение по не стандартному порту

При необходимости задаем нужные сетевые профили.

Ну и назовем правило, понятным для себя языком.

Для подключения с клиентских компьютеров Windows адрес пишите с указанием порта. Например, если порт Вы изменили на 12345, а адрес сервера (или просто компьютера, к которому подключаетесь): myserver, то подключение по MSTSC будет выглядеть так: mstsc -v:myserver:12345

или через командную строку.

Как видите изменить порт rdp совсем не трудная задача, все тоже самое можно проделать средствами групповой политики.

Замена старого значения порта новым

Для того, чтобы прописать другое значение необходимо сделать следующее (актуально для любой версии Виндовс, в том числе Windows Server 2008):

открываете «Пуск». В поисковой строке внизу прописываете «regedit.exe»;

откроется окошко, где нужно найти корневую директорию: HKEY_LOCAL_MACHINE. Открываете ее и ищете папку System, затем переходите по следующему пути: CurrentControlSet, открываете Control, затем — Terrminal Server и последней будет папка WinStations. Теперь кликаете по папке RDP-Tcp;

найдите пункт «PortNumber». В правой колонке увидите шестнадцатиричное значение 00000D3D, которое соответствует стандартному RDP порту 3389;

  • замените его на тот порт, который следует установить. Не забудьте пометить, что необходимо использовать десятичные числа, выделив необходимый пункт;
  • сохраняете проделанные шаги и перезагружаете устройство;
  • открываете Пуск, заходите в панель управления;
  • находите пункт «БрандмауэрWindows» и в нем «Дополнительные параметры»;

Change the default port of RDP

If you are opening RDP over the Internet, keeping the RDP port to 3389 is a security threat. It is recommended that you change the default port from 3389 to something above 10000. I, normally, keep it between 30000 and 40000 which is relatively safe as the port scanners will start scanning from port 1.

If you want to change the RDP port, follow the steps below:

  1. Go to Run –> regedit to open the Registry Editor.
  2. Locate the following key:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\
  3. In the right-hand pane, double-click on PortNumber
  4. Change the value to Decimal and specify the port number between 1001 to 254535.

Что такое RDP протокол

Прежде чем, что то изменять, хорошо бы понимать, что это и как это работает, я вам об этом не перестаю повторять. RDP или Remote Desktop Protocol это протокол удалённого рабочего стола в операционных системах Microsoft Windows, хотя его происхождение идет от компании PictureTel (Polycom). Microsoft просто его купила. Используется для удаленной работы сотрудника или пользователя с удаленным сервером. Чаще всего такие сервера несут роль сервер терминалов, на котором выделены специальные лицензии, либо на пользователе, либо на устройства, CAL. Тут задумка была такой, есть очень мощный сервер, то почему бы не использовать его ресурсы совместно, например под приложение 1С. Особенно это становится актуальным с появлением тонких клиентов.

Сам сервер терминалов мир увидел, аж в 1998 году в операционной системе Windows NT 4.0 Terminal Server, я если честно тогда и не знал, что такое есть, да и в России мы в то время все играли в денди или сегу. Клиенты RDP соединения, на текущий момент есть во всех версиях Windows, Linux, MacOS, Android. Самая современная версия RDP протокола на текущий момент 8.1.

Как настроить

Подключение происходит в несколько этапов:

Прежде всего надо убедиться, что ваша Windows 10 как минимум Pro-версии, так как компоненты и сервис для RDP-сервера, которые делают возможным удаленное подключение заблокированы.

В разделе параметров Windows выбираем учетные записи — варианты входа — пароль — изменить.

Первое, что входит в корректировку настроек Windows, — включение доступа и добавление пользователей. Чтобы сделать Интернет-соединение с использованием RDP, откройте Пуск и нажмите на шестеренку «Параметры».

Открываем раздел с настройкой системы.

Чтобы найти пункт «Настройка удаленного доступа», необходимо зайти в «Просмотр основных сведений о вашем компьютере».

Если в системе имеется автоматический «спящий режим», то будет показано предупреждение.

Решается данная проблема в схемах настройках схем электропитания.

В пункте «Переводить компьютер в спящий режим режим» выбираем: «Никогда», если вы хотите, чтобы удаленный ПК был постоянно доступен.

Альтернативный способ — активация схемы повышенной или максимальной производительности, тогда компьютер не будет отключаться. Но этой схемы

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

При желании можно провести настройку для нескольких пользователей, нажав кнопку «Выбрать пользователей».

По умолчанию доступ дается администраторам, но можно добавить другого пользователя (к примеру, специально созданного для этих задач).

Вписываем его имя в системе.

Если у вас возникли проблемы с вписыванием имени другого пользователя, но вы предполагаете, что его данные имеются на вашем компьютере, то нажмите «дополнительно».

Затем в «Типы объектов» выберите «Пользователи» и нажмите поиск.

Вы получите небольшой список.

Пользователь появится в списке допуска к удаленному рабочему столу (RDP).

В зависимости от сборки ОС, порядок действий может несколько отличаться. Например, официальное руководство предлагает перейти к параметрам рабочего стола непосредственно в подразделе «Система» или же открыть в браузере адрес «ms-settings:remotedesktop», вводить нужно без кавычек.

Для чего используется порт 3389?

По умолчанию практически во всех модификациях Windows используемые и неиспользуемые для исходящих или входящих подключений порты активируются или блокируются непосредственно системой. Поэтому маловероятно, что в стандартных настройках порт 3389 закрыт.

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

Смена порта RDP

Итак, по соображениям безопасности Вы собрались поменять порт RDP, чтобы значительно снизить риск взлома системы при брутфорсе — автоматизированном подборе паролей. Смена порта RDP на другое значение подразумевает несколько обязательных действий, без которых это не будет работать!

Обратите вниммание! Необходимо в используемом Вашей операционной системой брандмауэре открыть новый порт. В противном случае, после смены Вы потеряете управление рабочей станцией или сервером. Как это сделать Вы узнаете здесь — инструкция как открыть порт в брандмауэре Windows. Перепечатывать её сюда я не вижу смысла.

Проверка порта прослушивателя протокола RDP

На локальном компьютере (клиентском) и удаленном компьютере (целевом) прослушиватель протокола RDP должен ожидать передачи данных через порт 3389. Другие приложения не должны использовать этот порт.

Важно!

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

Чтобы проверить или изменить порт протокола RDP, используйте редактор реестра:

Откройте меню Пуск, выберите Выполнить и введите regedt32 в появившемся текстовом поле.
Чтобы подключиться к удаленному компьютеру, в редакторе реестра щелкните Файл и выберите пункт Подключить сетевой реестр.
В диалоговом окне Выбор: «Компьютер» введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.

Откройте реестр и перейдите к записи HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\ .

Если PortNumber имеет значение, отличное от 3389, укажите значение 3389.

Важно!
Для управления службами удаленного рабочего стола можно использовать другой порт. Но мы не рекомендуем делать это

В этой статье не описано, как устранять проблемы, связанные с этим типом конфигурации.

Изменив номер порта, перезапустите службу удаленных рабочих столов.

Проверка того, что другое приложение не пытается использовать тот же порт

Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.

  1. Откройте окно PowerShell. Чтобы подключиться к удаленному компьютеру, введите Enter-PSSession -ComputerName <computer name> .

  2. Введите следующую команду:

  3. Найдите запись для TCP-порта 3389 (или назначенного RDP-порта) с состоянием Ожидает вызова.

    Примечание

    Идентификатор процесса службы или процесса, использующих этот порт, отобразится в столбце «Идентификатор процесса».

  4. Чтобы определить, какое приложение использует порт 3389 (или назначенный порт протокола RDP), введите следующую команду:

  5. Найдите запись для номера процесса, связанного с портом (в выходных данных netstat). Службы или процессы, связанные с этим идентификатором процесса, отобразятся в столбце справа.

  6. Если порт используется приложением или службой, отличающейся от служб удаленных рабочих столов (TermServ.exe), устранить конфликт можно с помощью одного из следующих методов:

    • В настройках такого приложения или службы укажите другой порт (рекомендуется).
    • Удалите другое приложение или службу.
    • В настройках протокола RDP укажите другой порт, а затем перезапустите службы удаленных рабочих столов (не рекомендуется).

Проверка блокировки порта протокола RDP брандмауэром

С помощью средства psping проверьте, доступен ли затронутый компьютер через порт 3389.

  1. Перейдите на другой компьютер, на котором такая проблема не возникает, и скачайте psping отсюда: https://live.sysinternals.com/psping.exe.

  2. Откройте окно командной строки с правами администратора, перейдите в каталог, где установлено средство psping, и введите следующую команду:

  3. Проверьте выходные данные команды psping на наличие таких результатов:

    • Подключение к <computer IP>: удаленный компьютер доступен.
    • (0% loss) (0 % потерь): все попытки подключения выполнены успешно.
    • The remote computer refused the network connection (Удаленный компьютер отклонил сетевое подключение): удаленный компьютер недоступен.
    • (100% loss) (100 % потерь): не удалось выполнить подключение.
  4. Запустите psping на нескольких компьютерах, чтобы проверить возможность подключения к затронутому компьютеру.

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

  6. Рекомендуемые дальнейшие действия:

    • Попросите сетевых администраторов проверить, пропускает ли сеть трафик RDP к затронутому компьютеру.
    • Проверьте конфигурации всех брандмауэров между исходными компьютерами и затронутым компьютером (включая брандмауэр Windows на затронутом компьютере). Так вы определите, блокирует ли брандмауэр порт протокола RDP.

Проброс порта на маршрутизаторе

В некоторых случаях вышеописанных действий бывает недостаточно, поскольку для конкретных компьютерных терминалов, подключенных к маршрутизатору или находящихся в одной беспроводной сети один и тот же порт использоваться не может. Как открыть порт 3389 в такой ситуации? Для этого используется методика, называемая пробросом портов (от английского Port forwarding).

Через любой установленный веб-браузер войдите в настройки роутера, прописав в адресной строке значение, указанное на шильде, расположенном на обратной стороне устройства (обычно это 192.168.0.1 или с окончанием на 1.1), введите логин и пароль (обычно для обоих полей используется Admin), затем перейдите к разделу переадресации, в котором автоматически откроется вкладка виртуальных серверов, добавьте новое правило путем нажатия соответствующей кнопки, введите номер порта сервиса (или диапазон номеров) и внутренний порт (3389), укажите тип протокола и выберите все типы, если точно не знаете, что именно следует использовать. Из выпадающего списка выберите нужный сервис, хотя это и необязательно), после чего выставьте состояние порта на включенное

Сразу же обратите внимание, что в качестве IP-вводится статический адрес, который в обязательном порядке должен быть прописан в настройках протокола IPv4. В случае с динамическими адресами можно воспользоваться диапазоном адресов, найти который можно в разделе активации DHCP-сервера

Если подключение по каким-либо причинам все равно останется неактивным, пропишите аналогичные параметры в разделе Port Triggering (например, при использовании маршрутизаторов TP-Link), а затем сохраните изменения и выполните перезагрузку роутера.

Замена с помощью утилиты PowerShell

PowerShell также позволяет внести необходимые изменения:

  • запустите PowerShell от администратора;
  • введите директиву: Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Terminal*Server\WinStations\RDP-TCP\ -Name PortNumber –Value 12345. Последние цифры являются портом на который меняете старый;
  • рекомендуется сделать перезагрузку;
  • после того, как устройство включится, введите команду «regedit» в меню «Пуск». Пройдите в директорию: HKEY_LOCAL_MACHINE, найдите папку CurrentControlSet, затем папку Control, перейдите в Terminal Server и откройте WinStations. Кликните по файлу RDP-Tcp. Тут должно быть установлено новое значение.
  • Теперь нужно открыть порт RDP на сетевом экране. Входите в Powershell, вбиваете команду: netsh advfirewall firewall add rule name=»NewRDP» dir=in action=allow protocol=TCP localport=49089. Цифры должны означать тот порт, на который перебили старый.

Принцип работы протокола rdp

И так мы с вами поняли для чего придумали Remote Desktop Protocol, теперь логично, что нужно понять принципы его работы. Компания Майкрософт выделяет два режима протокола RDP:

  • Remote administration mode > для администрирования, вы попадаете на удаленный сервер и настраиваете и администрируете его
  • Terminal Server mode > для доступа к серверу приложений, Remote App или совместное использование его для работы.

Вообще если вы без сервера терминалов устанавливаете Windows Server 2008 R2 — 2021, то там по умолчанию у него будет две лицензии, и к нему одновременно смогут подключиться два пользователя, третьему придется для работы кого то выкидывать. В клиентских версиях Windows, лицензий всего одна, но и это можно обойти, я об этом рассказывал в статье сервер терминалов на windows 7. Так же Remote administration mode, можно кластеризировать и сбалансировать нагрузку, благодаря технологии NLB и сервера сервера подключений Session Directory Service. Он используется для индексации пользовательских сессий, благодаря именно этому серверу у пользователя получиться войти на удаленный рабочий стол терминальных серверов в распределенной среде. Так же обязательными компонентами идут сервер лицензирования.

RDP протокол работает по TCP соединению и является прикладным протоколом. Когда клиент устанавливает соединение с сервером, на транспортном уровне создается RDP сессия, где идет согласование методов шифрования и передачи данных. Когда все согласования определены и инициализация окончена, сервер терминалов, передает клиенту графический вывод и ожидает входные данные от клавиатуры и мыши.

Remote Desktop Protocol поддерживает несколько виртуальных каналов в рамках одного соединения, благодаря этому можно использовать дополнительный функционал

  • Передать на сервер свой принтер или COM порт
  • Перенаправить на сервер свои локальные диски
  • Буфер обмена
  • Аудио и видео

Этапы RDP соединения

  • Установка соединения
  • Согласование параметров шифрования
  • Аутентификация серверов
  • Согласование параметров RDP сессии
  • Аутентификация клиента
  • Данные RDP сессии
  • Разрыв RDP сессии

Безопасность в RDP протоколе

Remote Desktop Protocol имеет два метода аутентификации Standard RDP Security и Enhanced RDP Security, ниже рассмотрим оба более подробно.

Standard RDP Security

RDP протокол при данном методе аутентификации, шифрует подключение средствами самого RDP протокола, которые есть в нем, вот таким методом:

  • Когда ваша операционная система запускается, то идет генерация пары RSA ключиков
  • Идет создание сертификата открытого ключа Proprietary Certificate
  • После чего Proprietary Certificate подписывается RSA ключом созданным ранее
  • Теперь RDP клиент подключившись к терминальному серверу получит Proprietary Certificate
  • Клиент его смотрит и сверяет, далее получает открытый ключ сервера, который используется на этапе согласования параметров шифрования.

Если рассмотреть алгоритм с помощью которого все шифруется, то это потоковый шифр RC4. Ключи разной длины от 40 до 168 бит, все зависит от редакции операционной системы Windows, например в Windows 2008 Server – 168 бит. Как только сервер и клиент определились с длиной ключа, генерируются два новых различных ключа, для шифрования данных.

Если вы спросите про целостность данных, то тут она достигается за счет алгоритма MAC (Message Authentication Code) базируемого на SHA1 и MD5

Enhanced RDP Security

RDP протокол при данном методе аутентификации использует два внешних модуля безопасности:

  • CredSSP
  • TLS 1.0

TLS поддерживается с 6 версии RDP. Когда вы используете TLS, то сертификат шифрования можно создать средствами терминального сервера, самоподписный сертификат или выбрать из хранилища.

Когда вы задействуете CredSSP протокол, то это симбиоз технологий Kerberos, NTLM и TLS. При данном протоколе сама проверка, при которой проверяется разрешение на вход на терминальный сервер осуществляется заранее, а не после полноценного RDP подключения, и тем самым вы экономите ресурсы терминального сервера, плюс тут более надежное шифрование и можно делать однократный вход в систему (Single Sign On), благодаря NTLM и Kerberos. CredSSP идет только в ОС не ниже Vista и Windows Server 2008. Вот эта галка в свойствах системы

разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети.

Изменение порта RDP с помощью реестра Windows

Реестр Windows – это база данных параметров конфигурации для служб Windows, установленных приложений и т. Д. Если вы хотите изменить порт RDP по умолчанию с 3389 на настраиваемый порт, самый простой способ – внести изменения в реестр.

Однако перед тем как начать, настоятельно рекомендуется вручную создать резервную копию реестра. Если вы ошиблись, это позволит вам быстро отменить любые изменения.

Для начала откройте редактор реестра Windows, щелкнув правой кнопкой мыши меню «Пуск» и выбрав значок Бежать вариант. Не забудьте сделать это на ПК или сервере, к которому вы хотите подключиться, а не на ПК, с которого вы подключаетесь.

в Бежать диалоговое окно, введите regedit, затем нажмите Хорошо запускать.

Откроется редактор реестра Windows. Используя левое меню, перейдите по дереву реестра к HKEY_LOCAL_MACHINE System CurrentControlSet Control Terminal Server WinStations RDP-Tcp папка.

в RDP-Tcp папку, дважды щелкните Номер порта запись справа.

в Изменить значение DWORD (32-битное) поле выберите Десятичный вариант. Введите новый номер порта, который вы хотите использовать, между 1 и 65353, в Данные значения коробка.

Вам нужно убедиться, что это не соответствует ни одному другие общие порты. Если вы выберете общий порт (например, порт 80 для веб-трафика), возможно, вы не сможете впоследствии установить подключение к удаленному рабочему столу.

Нажмите Хорошо чтобы сохранить и перезагрузить компьютер или сервер, когда вы закончите. На этом этапе любые попытки использовать удаленный рабочий стол потребуют от вас использования выбранного вами настраиваемого порта, а не стандартного порта 3389.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector