Windows 10 rdp hack

Удаленные пользователи могут подключаться к своим компьютерам Windows 10 или 11 через службу удаленных рабочих столов (RDP). Достаточно включить удаленный рабочий стол (Remote Desktop), разрешить RDP доступ для пользователя и подключиться к компьютеру с помощью любого клиента удаленного рабочего стола. Однако в десктопных версия Windows есть ограничение на количество одновременных RDP сессии. Разрешается только один активный Remote Desktop сеанс пользователя.

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

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

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

В английской версии предупреждение такое:

Another user is signed in. If you continue, they’ll be disconnected. Do you want to sign in anyway?

Содержание:

  • Ограничения на количество RDP сессий в Windows
  • RDP Wrapper: разрешить несколько RDP сеансов в Windows
  • Не работает RDP Wrapper в Windows
  • Модификация файла termsrv.dll для снятия ограничений RDP в Windows 10 и 11
  • Встроенная поддержка нескольких RDP сессий в редакции Windows 10 Enterprise Multi-session

Ограничения на количество RDP сессий в Windows

Во всех десктопных версиях Windows 10 и 11 есть ряд ограничений на использование служб удаленного рабочего стола

  1. Разрешено удаленно подключаться по RDP только к редакциям Windows Professional и Enterprise. В домашних редакциях (Home/Single Language) RDP доступ запрещен;
  2. Поддерживается только одно одновременное RDP подключение. При попытке запустить вторую RDP-сессию, пользователю будет предложено завершить активный сеанс;
  3. Если пользователь работает за консолью компьютера (локально), то при удаленном подключении по RDP, его локальный сеанс будет отключен (заблокирован). Также завершается и удаленный RDP сеанс, если пользователь входит в Windows через консоль компьютера.

Ограничение на количество одновременных RDP подключений в Windows является не техническим, но программным и лицензионным. Таким образом Microsoft запрещает создавать терминальный RDP сервер на базе рабочей станции для одновременной работы нескольких пользователей.

Если ваши задачи требуют развертывание терминального сервера, Microsoft предлагает пробрести Windows Server (по умолчанию разрешает 2 активных RDP подключения). Если вам нужно большее количество одновременных сессий пользователей, нужно приобрести лицензии RDS CAL, установить и настроить роль Remote Desktop Session Host (RDSH) или полноценную RDS ферму.

Технически любая редакция Windows при наличии достаточного ресурсов оперативной памяти и CPU может обслуживать одновременную работу нескольких десятков удаленных пользователей. В среднем на одну RDP сессию пользователя требуется 150-200 Мб памяти (без учета запускаемых приложений). Т.е. максимальное количество одновременных RDP сессий в теории ограничивается только ресурсами компьютера.

В этой статье мы покажем три способа убрать ограничение на количество одновременных RDP подключений в Windows 10 и 11:

  • Использование RDP Wrapper
  • Модификации системного файла termsrv.dll
  • Апгрейд до редакции Windows 10/11 Enterprise for virtual desktops (multi-session)

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

Прежде, чем продолжить, проверьте что в настройках Windows включен протокол Remote Desktop.

  • Откройте панель Settings -> System —> Remote Desktop -> включите опцию Enable Remote Desktop;
    settings - включить rdp в windows

  • Либо воспользуйтесь классической панель управления: выполните команду SystemPropertiesRemote -> Перейдите на вкладку Remote Settings (Удаленный доступ), включите опцию Allow remote connection to this computer (Разрешить удалённые подключения к этому компьютеру).

RDP Wrapper: разрешить несколько RDP сеансов в Windows

Open-source утилита RDP Wrapper Library позволяет разрешить конкурентные RDP сессии в Windows 10/11 без замены системного файла termsrv.dll.

RDP Wrapper работает в качестве прослойки между менеджером управления службами Service Control Manager, SCM) и службой терминалов (Remote Desktop Services). RDP Wrapper не вносит никаких изменений в файл termsrv.dll, просто загружая termsrv с изменёнными параметрами.

Важно. Перед установкой RDP Wrapper важно убедится, чтобы у вас использовалась оригинальная (непропатченная) версия файл termsrv.dll. Иначе RDP Wrapper может работать не стабильно, или вообще не запускаться.

Вы можете скачать RDP Wrapper из репозитория GitHub: https://github.com/binarymaster/rdpwrap/releases (последняя доступная версия RDP Wrapper Library v1.6.2). Утилита не обновляется с 2017 года, но ее можно использовать на всех билдах Windows 10 и 11. Для работы утилиты в современных версиях Windows достаточно обновить конфигурационный файл rdpwrap.ini.

Большинство антивирусов определяют RDP Wrapper как потенциально опасную программу. Например, встроенный Microsoft Defender антивирус классифицирует программу как PUA:Win32/RDPWrap (Potentially Unwanted Software) с низким уровнем угрозы. Если настройки вашего антивируса блокируют запуск RDP Wrapper, нужно добавить его в исключения.

Антвирус определеяет RDPwrapper как PUA-Win32-RDPWrap

