Windows terminal server і зняття інших обмежень (сторінка 1)

Спосіб TSFree 1.1

Касперський і Nod повідомляють що в файлі Trojan.Win32.Agent.jh. Але я користуюся файлом вже дуже давно і після установки не раз перевірив всі ПК - немає жодного вірусу. Так що це така ж фальшива тривога, як файли-кряки до ігор і іншого ПО.






Чому він вважає вірусом? Ось наприклад вірус, який робить дуже схоже: Trojan-Dropper.Win32.Delf.jef

Тут я описую патчінга Windows XP VL (а не OEM) - тобто в системі взагалі немає модуля активації), і ПК не входить до складу домену ActiveDirectory:

Перед початком установки патча:

TS Free змінює деякі системні файли, краще патчить після установки всіх оновлень і патчів

І звичайно ж після установки антивіруса, або відключіть вірусний монітор на час установки патча

Перевірте, щоб в цей час в приводі оптичних дисків не було інсталяційного диска Windows (або, якщо ви ставили його з флешки, з HDD - щоб зараз це місце було недоступно на цьому ПК), інакше SFC тут же поверне оригінальні копії цих файлів, і нічого не вийде

Працює підключення RDP по TCP-порту 3389, тому в файрволла треба додати в виключення цей порт, або просто ткнути галку на "Дистанційне керування робочим столом" в брендмауер Windows (я ще й "Віддалений помічник" включаю).

