tcp 3389 что это
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Удалённый рабочий стол RDP: как включить и как подключиться по RDP
Оглавление: Всё о RDP: от настройки до взлома
Это первый раздел подробных пошаговых инструкций, которые расскажут как пользоваться RDP (удалённым рабочим столом).
Из этих мануалов вы узнаете:
Что такое RDP
Удалённый рабочий стол позволяет подключиться к другому компьютеру, видеть его экран, запускать программы на нём и работать за ним так, будто бы вы сидите перед ним.
Протокол удалённого рабочего стола (Remote Desktop Protocol, RDP) — это проприетарный протокол Microsoft, который предоставляет пользователю графический интерфейс для подключения к другому компьютеру через сетевое соединение. Для этого пользователь запускает клиентское программное обеспечение RDP, а на другом компьютере должно быть запущено программное обеспечение сервера RDP.
Клиенты для подключения по RDP существуют для большинства версий Microsoft Windows (включая Windows Mobile), Linux, Unix, macOS, iOS, Android и других операционных систем. RDP-серверы встроены в операционные системы Windows; RDP-сервер для Unix и OS X также существует. По умолчанию сервер прослушивает TCP-порт 3389 и UDP-порт 3389.
В настоящее время Microsoft называет своё официальное клиентское программное обеспечение RDP «Подключение к удалённому рабочему столу» (Remote Desktop Connection), которое ранее называлось «Клиент служб терминалов» (Terminal Services Client).
Файл клиента называется mstsc.exe.
Как включить удалённый рабочий стол RDP
Клиент и сервер присутствуют по умолчанию во всех версиях Windows. Для запуска клиента не требуется дополнительная настройка.
Что касается сервера, то он может быть отключён и/или доступ к порту RDP может быть заблокирован файерволом.
Как включить удалённый рабочий стол на Windows 10 в командной строке
Нажмите Win+r и введите:
В открывшемся окне выберите «Разрешить удалённые подключения к этому компьютеру»:
При необходимости добавьте пользователей, которые могут удалённо подключиться, щёлкнув «Выбрать пользователей». Члены группы «Администраторы» получают доступ автоматически:
Чтобы правильно добавить пользователя, введите его имя:
И нажмите кнопку «Проверить имена»:
Команду SystemPropertiesRemote также можно запустить в командной строке, либо в PowerShell.
Как включить удалённый рабочий стол на Windows 10 в графическом интерфейсе
На устройстве, с которого вы собираетесь подключиться, откройте меню Пуск и щёлкните значок Параметры:
Выберите Система:
На вкладке «Удалённый рабочий стол» включите соответствующий ползунок. Также вы можете выбрать пользователей, которые могут подключаться удалённо к компьютеру.
Подтвердите выбранное действие:
Дополнительно вы можете включить настройки:
Кликнув «Дополнительные параметры» вы увидите настройки для изменения стандартного порта RDP и других свойств подключения.
Описанные выше способы также будут работать и на Windows Server 2019. В дополнении к ним есть ещё несколько способов включения RDP на Windows Server 2019.
Как включить удалённый рабочий стол на Windows Server 2019 в PowerShell
Разрешение службы удалённых рабочих столов в Windows Server 2019 быстрее сделать в PowerShell, чем в графическом интерфейсе. Для этого параметра мы будем использовать командлет Set-ItemPropery для изменения параметра флага реестра.
Запустите сеанс PowerShell от имени администратора. Для этого нажмите Win+x и выберите Windows PowerShell (администратор):
Затем выполните следующую команду:
Файервол Windows не разрешает удалённые подключения к RDP Нам нужно настроить файервол, чтобы он разрешал удалённые подключения RDP, для этого выполните команду:
Для отключения RDP запустите:
Как включить удалённый рабочий стол на Windows Server 2019 в настройках (графический интерфейс)
Если вы не дружите с терминалом, вы также можете включить службу RDP из графического интерфейса сервера. Откройте Диспетчер серверов из меню «Пуск» и нажмите на «Локальный сервер» в левой части. Найдите пункт «Удалённый рабочий стол» и кликните по слову «Отключено»:
В открывшемся окне выберите «Разрешить удалённые подключения к этому компьютеру»:
Согласитесь с изменением правила файервола:
Как настроить подключение к RDP из Интернета
RDP разрешает любые подключения, будь то из локальной сети или из Интернета. Для подключения из Интернета требуется, чтобы у вашего компьютера был белый IP.
Если же ваш Интернет-провайдер использует NAT, то вам нужно арендовать внешний (белый) IP адрес.
Если вы подключены к роутеру (они тоже всегда используют NAT), то вам нужно настроить проброску (форвардинг, переадресацию) портов следующим образом:
2. Последующие настройки нужно делать в роутере. Поскольку у всех разные модели роутеров, то конкретные действия и названия вкладок в панели администрирования роутеров могут различаться. Главное понять суть и найти соответствующую вкладку в роутере. Помните, что нужно перенаправить порты TCP и UDP с номером 3389.
Перейдите в панель управления роутером. В настройках роутера перейдите в раздел «Интернет» (может называться WAN), затем во вкладку «Переадресация портов» (может называться «Перенаправление портов», «Port Forwarding»):
3. Добавьте новое правило:
4. И нажмите кнопку «Добавить».
5. Сохраните сделанные изменения.
IP адрес компьютера Windows можно посмотреть командой:
Про переадресацию портов, о том, что это такое (на примере веб сервера), дополнительно читайте в статье «Apache Forwarding — проброска портов веб-сервера».
Ещё одним вариантом является использование VPN (виртуальной частной сети), в которой каждому компьютеру присваивается локальный адрес, но сама виртуальная частная сеть включает компьютеры которые могут быть размещены за пределами реальной частной сети. Подробности о VPN смотрите в статье «Доступ к службам компьютера через NAT и с серым IP с помощью OpenVPN».
Как подключиться к другому компьютеру и видеть его экран по RDP
Удалённый рабочий стол можно использовать для подключения к Windows 10 Pro и Windows 10 Корпоративная, Windows 8.1, Windows 8 Корпоративная и Windows 8 Pro, Windows 7 Pro, Windows 7 Корпоративная и Windows 7 Максимальная, а также для подключения к версиям выше Windows Server 2008. Подключиться к компьютерам под управлением выпуска «Домашняя» (например, Windows 10 Домашняя) нельзя.
Предварительная настройка или включение клиента RDP не требуется. Откройте командную строку (либо Win+r) и запустите:
Либо нажмите кнопку «Пуск» и начните набирать «подключение к удаленному рабочему столу»:
Для подключения можно использовать IP либо имя компьютера. Если вы не знаете, что это такое, то смотрите статью «Имя компьютера Windows: как изменить и использовать».
Введите IP либо имя компьютера, я буду использовать имя компьютера и подключусь к HackWare-MiAl:
Вводим имя пользователя и пароль учётной записи на удалённом компьютере, то есть на том, к которому мы подключаемся. Можете поставить галочку «Запомнить меня», чтобы не вводить эти учётные данные в следующий раз:
Нажимаем «Да»:
Система пишет, что в систему вошёл другой пользователь. Дело в том, что при подключении к удалённому компьютеру выполняется выход всех пользователей (в том числе того, от чьего имени мы подключаемся).
Если на удалённом компьютере выполнил вход какой-либо другой пользователь, то для него будет показано следующее сообщение:
Дело в том, что на одном компьютере Windows не могут одновременно работать несколько пользователей (имеется в виду по RDP, либо обычный вход и вход по RDP).
Теперь мы видим экран удалённого компьютера: работа с ним ничем не отличается, можно запускать программы, выполнять настройки и любые другие действия:
Обратите внимание на панель вверху в центре экрана:
С помощью этой панели можно:
На следующем скриншоте удалённый рабочий стол не в полный экран на фоне основного рабочего стола сервера, с которого выполнено подключение:
Настройки mstsc
Рассмотрим дополнительные настройки программы mstsc, которые открываются при нажатии на кнопку «Показать параметры»:
На вкладке «Общие» вы можете указать имя пользователя.
Вы можете поставить галочку «Разрешить мне сохранять учётные данные» чтобы не вводить каждый раз имя пользователя и пароль.
При желании вы можете сохранить настройки в RDP файл или выбрать сохранённый ранее файл с настройками RDP.
На вкладке «Экран» доступны настройки:
На вкладке «Локальные ресурсы» вы найдёте настройки:
Вкладка «Взаимодействие»:
В разделе «Быстродействие» вы можете выбрать тип подключения и включить или отключить второстепенные функции, чтобы при любой скорости Интернета работа с удалённым столом была комфортной.
По умолчанию качество соединения определяется автоматически и также автоматически включаются или отключаются второстепенные функции.
Вручную можно включить или отключить (функции, зависимые от качества соединения):
Также вы есть настройки:
Вкладка «Дополнительно»:
Проверка подлинности сервера: Проверка подлинности сервера удостоверяет, что подключение выполняется к правильному удалённому компьютеру. Строгость проверки, необходимая для подключения, определяется политикой безопасности
Если не удалось подтвердить подлинность удалённого компьютера, то доступны варианты:
Подключение из любого места: Настройка параметров для подключения через шлюз при удалённой работе.
Опции mstsc
Хотя mstsc является утилитой с графическим интерфейсом, вы можете запускать программу в командной строке с опциями. Далее рассмотрены эти опции.
Как изменить порт для RDP
При подключении к компьютеру (клиенту Windows или Windows Server) через клиент удалённого рабочего стола функция удалённого рабочего стола на вашем компьютере «слышит» запрос на подключение через определённый порт прослушивания (по умолчанию 3389). Вы можете изменить этот порт прослушивания на компьютерах с Windows, изменив реестр.
При следующем подключении к этому компьютеру с помощью подключения к удалённому рабочему столу необходимо ввести новый порт. Если вы используете брандмауэр, обязательно настройте брандмауэр для разрешения подключений к новому номеру порта.
RDP включён, но ошибка «соединение разорвано другой стороной»
Если RDP настроен правильно, то система может отвергать подключения с учётными данными обычного пользователя без прав администратора. Для исправления, сделайте этого пользователя администратором, либо зайдите под учётными данными пользователя, у которого уже есть права администратора.
Опасно ли держать открытым RDP в Интернете?
Нередко я читал мнение, что держать RDP (Remote Desktop Protocol) порт открытым в Интернет — это весьма небезопасно, и делать так не надо. А надо доступ к RDP давать или через VPN, или только с определённых «белых» IP адресов.
Я администрирую несколько Windows Server для небольших фирм, в которых мне поставили задачу обеспечить удалённый доступ к Windows Server для бухгалтеров. Такой вот современный тренд — работа из дома. Достаточно быстро я понял, что мучить бухгалтеров VPN — неблагодарное занятие, а собрать все IP для белого списка не получится, потому что IP адреса у народа — динамические.
Поэтому я пошёл самым простым путём — пробросил RDP порт наружу. Теперь для доступа бухгалтерам нужно запустить RDP и ввести имя хоста (включая порт), имя пользователя и пароль.
В этой статье я поделюсь опытом (положительным и не очень) и рекомендациями.
Риски
Чем вы рискуете открывая порт RDP?
2) Потеря данных
Например в результате работы вируса-шифровальщика.
Или целенаправленного действия злоумышленника.
3) Потеря рабочей станции
Работникам нужно работать, а система — скомпроментирована, нужно переустанавливать / восстанавливать / конфигурировать.
4) Компроментация локальной сети
Если злоумышленник получил доступ к Windows-компьютеру, то уже с этого компьютера он сможет иметь доступ к системам, которые недоступны извне, из Интернета. Например к файл-шарам, к сетевым принтерам и т.д.
и этот шифровальщик сначала зашифровал большинство файлов на диске C:, а затем начал шифровать файлы на NAS по сети. Так как NAS была Synology, с настроенными snapshots, то NAS я восстановил за 5 минут, а Windows Server переустанавливал с нуля.
Наблюдения и Рекомендации
Я мониторю Windows Servers с помощью Winlogbeat, которые шлют логи в ElasticSearch. В Kibana есть несколько визуализаций, а я ещё настроил себе кастомную дэшборд.
Сам мониторинг не защищает, но помогает определиться с необходимыми мерами.
Вот некоторые наблюдения:
a) RDP будут брут-форсить.
На одном из серверов я RDP повесил не на стандартный порт 3389, на 443 — ну типа замаскируюсь под HTTPS. Порт сменить со стандартного, наверное стоит, но толку от этого немного. Вот статистика с этого сервера:
Видно, что за неделю было почти 400 000 неудачных попыток зайти по RDP.
Видно, что попытки зайти были с 55 001 IP адресов (некоторые IP адреса уже были заблокированы мной).
Тут прямо напрашивается вывод о том, что нужно ставить fail2ban, но
Есть пара заброшенных проектов на Гитхабе, которые вроде бы это делают, но я даже не пробовал их ставить:
https://github.com/glasnt/wail2ban
https://github.com/EvanAnderson/ts_block
Ещё есть платные утилиты, но я их не рассматривал.
Если вы знаете открытую утилиту для этой цели — поделитесь в комментариях.
Update: В комментариях подсказали, что порт 443 — неудачный выбор, а лучше выбирать высокие порты (32000+), потому что 443 сканируется чаще, и распознать RDP на этом порту — не проблема.
Update: В комментариях подсказали, что такая утилита есть:
https://github.com/digitalruby/ipban
После запуска IPBan, количество неуспешных логинов радикально упало:
2020-02-11 00:01:18.2517|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 31.131.251.228,, RDP, 1
2020-02-11 00:01:18.2686|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 31.131.251.228, Administrator, RDP, 2
2020-02-11 00:02:49.7098|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 95.213.143.147,, RDP, 3
2020-02-11 00:02:49.7098|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 95.213.143.147, Administrator, RDP, 4
2020-02-11 00:04:20.9878|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 95.213.184.20,, RDP, 5
2020-02-11 00:04:20.9878|WARN|DigitalRuby.IPBanCore.Logger|Banning ip address: 95.213.184.20, user name:, config black listed: False, count: 5, extra info:
2020-02-11 00:04:20.9878|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 95.213.184.20, Administrator, RDP, 5
2020-02-11 00:04:21.0040|WARN|DigitalRuby.IPBanCore.Logger|IP 95.213.184.20, Administrator, RDP ban pending.
2020-02-11 00:04:21.1237|WARN|DigitalRuby.IPBanCore.Logger|Updating firewall with 1 entries…
2020-02-11 00:05:36.6525|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 31.131.251.24,, RDP, 3
2020-02-11 00:05:36.6566|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 31.131.251.24, Administrator, RDP, 4
2020-02-11 00:07:22.4729|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 82.202.249.225, Administrator, RDP, 3
2020-02-11 00:07:22.4894|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 82.202.249.225,, RDP, 4
2020-02-11 00:08:53.1731|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 45.141.86.141,, RDP, 3
2020-02-11 00:08:53.1731|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 45.141.86.141, Administrator, RDP, 4
2020-02-11 00:09:23.4981|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 68.129.202.154,, RDP, 1
2020-02-11 00:09:23.5022|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 68.129.202.154, ADMINISTRATOR, RDP, 2
2020-02-11 00:10:39.0282|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 95.213.143.147,, RDP, 5
2020-02-11 00:10:39.0336|WARN|DigitalRuby.IPBanCore.Logger|Banning ip address: 95.213.143.147, user name:, config black listed: False, count: 5, extra info:
2020-02-11 00:10:39.0336|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 95.213.143.147, Administrator, RDP, 5
2020-02-11 00:10:39.0336|WARN|DigitalRuby.IPBanCore.Logger|IP 95.213.143.147, Administrator, RDP ban pending.
2020-02-11 00:10:39.1155|WARN|DigitalRuby.IPBanCore.Logger|Updating firewall with 1 entries…
2020-02-11 00:12:09.6470|WARN|DigitalRuby.IPBanCore.Logger|Login failure: 82.202.249.225,, RDP, 5
2020-02-11 00:12:09.6470|WARN|DigitalRuby.IPBanCore.Logger|Banning ip address: 82.202.249.225, user name:, config black listed: False, count: 5, extra info:
b) Есть определённые username, которые злоумышленники предпочитают
Видно, что перебор идёт по словарю с разными именами.
Но вот что я заметил: значительное количество попыток — это использование имени сервера, как логина. Рекомендация: не используйте одинаковое имя для компьютера и для пользователя. Причём, иногда похоже имя сервера пытаются как-то распарсить: например для системы с именем DESKTOP-DFTHD7C больше всего попыток зайти с именем DFTHD7C:
Соответственно, если у вас будет компьютер DESKTOP-MARIA, то вероятно будут идти попытки заходить под пользователем MARIA.
Ещё, что я заметил из логов: на большинстве систем, большинство попыток зайти — это с именем «administrator». И это неспроста, потому что во многих версиях Windows, это пользователь существует.
https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/local-accounts#administrator-account
Administrator account
The default local Administrator account is a user account for the system administrator. Every computer has an Administrator account (SID S-1-5-domain-500, display name Administrator). The Administrator account is the first account that is created during the Windows installation.
The Administrator account has full control of the files, directories, services, and other resources on the local computer. The Administrator account can create other local users, assign user rights, and assign permissions. The Administrator account can take control of local resources at any time simply by changing the user rights and permissions.
The default Administrator account cannot be deleted or locked out, but it can be renamed or disabled.
Это упрощает задачу для злоумышленников: вместо подбора имени и пароля нужно только подобрать пароль.
Кстати та система, которая у меня словила шифровальщика имела пользователя Administrator и пароль Murmansk#9. Я до сих не уверен, как взломали ту систему, потому что мониторить я начал как раз после того случая, но думаю, что перебор — вероятен.
Так если пользователя Administrator нельзя удалить, то что же делать? Его можно переименовать!
Рекомендации из этого пункта:
Вот таким образом, я наблюдаю, как несколько Windows Server под моим контролем брут-форсятся уже где-то пару лет, и безуспешно.
Откуда я знаю, что безуспешно?
Потому что на скриншотах выше видно, что есть логи успешных заходов по RDP, в которых есть информация:
И я регулярно туда посматриваю — аномалий не обнаружено.
Кстати, если с какого-то IP брут-форсят особо усердно, то заблокировать отдельные IP (или подсети) можно вот так в PowerShell:
Кстати у Elastic, помимо Winlogbeat ещё есть Auditbeat, который может следить за файлами и процессами на системе. Ещё есть SIEM (Security Information & Event Management) приложение в Kibana. Я пробовал и то и другое, но пользы особо не увидел — похоже Auditbeat будет более полезен для Linux систем, а SIEM ничего внятного мне пока не показал.
Ну и финальные рекомендации:
Понимание протокола удаленного рабочего стола (RDP)
В этой статье описывается протокол удаленного рабочего стола (RDP), используемый для связи между терминалом Server и клиентом терминала server. RDP инкапсулируется и шифруется в TCP.
Применяется к: Windows Server 2012 R2
Исходный номер КБ: 186607
Сводка
RDP основан и является продолжением семейства стандартов протокола T-120. Многоканальный протокол, способный к выполнению, позволяет использовать отдельные виртуальные каналы для переноса следующих сведений:
RDP — это расширение основного протокола T.Share. В составе RDP сохраняются некоторые другие возможности, такие как архитектурные функции, необходимые для поддержки многопунктных (многопартийных сеансов). Доставка данных с несколькими точками позволяет доставить данные из приложения в режиме реального времени нескольким сторонам, например виртуальным доскам. Для каждого сеанса не требуется отправлять одинаковые данные по отдельности.
В этом первом выпуске Терминал Windows Server мы концентрируемся на предоставлении надежных и быстрых точеных (одно сеансов) коммуникаций. В начальном выпуске терминала Server 4.0 используется только один канал данных. Однако гибкость RDP предоставляет множество возможностей для функциональных возможностей в будущих продуктах.
Одна из причин, по которой Корпорация Майкрософт решила реализовать RDP для подключения в Windows NT Terminal Server, заключается в том, что она предоставляет добежную базу для создания еще многих возможностей. RDP предоставляет 64 000 отдельных каналов для передачи данных. Однако текущие действия по передаче используют только один канал (для данных клавиатуры, мыши и презентации).
RDP предназначен для поддержки различных типов сетевых топологий, таких как ISDN, POTS. RDP также предназначен для поддержки многих lan-протоколов, таких как IPX, NetBIOS, TCP/IP. Текущая версия RDP будет работать только через TCP/IP. С отзывами клиентов в будущих версиях может быть добавлена другая поддержка протокола.
Действия, связанные с отправкой и получением данных через пакет RDP, по сути, те же, что и семиуровневые стандарты моделей OSI для общей сети LAN сегодня. Данные из передаваемой службы или приложения передаются через стеки протоколов. Она разделяется, направляется на канал (через MCS), шифруется, завернуто, обрамлено, упаковано в сетевой протокол и, наконец, адресовано и отправлено по проводу клиенту. Возвращенные данные работают одинаково только в обратном направлении. Пакет срезается с его адреса, затем расшифровываются, расшифровываются и так далее. Наконец, данные представлены приложению для использования. Ключевые части изменений стека протокола происходят между четвертым и седьмым уровнями, в которых данные:
Один из ключевых моментов для разработчиков приложений заключается в том, что при использовании RDP Корпорация Майкрософт абстрагироваться от сложностей работы со стеком протокола. Это позволяет им писать чистые, хорошо разработанные, хорошо себя 32-битные приложения. Затем пакет RDP, реализованный терминалом Server, и его клиентские подключения заботятся об остальном.
Дополнительные сведения о взаимодействии приложений на терминале Server и о том, что следует знать при разработке приложений для инфраструктуры Терминал Windows Server, см. в следующем документе:
Оптимизация приложений для Windows NT Server 4.0, terminal Server Edition
Четыре компонента, которые стоит обсудить в экземпляре Стека RDP:
MCSmux и GCC являются частью семейства T.120 Международного союза электросвязи (МСЭ). McS состоит из двух стандартов:
Элементы управления MCSMux:
По сути, он абстрагировать несколько стеков RDP в одну сущность, с точки зрения GCC. GCC отвечает за управление этими несколькими каналами. Этот GCC позволяет создавать и удалять сеансные подключения и управляет ресурсами, предоставляемыми MCS. Каждый протокол терминала Server (в настоящее время поддерживается только ICA RDP и Citrix) будет загружен экземпляр стека протокола (стек слушателя, ожидающий запроса на подключение). Драйвер устройства Terminal Server координирует и управляет действиями протокола RDP. Он состоит из небольших компонентов:
RDP был разработан, чтобы быть полностью независимым от его центрального транспортного стека, в данном случае TCP/IP. Это означает, что мы можем добавлять другие транспортные драйверы для других сетевых протоколов по мере роста потребностей клиентов в них, практически не меняя или не внося существенных изменений в основную часть протокола. Они являются ключевыми элементами производительности и расширения RDP в сети.