Архив RDPWrap-v1.6.2.zip содержит несколько файлов:

  • RDPWinst.exe —программа установки/удаления RDP Wrapper Library;
  • RDPConf.exe — утилита настройки RDP Wrapper;
  • RDPCheck.exe — Local RDP Checker — утилита для проверки RDP доступа;
  • install.bat, uninstall.bat, update.bat — пакетные файлы для установки, удаления и обновления RDP Wrapper.

Архив RDPWrap-v1.6.2.zip

Чтобы установить RDPWrap, запустите файл
install.bat
с правами администратора.

Установка rdpwrapper в windows 10

После окончания установки запустите RDPConfig.exe.

rdp-wrapper: красная надпись не поддерживается [not supported]

Скорее всего сразу после установки утилита покажет, что RDP wrapper запущен (Installed, Running, Listening), но не работает. Обратите внимание на красную надпись. Она сообщает, что данная версий Windows 10 (ver. 10.0.19041.1949) не поддерживается ([not supported]).

Причина в том, что в конфигурационном файле rdpwrap.ini отсутствует секция с настройками для вашего версии (билда) Windows. Актуальную версию файла rdpwrap.ini можно скачать здесь https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini

Вручную скопируйте содержимое данной страницы в файл «C:\Program Files\RDP Wrapper\rdpwrap.ini». Или скачайте файл с помощью PowerShell командлета Invoke-WebRequest (предварительно нужно остановить службу Remote Desktop):

Stop-Service termservice -Force
Invoke-WebRequest https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini -outfile "C:\Program Files\RDP Wrapper\rdpwrap.ini"

обновить файл rdpwrap.ini вручную

alert] Можно создать задание планировщика для проверки изменений в файле rdpwrap.ini и его автоматического обновления [/alert]

На данном скриншоте видно, что на компьютере установлена свежая версия файла rdpwrap.ini (Updated=2023-06-26).

Перезагрузите компьютер, запустите утилиту RDPConfig.exe. Проверьте, что в секции Diagnostics все элементы окрашены в зеленый цвет, и появилось сообщение [Fully supported]. На скриншоте ниже показано, что RDP Wrapper с данным конфигом успешно запущен в Windows 11 22H2.

запуск rdpwrapper в windows 11

Теперь попробуйте установить несколько одновременных RDP сессий с этим компьютером под разными пользователями (воспользуйтесь любым RDP клиентом: mstsc.exe, RDCMan, mRemoteNG и т.д.).

Можете проверить что на компьютере активны одновременно две RDP сессии (или более) с помощью команды:

qwinsta

rdp-tcp#0         user1                 1  Active
rdp-tcp#1         user2                 2  Active

qwnista: вывести активные rdp сессии в windows

Поддержка нескольких RDP сесиий в Windows 10

Утилита RDPWrap поддерживается во версиях Windows (включая домашние редакции Windows Home), таким образом из любой клиентской версии Windows можно сделать полноценный сервер терминалов.

В интерфейсе RDP Wrapper доступны следующие опции:

  • Enable Remote Desktop — включить/отключить Remote Desktop в Windows доступ
  • RDP Port — можно изменить стандартный номера порта удаленного рабочего стола TCP 3389
  • Опция Hide users on logon screen позволяет скрыть список пользователей на экране приветствия;
  • Single session per user —разрешить несколько одновременных RDP сессий под одной учетной записью пользователя. Эта опция устанавливает параметр реестра fSingleSessionPerUser = 0 в ветке HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server). Также этот параметр настраивается через опцию GPO Restrict Remote Desktop Services to a single Remote Desktop Services session в разделе Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections.
  • В секции Session Shadowing Mode вы можете настроить режим теневого подключения к рабочему столу пользователей Windows .

Не работает RDP Wrapper в Windows

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

Во время установки обновлений Windows может обновиться версия файла termsrv.dll. Если в файле rdpwrap.ini отсутствует описание для вашей версии Windows, значит RDP Wrapper не может применить необходимые настройки. В этом случае в окне RDP Wrapper Configuration будет указан статус [not supported].

В этом случае нужно обновить файл rdpwrap.ini как описано выше.
Если RDP Wrapper не работает после обновления файла rdpwrap.ini, попробуйте открыть файл rdpwrap.ini и найти в нем описание для вашей версии Windows.
Как понять, есть ли поддержка вашей версии Windows в конфиг файле rdpwrapper?
На скриншоте ниже показано, что для моей версии Windows 11 (10.0.22621.317) есть две секции с описаниями:

[10.0.22621.317]
...
[10.0.22621.317-SLInit]
...

rdpwrapper - добавить описание в файл rdpwrap.ini для вашей редакции windows

Если в конфигурационном файле rdpwrap соответствующая секция отсутствует для вашей версии Windows, попробуйте поискать в сети строки rdpwrap.ini для вашего билда. Добавьте найденные строки в самый конец файла.

Если после установки обновлений безопасности или после апгрейда билда Windows 10, RDP Wrapper не работает, проверьте, возможно в секции Diagnostics присутствует надпись Listener state: Not listening.

Попробуйте обновить ini файл, и затем переустановить службу:

rdpwinst.exe -u
rdpwinst.exe -i

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

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

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

The number of connections to this computer is limited and all connections are in use right now. Try connecting later or contact your system administrator.