Ще, перевірте що у властивостях "Мій комп'ютер" \ Віддалені сеанси, варто галка "Дозволити віддалений доступ до цього комп'ютера". Потім натисніть "Вибрати віддалених користувачів", і там додайте користувачів, яким буде дозволено підключатися по RDP (Це ж можна зробити в Управлінні комп'ютером \ Локальні користувачі та групи \ Групи - потрібних необхідно додати в групу "Користувачі віддаленого робочого столу" (тобто . потрібні користувачі повинні бути створені перед установкою патча, або при створенні відразу додаватися до цієї групи).

Отже, в звичайному режимі роботи Windows (а не обов'язково в захищеному), з під користувача з адмін-правами запускаємо TS-Free-1.1.exe і бачимо вікно командного рядка:

Terminalserver No Restrictions Patch Helper Script
==================================================
Please rename the path you installed windows or the latest servicepack from
to avoid that the Windows File Protection will undo the patch.
Example:
Rename C: \ installs \ WinXP_SP2 to C: \ installs \ WinXP_SP2.OUT
.
Hit Ctrl + C to Cancel.
Для продовження натисніть будь-яку клавішу.

натискаємо будь-яку клавішу, і в цьому вікні додається:

* Preparing winlogon.exe for patching.
* Preparing termsrv.dll for patching.
* Preparing mstscax.dll for patching.

* Starting WPA_Kill.exe (for disabling Winlogon.exe selfchecks).

тут же з'являється інше вікно "TS_Free patch Helper Winlogon.exe-selfcheck-remover 2.0.2":

Scanning for byte pattern:
.
PatchOffset: 0004C594 - Ready to Patch!

Disabling Windows System File Protection temporary:
RegDelete: ServicePackSourcePath = ""
RegDelete: SourcePath = ""

Disabling winlogon Anti-Crack-Security:
.

Applying Anti-WPA Patch at offset: 4C594
PE_Checksum updated!
Waiting for "Windows Systemfile Protection" dialogbox

Restoring Windows System File Protection data:
RegSetValue: ServicePackSourcePath =
"E:"
RegSetValue: SourcePath =
"E:"

Congratulations # 'Winlogon.exe #' was patched successfully.

Remember: You must run this patch again after you have
installed a servicepack!

і вікно-попередження Please wait for the "Windows Systemfile Protection" dialogbox:

Now the "Windows Systemfile Protection" dialogbox shouls popup.
Click on "Abort" and then klick on "Yes".

Note: On Serversystems just wait about 5 Sec and then click Ok.

І тут же вискакує попередження SFC, що важливі системні файли замінені, і воно просить CD- з дистрибутивом Windows, щоб їх повернути до оригінального виду, треба натиснути Скасування, Да.

На віконці "TS_Free patch Helper Winlogon.exe-selfcheck-remover 2.0.2" натискаємо Quit, і в першому вікні додається рядок "Starting TS_Free.exe.", З'являється наступне вікно "Windows Terminalserver no Restrictions Patch 1.1 Beta" з вмістом:

--[Terminalserver no Restrictions Patch] -

Натискаємо кнопку Patch, і у вікні "Windows Terminalserver." Додається:

+ opening Winlogon.exe. done.
Checking file.

Patching Winlogon.exe.
Seek for IsProfessionalTerminalServer function. found!
Moving to start of function.
Writing function fixdata. Return (0)
Moving to end of function.
Making IsPerOrProTerminalServer to retrun 0.

+ opening mstscax.dll. done.

Seek for CUI :: IsRunningOnPTS function. ERROR!

+ opening termsrv.dll. done
+ Fixing LCQueryAllowConcurrentConnections.
Seek for # 'MOV EAX, C00A0013 #'. found!
Moving to previous function
.
Skipping fillbytes 0xCC.
Writing function fixdata.
Moving to end of function.
--------------------------

Seek for # 'MOV EAX, C00A0013 #'. found!






Moving to previous function
.
Skipping fillbytes 0xCC.
Writing function fixdata.
Moving to end of function.
--------------------------

Seek for # 'MOV EAX, C00A0013 #'. found!
Moving to previous function
.
Skipping fillbytes 0xCC.
Writing function fixdata.
Moving to end of function.
--------------------------

Seek for # 'MOV EAX, C00A0013 #'. found!
Moving to previous function
.
Skipping fillbytes 0xCC.
Writing function fixdata.
Moving to end of function.
--------------------------

Seek for # 'MOV EAX, C00A0013 #'. found!
Moving to previous function
.
Skipping fillbytes 0xCC.
Writing function fixdata.
Moving to end of function.
--------------------------

Seek for # 'MOV EAX, C00A0013 #'. found!
Moving to previous function
.
Skipping fillbytes 0xCC.
Writing function fixdata.
Moving to end of function.
--------------------------

Seek for # 'MOV EAX, C00A0013 #'.

Seek for # 'CALL IsPersonalTerminalServicesEnable #'. found!
Overwriting with # 'MOV EAX, 1 #'
Makeing gbServer to be always 1.

Seek for IsPersonalWorkstation function. found!
Moving to start of function.
Writing function fixdata. Return (0)
Moving to end of function.

Seek for IsPersonalTerminalServicesEnabled function. found!
Moving to start of function.
Writing function fixdata. Return (0)
Moving to end of function.

Patch successfully applied!

чекаємо коли закінчить (кілька секунд) і потім - Quit. це вікно закривається, а в першому додалося:

_______________________________
/ \
--(You can close this Window now.) -
\ _______________________________ /

натискаємо Enter, вікно закривається.

Тепер треба перезапустити ПК, і він стане термінальним сервером.

Паралельні сеанси одного користувача

TS Free дозволяє підключатися під одним логінів двом користувачам одночасно. Де то так і треба, а де-то це не прийнятно. Щоб другий підключається забирав собі сеанс першого під тим же ім'ям користувача треба в групових політиках Пуск \ Виконати \ gpedit.msc, Конфігурація Комп'ютера \ Адміністративні шаблони, правою кн. мишки - Додати або видалити шаблони, відкриється C: \ Windows \ inf, вибрати system.adm, Відкрити. Тепер кнопку "Закрити". З'являться нові шаблони, йдемо в Конфігурація Комп'ютера \ Адміністративні шаблони \ Компоненти Windows \ Служби терміналів \, на пункті "Обмежити користувачів служби терміналів одним віддаленим сеансом" натискаємо "Властивості", Включений.
Тепер якщо увійти під User з одного ПК, а потім під ним же з іншого, сеанс перейде від першого до 2-го разом з усіма відкритими програмами (тобто сеанс загубиться). Другого паралельного сеансу користувача User не відкриється.

Якщо ПК входить до складу домену

Те при кожному запуску системи у нього скидається в "0" значення ключа реєстру "AllowMultipleTSSessions" в HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon, тому треба зробити командний файл, який змінює це значення до "1" в реєстрі, і помістити його в автозавантаження, наприклад через Групові політики gpedit.msc, Конфігурація Windows \ Сценарії (запуск / завершення). джерело і тут

Для ПК з WinXP в домені, після установки патча і запуску .reg-файлу, виконайте такі дії:
Залогініться з адмін-правами
Панель управління / Призначені завдання
Додати завдання
відшукайте файл c: \ windows \ system32 \ reg.exe
задайте ім'я завдання EnableMultipleTSUsers
виберіть період: При завантаженні комп'ютера
користувач: SYSTEM (ІмяПК \ Admin - працює + задати пароль, ІмяПК \ System - не спрацює, але System просто - працює)
Встановити додаткові параметри після натискання кнопки "Готово"
Змініть поле шлях на:
C: \ WINDOWS \ system32 \ reg.exe add "HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon" / v AllowMultipleTSSessions / t REG_DWORD / d 1 / f
OK, OK.

Обмеження на кількість підключень до мережевих ресурсів


Щоб в середніх і великих мережах Windows XP не міг конкурувати з Windows Server, в ньому обмежили кількість підключень по мережі до Розшарені ресурсів:
- Windows XP Home пускає до своїх папок по мережі (або до принтера) 5 користувачів
- Windows XP Pro - 10
6-го / 11-го відповідно просто не пускає.
Вирішується патчем LanServer_NoConnectionLimit, який замінює файли Windows \ system32 \ DRIVERS \ srv.sys і Windows \ system32 \ srvsvc.dll

Ці файли охороняються SFC, тому замінити їх можна тільки перезапустивши систему в захищеному режимі. Підмінити так само треба копії цих файлів в папці Windows \ system32 \ dllcache \ srvsvc.dll

я написав командний фал start.bat

Досить перезапуститися в захищеному режимі і запустити цей файл.

Обмеження на кількість напів-відкритих tcp / ip-з'єднань

Після появи черв'яків в Windows XP зробили таке обмеження, щоб уповільнити поширення епідемій (так черви встигають разсилать набагато менше копій своїх тіл).
в Афінах ми вже на етапі створення інсталяційного диска, за допомогою nLite збільшуємо це значення до 100.

uxtheme.dll

Щоб встановлювати не стандартні теми оформлення інтерфейсу в Windows, є патч uxtheme.dll
в Афінах ми вже на етапі створення інсталяційного диска, за допомогою nLite патчим цей файл.

Важливо спершу запустити (можна і в звичайному режимі роботи Windows) UniversalTermsrvPatch-x86.exe, потім обов'язково xp.reg (інакше не будуть внесені ключі до реєстру, і термінальний режим не запрацює).

В принципі, правильно. При вірною архітектурі в мережі у кожного повинен бути свій користувач. І цей самий користувач хоче не втрачати свої відкриті програми, і якщо він відключився (сам або через збій), а потім підключаючись, потрапляє в новий сеанс, то йому доведеться виконувати зайві дії, щоб переключитися в перший свій сеанс із залишеними в робочому вигляді відкритими його програмами та документами.

До речі 7-я версія RDP-клієнта автоматично перемикає дозвіл якщо підключаєшся з комп'ютера, дозвіл екрана якого відрізняється від того, з якого підключався до цього. Відкриті програми при цьому зсуваються в межі видимого вікна, але не закриваються - немає втрати даних. І промотувати вертикально / горизонтально тепер не треба, як це було в старих версіях DRP-клієнта, коли починаєш працювати з монітора, дозвіл якого менше ніж раніше - тому що розмір робочого столу залишався великим і не влазив в новий екран.

В інтернеті я знайшов для цього патча параметр
HKLM \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server, fSingleSessionPerUser, якщо він дорівнює 0 - відкриваються паралельні сесії для користувача з одним логіном, а якщо він дорівнює 1, - сеанс перехоплюється.

Написав командний файл:

Причому на TSFree 1.1 в Windows XP Pro SP3 (+ оновлення) він теж не має ніякого ефекту.

Взагалі то я вважаю що правильно не відкривати паралельну сесію, а забирати поточну. Нічого плодити паралельні. Користувачеві ще й поясни-спробуй, як забирати свою першу сесію, якщо тобі паралельну відкрило (тобто гарантії що відкриє паралельну -ні, але може і відкрити, тоді треба переключатися, щоб повернути свої поточні відкриті програми і документи), а потім ще нова сесія залишиться висіти не закрите. Тому правильніше, я вважаю, використовувати другий патч.