The number of connections to this computer is limited and all connections are in use right now.

В этом случае нужно с помощью редактора групповых политики gpedit.msc в секции Конфигурация компьютера –> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Подключения включить политику “Ограничить количество подключений” и изменить ее значение на 999999 (Computer Configuration -> Administrative Templates -> Windows Components ->Remote Desktop Services ->Remote Desktop Session Host -> Connections-> Limit number of connections).

групповая политика Ограничить количество rdp подключений

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

Модификация файла termsrv.dll для снятия ограничений RDP в Windows 10 и 11

Чтобы убрать ограничение на количество RDP подключений пользователей в Windows без использования rdpwrapper нужно заменить файл termsrv.dll. Это файл библиотеки, которая используется службой Remote Desktop Services. Файл находится в каталоге C:\Windows\System32.

Прежде, чем править или заменять файл termsrv.dll желательно создать его резервную копию. Это поможет вам в случае необходимости можно будет вернуться к исходной версии файла. Запустите командную строку с правами администратора и выполните команду:

copy c:\Windows\System32\termsrv.dll termsrv.dll_backup

Затем нужно стать владельцем файла. Проще всего это сделать из командной строки. Чтобы сменить владельца файла с TrustedInstaller на группу локальных администраторов с помощью команды:

takeown /F c:\Windows\System32\termsrv.dll /A

Должно появится сообщение: «SUCCESS: The file (or folder): «c:\Windows\System32\termsrv.dll» now owned by the administrators group».

Теперь с помощью icacls.exe предоставьте группе локальных администраторов полные права на файл termsrv.dll (Full Control):

icacls c:\Windows\System32\termsrv.dll /grant Administrators:F
(или
Администраторы
в русской версии Windows).

Должно появится сообщение: «processed file: c:\Windows\System32\termsrv.dll Successfully processed 1 files; Failed processing 0 files«.

termsrv.dll стать владельцем файла termsrv.dll с помощью takeown

Теперь нужно остановить службу Remote Desktop Service (TermService) из консоли services.msc или из командной строки:

Net stop TermService

Вместе с ней останавливается служба Remote Desktop Services UserMode Port Redirector.

Служба Remote Desktop service

Чтобы узнать номер билда вашей Windows, выполните команду winver или следующую команды PowerShell:

Get-ComputerInfo | select WindowsProductName, WindowsVersion

В моем случае установлена Windows 10 билд 22H2.

Затем откройте файл termsrv.dll с помощью любого HEX редактора (к примеру, Tiny Hexer). В зависимости от билда нужно найти и заменить строку:

Версия Windows Найти строку Заменить на
Windows 11 22H2 39 81 3C 06 00 00 0F 84 75 7A 01 00  

B8 00 01 00 00 89 81 38 06 00 00 90

Windows 10 22H2 39 81 3C 06 00 00 0F 84 85 45 01 00
Windows 11 RTM ( 21H2 22000.258) 39 81 3C 06 00 00 0F 84 4F 68 01 00
Windows 10 x64 21H2 39 81 3C 06 00 00 0F 84 DB 61 01 00
Windows 10 x64 21H1 39 81 3C 06 00 00 0F 84 2B 5F 01 00
Windows 10 x64 20H2 39 81 3C 06 00 00 0F 84 21 68 01 00
Windows 10 x64 2004 39 81 3C 06 00 00 0F 84 D9 51 01 00
Windows 10 x64 1909 39 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 1903 39 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 1809 39 81 3C 06 00 00 0F 84 3B 2B 01 00
Windows 10 x64 1803 8B 99 3C 06 00 00 8B B9 38 06 00 00
Windows 10 x64 1709 39 81 3C 06 00 00 0F 84 B1 7D 02 00

Редактор Tiny Hexer не позволяет редактировать файл termsvr.dll напрямую из папки system32. Скопируйте его на рабочий стол, а после модификации замените исходный файл.

Например, для самой редакции Windows 10 x64 22H2 19045.2006 (версия файла termsrv.dll — 10.0.19041.1949) нужно открыть файл termsrv.dll в Tiny Hexer. Затем найдите строку:

39 81 3C 06 00 00 0F 84 85 45 01 00

И замените ее на:

B8 00 01 00 00 89 81 38 06 00 00 90

редактировать termsrv.dll в hex редакторечтобы разрешить множественные rdp подключения

Сохраните файл и запустите службу TermService.
Если что-то пошло не так, и у вас возникнут проблемы со службой RDP, остановите службу и замените модифицированный файл termsrv.dll исходной версией:

copy termsrv.dll_backup c:\Windows\System32\termsrv.dll

Преимущество способа отключения ограничения на количество RDP сессий в Windows путем замены файла termsrv.dll в том, что на него не реагируют антивирусы. В отличии от утилиты RDPWrap, которую многие антивирусов считают Malware/HackTool/Trojan. Основной недостаток — вам придется вручную править файл после каждого обновления билда Windows (или при обновлении версии файла termsrv.dll в рамках ежемесячных кумулятивных обновлений).

Встроенная поддержка нескольких RDP сессий в редакции Windows 10 Enterprise Multi-session

Недавно Microsoft выпустило специальные Enterprise редакции Windows multi-session (ранее назывались Windows 10 Enterprise for Remote Sessions и Windows 10 Enterprise for Virtual Desktops).

Редакция Enterprise multi-session доступна как для Windows 10, так и для Windows 11.

Главная особенность этой редакции – она поддерживает множественные одновременные RDP сессии пользователей прямо из коробки. Несмотря на то, что редакцию Windows multi-session разрешено запускать только в виртуальных машинах Azure, вы можете вам установить эту редакцию в on-premises сети и использовать данный компьютер терминальный сервер (хотоя это будет нарушением лицензионной политики Microsoft).

Далее мы покажем, как обновить компьютер с Windows 10 Pro до Windows 10 Enterprise for Virtual Desktop и использовать его для одновременного подключения нескольких пользователей.

Откройте командную строку и проверьте текущую редакцию Windows (Professional в этом примере):

DISM /online /Get-CurrentEdition

Обновите вашу редакцию Windows с Pro до Enterprise:

Changepk.exe /ProductKey NPPR9-FWDCX-D2C8J-H872K-2YT43

Теперь установить GVLK ключ для Windows 10 Enterprise for Remote Sessions:

slmgr.vbs /ipk CPWHC-NT2C7-VYW78-DHDB2-PG3GK

Апгрейд windows до редакции enterprise remote sessions

Проверьте, что теперь ваша редакция Windows 10 изменилась на
ServerRdsh
(Windows 10 Enterprise for Virtual Desktops).

Редакция windows 10 ServerRdsh

Активируйте вашу копию Windows Enterprise Multi-Session на вашем KMS сервере:

slmgr /skms msk-man02.winitpro.local:1688
slmgr /ato

Откройте редактор локальной GPO
(gpedit.msc
) и включите Per-User режим лицензирования в параметре Set the Remote Desktop licensing mode (Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Licensing).

После активации нужно перезагрузить Windows. Теперь попробуйте подключиться к компьютеру по RDP под несколькими пользованиями. Как вы видите, Windows 10 Enterprise multi-session одновременные RDP подключения поддерживаются прямо из коробки.

Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer

Windows 10 Enterprise for Virtual Desktops 2009           10.0.19041.2728

qwinsta

несколько активных rdp сеансов в windows 10 enterprise virtual desktop 2009

В этой статье мы рассмотрели способы, позволяющие снять ограничение на количество одновременных RDP подключений пользователей, и запустить бесплатный терминальный сервер на клиентской Windows 10 или 11. У каждого из этих способов есть свои преимущества и недостатки. Какой из них использовать — решать вам.

В этой статье расскажем, как установить несколько сеансов RDP в Windows 11 и Windows 10, а также рассмотрим методы обхода ограничения на количество одновременных подключений.

Удаленные пользователи могут подключаться к своим компьютерам с ОС Windows 10 и Windows 11 через службы удаленных рабочих столов (RDP). Для этого достаточно включить RDP в настройках устройства и подключиться к компьютеру с помощью любого клиента удаленного рабочего стола, такого как MSTSC. Однако существует ограничение на количество одновременных сеансов RDP — одновременно может работать только один удаленный пользователь. Если попытаться открыть второй сеанс, появится предупреждение с просьбой отключить сеанс первого пользователя.

Приобрести оригинальные ключи активации Windows всегда можно у нас в каталоге:
Windows 11 — от 1690 ₽
Windows 10 — от 1490 ₽

Настройка службы RDP на Windows 10

RDP работает только на версиях Windows 10/11 Pro, поскольку в Home версии отключены необходимые системные компоненты. Кроме этого, потребуется защитить паролем вашу учетную запись.

Включение доступа и добавление пользователей

— Откройте «Пуск» и нажмите на значок «Параметры».

— Перейдите к настройке «Удаленный рабочий стол» и включите его.

— Перейдите в настройки «Электропитание» и отключите переход компьютера в спящий режим.

— Добавьте пользователей, которым будет предоставлен доступ к RDP. По умолчанию доступ предоставлен администратору компьютера.

Ограничение количества одновременных подключений

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

На самом деле, количество одновременных подключений RDP в системе Windows ограничено лицензией, а не техническими аспектами. Это ограничение не позволяет создать полноценный терминальный RDP-сервер на базе компьютера с Windows 10 или 11. Microsoft рекомендует использовать серверную лицензию Windows Server и RDS CALs для создания сервера сеансов удаленного рабочего стола.

Однако технически любая версия Windows с достаточным объемом оперативной памяти может поддерживать несколько удаленных пользователей. Среднее потребление памяти для одного сеанса — около 200 МБ (без учета запущенных приложений). Таким образом, максимальное количество сеансов теоретически ограничено только ресурсами компьютера.

Способы разрешить одновременные RDP-подключения в Windows 10/11:

— С помощью RDP Wrapper

— Исправление библиотеки termsrv.dll

RDP Wrapper

RDP Wrapper — это проект с открытым исходным кодом, который позволяет включить несколько сеансов RDP в Windows 10 без необходимости замены файла termsrv.dll. Этот инструмент работает как связующее звено между Service Control Manager (SCM) и службами удаленного рабочего стола, что позволяет не только поддерживать несколько одновременных RDP-сессий, но и создать RDP-сервер на Windows Home.

RDP Wrapper не вносит изменений в файл termsrv.dll, а просто загружает его с измененными параметрами, что делает его устойчивым к обновлениям Windows.

Вы можете загрузить RDP Wrapper из репозитория GitHub.

В архиве RDPWrap-v1.6.2.zip содержатся несколько файлов:

RDPWinst.exe — установщик оболочки RDP

RDPConf.exe — инструмент настройки оболочки RDP

RDPCheck.exe — утилита проверки RDP (Local RDP Checker)

Install.bat, uninstall.bat, update.bat — пакетные файлы для установки, удаления и обновления оболочки

Для установки оболочки необходимо запустить файл Install.bat с правами администратора.

RDPWrap не работает в Windows 10

После завершения установки запустите RDPConfig.exe. Скорее всего, сразу после установки инструмент покажет, что оболочка RDP запущена (установлена, запущена), но не работает. Обратите внимание на красное предупреждение [not supported]. В нем сообщается, что эта версия Windows 10 (версия 10.0.19041.1387) не поддерживается оболочкой RDP.

Для каждой версии Windows 10/11 должно быть описание в конфигурационном файле rdpwrap.ini. В текущем конфигурационном файле может не быть необходимых настроек для вашей сборки Windows.

Текущую версию файла rdpwrap.ini можно загрузить здесь: https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini

Скопируйте новый файл rdpwrap.ini в каталог C:\Program Files\RDP Wrapper\rdpwrap.ini и перезапустите службу TermService. В некоторых случаях это может не сработать, так как оригинальный файл восстанавливается при перезапуске службы. Чтобы решить эту проблему, можно использовать файл автоматического обновления rdpwrap.ini.

Скопируйте файлы RDPWinst.exe, RDPConf.exe, RDPCheck.exe и autoupdate.bat в каталог C:\Program Files\RDP Wrapper\ и запустите autoupdate.bat. После этого RDPConfig.exe должен показать, что все работает корректно.

Обновление Параметров Групповой политики

Количество подключений к компьютеру может быть ограничено правилами групповой политики. В этом случае можно использовать редактор локальной групповой политики (gpedit.msc), чтобы включить политику «Ограничить количество подключений» в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Подключения -> Ограничить количество подключений. Измените значение на 999999.

Модификация Termsrv.dll

Второй метод — это изменение файла termsrv.dll. Этот метод более трудозатратный и требует остановки службы удаленных рабочих столов (TermService), а также внесения изменений в файл с использованием шестнадцатеричного редактора (например, WinHex).

Для начала, остановите службу TermService:

Net stop TermService

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

takeown /F c:\Windows\System32\termsrv.dll /A

Теперь предоставьте локальной группе администраторов разрешения на полный контроль над termsrv.dll файл с использованием icacls.exe:

icacls c:\Windows\System32\termsrv.dll /grant Администраторы:F

Откройте файл termsrv.dll с использованием любого шестнадцатеричного редактора (например, WinHex. В зависимости от вашей сборки Windows вам необходимо найти и заменить строку в соответствии с приведенной ниже таблицей:

Версия Windows Строка поиска
Windows 11 RTM (21H2 – 22000.258) 39 81 3C 06 00 00 0F 84 4F 68 01 00
Windows 10 x64 22H2 — 19045.2604 39 81 3C 06 00 00 0F 84 85 45 01 00
Windows 10 x64 22H2 — 19045.2486 39 81 3C 06 00 00 0F 84 DB 61 01 00
Windows 10 x64 21H2 39 81 3C 06 00 00 0F 84 85 45 01 00
Windows 10 x64 21H1 39 81 3C 06 00 00 0F 84 2B 5F 01 00
Windows 10 x64 20H2 39 81 3C 06 00 00 0F 84 21 68 01 00
Windows 10 x64 2004 39 81 3C 06 00 00 0F 84 D9 51 01 00
Windows 10 x64 1909 39 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 1903 39 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 1809 39 81 3C 06 00 00 0F 84 3B 2B 01 00
Windows 10 x64 1803 8B 99 3C 06 00 00 8B B9 38 06 00 00
Windows 10 x64 1709 39 81 3C 06 00 00 0F 84 B1 7D 02 00

Строка замены:

B8 00 01 00 00 89 81 38 06 00 00 90

Данную таблицу можно найти в интернете. Если указанная последовательность не найдена в вашем файле, попробуйте искать начальную часть последовательности: 39 81 3C 06 00 00 0F 84, последние 4 байта могут отличаться.

В нашем случае мы нашли последовательность 39 81 3C 06 00 00 0F 84 73 55 01 00

Замена на B8 00 01 00 00 89 81 38 06 00 00 90

После внесения изменений сохраните модифицированный файл и запустите службу TermService:

Net start TermService

Скачать измененный файл termsrv.dll для конкретной версии Windows 10 можно у нас на сайте:

Скачать termsrv.dll для версии — Windows 10 x64 22H2 сборка 19045.2486 и 19045.2604

Скачать termsrv.dll для версии — Windows 10 x64 22H2 сборка 19045.3086

Сохраните модифицированный файл и запустите службу TermService. Если что-то пойдет не так, остановите службу и замените модифицированный файл termsrv.dll на оригинальную версию. В моем случае модификация файла помогла включить несколько сеансов RDP.

Преимущества и недостатки методов

Преимущество метода с заменой termsrv.dll заключается в том, что антивирусы не реагируют на этот файл, в отличие от RDPWrap, который многими антивирусами обнаруживается как вредоносное ПО. Основным недостатком является необходимость вручную редактировать файл при каждом обновлении сборки Windows.

Метод с RDP Wrapper проще в использовании и не требует изменения системных файлов, но также может потребовать обновления конфигурации при каждом обновлении Windows.

RDPWraper

Easy and automatic termsrv.dll patcher for Windows 10 1909 version 18363.959 — with updated ini file. To install First make an exception in Windows Defender and your antivirus for the executables and dll (IT WILL PICK IT UP) then make a «RDP Wrapper» directory in Program Files, Copy all those files inside then disconnect internet and in Command Prompt window execute «RDPWinst.exe -i»

The goal of this project is to enable Remote Desktop Host support and concurrent RDP sessions on reduced functionality systems for home usage.

RDP Wrapper works as a layer between Service Control Manager and Terminal Services, so the original termsrv.dll file remains untouched. Also this method is very strong against Windows Update.

Executables were taken from https://github.com/stascorp/rdpwrap and were in no case altered / modified: you can verify yourself, I am not trying to infect you.

Hello hackers! Today we are talking about one of the famous and loved by Windows sysadmins remote managing stuff – Remote Desktop Protocol. We will reveal what the RDP is, how to hack it and, the most important thing, how to prevent your system. So, let’s get started.

Firstly, a little bit annoying history and theory.

Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software. © Wikipedia

The common port for RDP is 3389 which, obviously, may be changed to any other.

Remote Desktop Connection Manager

Remote Desktop Connection Manager

In a nutshell, RDP is used to control your Windows based computer from all over the world as if you are sitting in front of it. Ok, let’s move further.

For our purposes I prepared the lab based on the Oracle VM VirtualBox Manager which involved an attacker machine – Kali Linux 2020.1b (ip-address is 192.168.1.137), a victim machine – Windows 10 Enterprise with the latest updates (ip-address is 192.168.1.149) and another victim system – Windows 7 Corp with the latest updates (ip-address is 192.168.1.106).

Oracle VM VirtualBox Manager

Oracle VM VirtualBox Manager

By default RDP is switched off. So you have to turn it on manually.

System Properties - data-lazy-src=

System Properties -> Remote — > Don’t allow remote connections

System Properties - data-lazy-src=

System Properties -> Remote — > Allow remote connections

Having switched on the remote connections we may try to connect. But is has no sense now because we don’t have any credentials. Yeah, sad…

Establishing an RDP connection (mstsc or remmina)

Establishing an RDP connection (mstsc or remmina)

You know what? It’s not the end. Let’s go deeper and try to enumerate some users logins.

At least Kali Linux has preinstall useful program called rdesktop, which has wide properties. Let’s try to use it.

rdesktop -a 16 192.168.1.149

rdesktop -a 16 192.168.1.149

Wow, it looks interesting, but still it’s not that we have expected for.

Before we will make the next step I’d suggest to read carefully RDP’s security issue:

RDP client version 6.1 can be used to reveal the names and pictures of all users on the RDP Server (no matter which Windows version) in order to pick one, if no username is specified for the RDP connection. © Wikipedia

You may say, that the current version is 10.0. Moreover, the RDP version 6.1 was issued in February 2008 (12 years ago) and that kind of vulnerability had definitely been closed about 10 years ago.

You have a point, but it’s Microsoft…

As you saw on the last RDP connection attempt via rdesktop we didn’t set any username parameters. According to the issue we may try to reveal the names and pictures of all users if we set no username. Ok, let’s try it out. Just add to the rdesktop –u “” parameter.

rdesktop -u "" -a 16 192.168.1.149

rdesktop -u "" -a 16 192.168.1.149

rdesktop -u «» -a 16 192.168.1.149

What the…

We can see that there are 2 users on the remote machine: s.peter and k.ana. We can see not only their logins, we also can see their photos. Moreover if we try to enter an incorrect password, system will ask us to reset it. Just like this…

Incorrect password - data-lazy-src=

Incorrect password -> Reset password

What’s next? We have two different attack methods.

The first one is the OSINT with the further social engineering. The point is to find that person on the social media such as facebook or twitter and than try to get the answers. If there are no clues, for instance, about the first pet’s name, add him to your friends list and start talking about “common” subject, as you may guess – about animals.

If you do all the right you’ll be awarded 😉

Reset password

The second way is my favorite – brute forcing 🙂 I don’t know why but it’s my passion! By the way, what’s your favorite tool for that kind of attack?

I used to work with hydra. To me it quite convenient. It’s like the Swiss knife of the brute forcing! Ok, let’s try it out. Before we start we have to create a file with logins.

As the password list we are using rockyou.txt. So, the full command is:

hydra -L users.txt -P /root/Desktop/rockyou.txt rdp://192.168.1.149

hydra -L users.txt -P /root/Desktop/rockyou.txt rdp://192.168.1.149

Success! We found passwords for all of the users: s.peter has the michelle password and k.ana has the spongebob password. Now let’s check, I mean to connect.

rdesktop -u "" -a 16 192.168.1.149

rdesktop -u «» -a 16 192.168.1.149

Is it only the Windows 10 problem? I was wondering if Windows 7 had the same issue. And it definitely had.

rdesktop -u "" -a 16 192.168.1.106

rdesktop -u «» -a 16 192.168.1.106

Ok. Now let’s understand why it has happened and how to prevent it.

Just before the issue was published, Windows had announced RDP 6.0 with Network Level Authentication (NLA). What does it need for? NLA requires the connecting user to authenticate themselves before a session is established with the server. © Wikipedia

Can you see the difference?

Without NLA we connect to the server first and then choose/enter our credentials.

Using NLA we have to enter our creds first and then connect to the server. So, it doesn’t have to show us all the users and their avatars.

How to switch it on? Just set the flag “Allow connections only from computers running Remote Desktop with Network Level Authentication (recommended).

System Properties - data-lazy-src=

System Properties -> Remote — > Allow remote connections (NLA)

Now let’s try to connect as we did it before.

rdesktop -u "" -a 16 192.168.1.149

rdesktop -u «» -a 16 192.168.1.149

The connection was refused as we expected for. Now let write down the credentials first and than try to connect (as NLA requires). Unfortunately, rdesktop does not support NLA. You can still use rdesktop for remote access, as long as you disable NLA on the computer you want to connect to.

That’s why let’s switch to the remmina program.

remmina

remmina

As you can see NLA provides plenty of advantages such as mitigating Remote Desktop vulnerabilities or reducing the risk of denial-of-service attacks. But it also has huge cons like not possible to change password via CredSSP (“User must change password at next logon” or if an account’s password expires) or the IP addresses of the clients trying to log in will not be stored in the security audit logs.

Another possible way to reduce the risk of RDP vulnerabilities is to hide the users! It perfectly works for hackers too when they are in the system and trying not to be revealed.

Let’s do it. First of all we have to open you registry editor (regedit) and browse the following path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

regedit - data-lazy-src=

regedit -> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

After that we have to create a new SpecialAccounts key and UserList key inside the last one.

SpecialAccounts - data-lazy-src=

SpecialAccounts -> UserList

Having done that, inside the UserList make a new DWORD (32-bit) Value. Name the new DWORD key with the name of the account you’re trying to hide and make sure its data value is set to 0.

DWORD (32-bit) Value - data-lazy-src=

DWORD (32-bit) Value -> 0

Now let’s check what we have done.

rdesktop -u "" -a 16 192.168.1.149

rdesktop -u «» -a 16 192.168.1.149

We did it! We have hidden our s.peter user. Now let’s try to connect to s.peter even if he isn’t in the list.

rdesktop -u "s.peter" -p "michelle" -a 16 192.168.1.149

rdesktop -u «s.peter» -p «michelle» -a 16 192.168.1.149

As you can see, there are no any mentions about s.peter user, but we have connected under his credentials. I assume it’s a good way for protections your machine if you are a system administrator as well as to hide you beings if you are a hacker 😉

Overall, Remote Desktop Protocol is a good one to manage your system when you are far away. Yeah, it has some vulnerabilities but if you are noticed about them and know how to mitigate issues, it shouldn’t be a big problem. But, 12 years Karl!!!12 years…

===

Afterword. If i were a black hacker, I would leave a backdoor in the system and use it whatever I want. Can you guess how to do that?

nt authority\system

cmd.exe over rdp

Источник

На чтение 6 мин Просмотров 1.3к. Опубликовано

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

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

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

Ситуация немного меняется, если есть дома кто-то еще, кто пользуется этим же компьютером. На правах лицензии Microsoft работает только 1 RDP сессия, то есть на ПК работаете либо вы по RDP, либо ваши члены семьи. Больше 1 RDP сессии поддерживают только серверные операционные системы Windows. Не очень удобно, не правда ли?

Обходилось это все дело в плоть до Windows 7 пропатчиванием библиотеки termsrv.dll — и вот ваше счастье: жена, дети работают под своей учетной записью, а вы спокойно работаете под своей по RDP.

В Windows 10 данная ситуация немного усугубляется. На сегодняшний день также есть 2 варианта: первый — пропатчивание DLL библиотеки с помощью HEX редактора, что в целом нарушает лицензионные права Microsoft и явно история не для новичков, и второй — использование бесплатной утилиты RDP Wrapper, которая не трогает библиотеки и включает эмулятор для нескольких RDP сессий.

Именно второй вариант мы и будем использовать вместе с вами. Для этого необходимо скачать RDP Wrapper по ссылке ниже и выполнить все пункты:

  1. Скачиваем архив с RDP Wrapper. Пароль на архив: x-flame.ru
  2. Распаковываем архив.
  3. Запускаем через правую кнопку мыши от прав администратора bat файл install.bat и производим установку.
  4. Копируем все файлы из распакованного архива в каталог с установленной программой, по умолчанию это: «C:\Program Files\RDP Wrapper».
  5. Запускаем от прав администратора bat файл re-install.bat, который после копирования всех файлов находится в «C:\Program Files\RDP Wrapper\re-install.bat» и дожидаемся обновления библиотеки файлов RDP Wrapper.
  6. Запускаем RDPConf.exe и смотрим, чтобы все поля, выделенные на скриншоте горели зеленым.

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

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

Данный метод работает на всех релизах Windows 10 по 1909 (10.0.19041.662) включительно.

Update: от 26.06.2020

Для корректной работы RDP Wrapper в Windows 10 до последнего релиза включительно необходимо:

Update: от 17.08.2020

Сегодня мой компьютер наконец-то обновился до версии 2004 (Сборка ОС 19041.450) и мой RDP Wrapper сразу же оказался нерабочим. Зайдя в RDPConf пункт [Fully supported] вообще не отображался, отсюда стало понятно, что слетела сама установка.

Повторно установив RDP Wrapper через батник в каталоге install.bat, выполнив следом rdpwrap_ini_updater.bat у меня наконец-то появился потерянный раздел [Not supported]. Порывшись в ветке разработчика, нашел рабочий rdpwrap.ini и подкинул его в каталог с RDP Wrapper.

Перезапустив службу Диспетчер подключений удаленного доступа и все связанные с ним по умолчанию службы — получил рабочий RDP Wrapper

Служба для перезапуска RDP Wrapper — Диспетчер подключений удаленного доступа

RDP Wrapper — [Fully supported] — 10.0.19041.84

Ссылка на скачивание обновленного rdpwrap.ini от 17.08.2020

Обновление *.ini файла от 10.12.2020 для RDP Wrapper с поддержкой релиза 10.0.19041.662

Ссылка на скачивание обновленного rdpwrap.ini от 10.12.2020


Обновление *.ini файла от 15.01.2021 для RDP Wrapper с поддержкой релиза 10.0.19041.746

Ссылка на скачивание обновленного rdpwrap.ini от 15.01.2021 (после замены *.ini файла не забудьте перезагрузить ПК)


Обновление *.ini файла от 12.02.2021 для RDP Wrapper с поддержкой релиза 10.0.19041.789

Ссылка на скачивание обновленного rdpwrap.ini от 12.02.2021 (после замены *.ini файла не забудьте перезагрузить ПК)


Обновление *.ini файла от 29.04.2021 для RDP Wrapper с поддержкой релиза 10.0.19041.964

RDP Wrapper для релиза 10.0.19041.964

Ссылка на скачивание обновленного rdpwrap.ini от 29.04.2021 для X86 разрядных OS Windows 10 и rdpwrap.ini от 29.04.2021 для X64 разрядных OS Windows 10 (после замены *.ini файла не забудьте перезагрузить ПК)


Обновление *.ini файла от 29.05.2021 для RDP Wrapper с поддержкой релиза 10.0.19041.1023

Ссылка на скачивание обновленного rdpwrap.ini от 29.05.2021 (после замены *.ini файла не забудьте перезагрузить ПК)


Обновление *.ini файла от 11.07.2021 для RDP Wrapper с поддержкой релиза 10.0.19041.1081

Ссылка на скачивание обновленного rdpwrap.ini от 11.07.2021 (после замены *.ini файла не забудьте перезагрузить ПК)


Обновление *.ini файла от 23.09.2021 для RDP Wrapper с поддержкой релиза 10.0.19041.1202

RDPWrapper 10.0.19041.1202

Ссылка на скачивание обновленного rdpwrap.ini от 23.09.2021 (после замены *.ini файла не забудьте перезагрузить ПК)


Появилась утилита автоматического обновления *.ini файла, которая корректно работает с последними релизами Windows 10. Жмите СКАЧАТЬ. После скачивания, распаковываете содержимое архива в каталог с RDP Wrapper по пути C:\Program Files\RDP Wrapper\ . Переходим в каталог C:\Program Files\RDP Wrapper\ и от туда запускаем autoupdate.bat от прав администратора и работаем дальше. При необходимости перезапускаем ПК.

Обновление *.ini файла от 20.11.2021 для RDP Wrapper с поддержкой релиза 10.0.22000.318 Windows 11

Ссылка на скачивание обновленного rdpwrap.ini от 20.11.2021 для 10.0.22000.318 (после замены *.ini файла не забудьте перезагрузить ПК)

Довольно редко обращаются с проблемой некорректной печати принтеров в RDP сессии после начала использования RDP Wrapper и для этой проблемы есть решение: в *.ini файле необходимо поправить строки SLInitHook.x86 и SLInitHook.x64 и сделать их равными 0.

P.S. если кто забыл или невнимательно читал, доступ к архивам: x-flame.ru

Если ваша жизнь стала хоть на чуточку легче, после прочтения данной статьи, не забудьте сказать спасибо, через кнопку поддержать проект ;-)

4.9
57
Голосов

Рейтинг записи

Источник

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • 80072ее2 ошибка обновления windows 7 как исправить
  • Как установить драйвера на windows 7 virtualbox
  • Код ошибки 0x80070570 при обновлении windows 10
  • Ломалка для windows 7 32
  • Windows 7 как установить драйвер в режиме совместимости с windows