информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Terminal Services Optional Component (tsoc, а не tsos) [updated2] 21.02.05 18:54  Число просмотров: 2447
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 21.02.05 19:35  Количество правок: 2
<"чистая" ссылка>
Лежит в %SystemRoot%\system32\Setup\

Там одна точка входа (описывается в %SystemRoot%\INF\sysoc.inf) и используется она по образу и подобию CoInstaller-ов для драйверов. То бишь в числе прочих передается код операции. И одна из операций выполняет функцию, подобную DIF_ALLOW_INSTALL.

В принципе там в самом начале обработчика лежит switch-case (IDA его вполне спокойно разгребает), а в обработчиках кодов лежат вывод отладочной информации (куда зашли и чего делаем)

--------------
Собственно, глянул я IDA-ой с символами
Сходу можно сказать, что все интересности происходят в обработчике OC_INIT_COMPONENT под названием (кто бы догадался) OnInitComponent.

Далее закапываемся в функцию TSState::Initialize(), которая вызывает TSState::GetNTType()
Вот тут и надо подменить версию. Там дальше идет интерпретация этой версии - в том давешнем обсуждении я давал точные условия для установки TS, сейчас просто рекомендую выставить тип в server и все

--------------

Что то мне подсказывает, что смотреть нужно на функцию TSState::CanInstallAppServer(void)

Итого:

wProductType не должно быть равно VER_NT_WORKSTATION

в wSuiteMask должен быть установлен хотя бы один из VER_SUITE_DATACENTER или VER_SUITE_ENTERPRISE

ЛИБО

wProductType не должно быть равно VER_NT_WORKSTATION

в wSuiteMask должен быть установлен VER_SUITE_SMALLBUSINESS
<beginners>
аналог Terminal Server под XP 27.01.05 15:09  
Автор: quickuser Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Доброго времени суток!
Подскажите недотёпе как настроить удалённое подключение под XP. такое же как Terminal Server под Win2k. Кажется, его заменяет Remote Desktop. Подскажите какие службы должны быть запущены, где сопутствующие настройки, разрешения
Панель_управления-система-удаленное_использование 27.01.05 15:18  
Автор: Garick <Yuriy> Статус: Elderman
<"чистая" ссылка>
Уже... как работать одновременно? 27.01.05 15:26  
Автор: quickuser Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо, уже запускается
Теперь не позволяет только работать нескольким пользователям одновременно.
Предлагает завершить сеанс текущего пользователя (насильно).
Какая служба необходима для одновременной работы нескольких пользователей?
Служба "Вторичный вход в систему" запущена
никак. эта возможность отключена у XP. 27.01.05 15:32  
Автор: !mm <Ivan Ch.> Статус: Elderman
<"чистая" ссылка>
А кто-нибудь пробовал "открутить" это ограничение? 18.02.05 00:42  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Мне вот тут захотелось домой с работы "заходить", и эта моно-логинность очень мешает. Даже есть желание поискать и поправить байтики (или внедрить dll).

Может уже кто-нибудь знает или пробовал что-нибудь на эту тему?
Amirul в своё время вроде «заставил» установиться TS в режиме сервера приложений — спроси у него… 19.02.05 14:30  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 19.02.05 14:30  Количество правок: 1
<"чистая" ссылка>
Тут на форуме хором пытались сломать TS, но потом эта ветка куда-то пропала...
По крайней мере я её не могу найти.
Я вот тоже помню не более, что были разговоры на эту тему. А что скажет Amirul? 19.02.05 17:06  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Страшные слова вы тут разговариваете :-) 21.02.05 13:13  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
В общем не знаю как я его там поставил. Просто в компонентах виндовс галка с терминал сервисами была загреена и выключена, а я ее разгреил и все. Даже начал ставить, но винда начала меня стращать какими то серверами лицензия и я испугавшись ретировался.

Насколько я помню там надо просто перехватить вызов GetVersionEx из tsoc.dll (в каком процессе - не помню, скорее всего rundll какой нить) и подставить ему в wProductType VER_NT_DOMAIN_CONTROLLER или VER_NT_SERVER, и чего то там в wSuiteMask подправить. В принципе даже по дебажным сообщениям этого tsoc.dll можно понять чего он хочет, а если еще и с символами это делать - так вообще одно удовольствите.
Параметр hide я из sysoc.inf вычистил, но галка не ставится... 26.02.05 10:05  
Автор: mentatxx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> В общем не знаю как я его там поставил. Просто в
> компонентах виндовс галка с терминал сервисами была
> загреена и выключена, а я ее разгреил и все.

Параметр hide я из sysoc.inf вычистил, но галка не ставится - в чем может быть дело ?
ЗЫ. WinXP Sp1 / Corp
Я помню были такие проблемы — она там ставится, но как-то не с первого раза… Повозюкайся с крыжиком ещё немного… 26.02.05 11:17  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
да вот возюкаюсь, и pnfы грохал и перегружался 26.02.05 19:52  
Автор: mentatxx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
да вот возюкаюсь, и pnfы грохал и перегружался
зависимости вроде проверил - только от wbem зависит, но wbem ясен пень установлен ...
думаю установить другую версию WinXP - может проблема в этом ...
Дык установить то установишь 28.02.05 11:33  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
http://www.bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=20&m=118851

А запускаться все равно не будет

> думаю установить другую версию WinXP - может проблема в
> этом ...
Нет не в этом.
tsos.dll в XP нету, но вот нашел в гугеле на эту тему 21.02.05 18:25  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
http://64.233.187.104/search?q=cache:clK_lKmSph4J:www.ebloggy.com/blog.php%3Fusername%3Dtomilius+WinStationConnect&hl=ru

И еще вот, на случай если google забудет сохраненную копую блога:
http://members.lycos.nl/nessyh/vsgc/Classes/
Terminal Services Optional Component (tsoc, а не tsos) [updated2] 21.02.05 18:54  
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 21.02.05 19:35  Количество правок: 2
<"чистая" ссылка>
Лежит в %SystemRoot%\system32\Setup\

Там одна точка входа (описывается в %SystemRoot%\INF\sysoc.inf) и используется она по образу и подобию CoInstaller-ов для драйверов. То бишь в числе прочих передается код операции. И одна из операций выполняет функцию, подобную DIF_ALLOW_INSTALL.

В принципе там в самом начале обработчика лежит switch-case (IDA его вполне спокойно разгребает), а в обработчиках кодов лежат вывод отладочной информации (куда зашли и чего делаем)

--------------
Собственно, глянул я IDA-ой с символами
Сходу можно сказать, что все интересности происходят в обработчике OC_INIT_COMPONENT под названием (кто бы догадался) OnInitComponent.

Далее закапываемся в функцию TSState::Initialize(), которая вызывает TSState::GetNTType()
Вот тут и надо подменить версию. Там дальше идет интерпретация этой версии - в том давешнем обсуждении я давал точные условия для установки TS, сейчас просто рекомендую выставить тип в server и все

--------------

Что то мне подсказывает, что смотреть нужно на функцию TSState::CanInstallAppServer(void)

Итого:

wProductType не должно быть равно VER_NT_WORKSTATION

в wSuiteMask должен быть установлен хотя бы один из VER_SUITE_DATACENTER или VER_SUITE_ENTERPRISE

ЛИБО

wProductType не должно быть равно VER_NT_WORKSTATION

в wSuiteMask должен быть установлен VER_SUITE_SMALLBUSINESS
Спасибо :) 21.02.05 19:23  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Только сейчас, гадство, совсем некогда, буквально deadline.
Но обязательно попробую :)))
«Промышленную» версию патча не забудь потом выложить ;-) 21.02.05 20:04  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Собственно, мои изыскания 22.02.05 11:49  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Дисклеймер: все описанное здесь производилось "в исключительно мирных, домашних целях", то есть в целях обучения и повышения квалификации. Любая попытка повторить описанное останется на вашей совести

Начиналось все хорошо:

Убил все hide-ы в %SystemRoot%\INF\sysoc.inf

windbg.exe sysocmgr.exe /i:%SystemRoot%\INF\sysoc.inf

0:000> bu tsoc!TSState::CanInstallAppServer
0:000> g

У нас в ecx - указатель на этот самый TSState, в нем по смещению 0x146 лежит WORD wProductType, а по смещению 0x144 - WORD wSuiteMask

Ничтоже сумняшеся делаем
0:000> ew (@ecx+144) 80
0:000> ew (@ecx+146) 3
0:000> bd *
0:000> g

Voila. Выбираем "Службы Терминалов" и устанавливаем. Он просит перезагрузиться - перезагружаемся. И тут видим первый облом: сервис "terminal services" не запустился. При попытке запустить его вручную винда пытается сказать чего то умное, но в очередной раз морозит глупость. Ясное дело, что не только для установки нужна правильная версия, но и для работы.

Делаем первый подход к снаряду:
regedit.exe
Идем в ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions
Меняем ProductType на ServerNT, а в ProductSuite добавляем например Enterprise. Попробовали? Поздравляю. Винда защищает эти ключи и говорит чего то о нарушении лицензии. Но человек, который действительно хочет выстрелить себе в ногу - обязательно найдет способ это сделать. Экспортируем этот ключ в виде хайва, подключаем хайв к HKLM-у, вносим изменения там, отключаем хайв, импортируем его на место. Опять вуаля. Перегружаемся и наблюдаем bugcheck (aka BSOD) 0x9A: SYSTEM_LICENSE_VIOLATION. Пуля вошла в ногу, а вышла через голову. При каждой загрузке винда сравнивает ключ продукта с типом продукта. Вот и вышла неувязочка. Можно дальше копать в этом направлении и пытаться отучить винду заниматься такими глупостями, но зачем?

Настало время поковырять DDK.

#define KI_USER_SHARED_DATA         0xffdf0000
#define SharedUserData  ((KUSER_SHARED_DATA * const) KI_USER_SHARED_DATA)

typedef struct _KUSER_SHARED_DATA {
    volatile ULONG TickCountLow;
    ULONG TickCountMultiplier;
    volatile KSYSTEM_TIME InterruptTime;
    volatile KSYSTEM_TIME SystemTime;
    volatile KSYSTEM_TIME TimeZoneBias;
    USHORT ImageNumberLow;
    USHORT ImageNumberHigh;
    WCHAR NtSystemRoot[ 260 ];
    ULONG MaxStackTraceDepth;
    ULONG CryptoExponent;
    ULONG TimeZoneId;
    ULONG Reserved2[ 8 ];
    NT_PRODUCT_TYPE NtProductType;
    BOOLEAN ProductTypeIsValid;
    ULONG NtMajorVersion;
    ULONG NtMinorVersion;
    BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX];
    ULONG Reserved1;
    ULONG Reserved3;
    volatile ULONG TimeSlip;
    ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
    LARGE_INTEGER SystemExpirationDate;
    ULONG SuiteMask;
    BOOLEAN KdDebuggerEnabled;
    volatile ULONG ActiveConsoleId;
    volatile ULONG DismountCount;
    ULONG ComPlusPackage;
    ULONG LastSystemRITEventTickCount;
    ULONG NumberOfPhysicalPages;
    BOOLEAN SafeBootMode;
    ULONG TraceLogging;

#if defined(i386)
    ULONGLONG   Fill0;          // alignment
    ULONGLONG   SystemCall[4];
#endif

} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;

---

Просто запускаем винду под отладчиком, и где то посреди загрузки заходим и правим NtProductType на 3, а SuiteMask на 0x90.

Для автоматизации этого процесса можно например написать драйвер, поставить ему группу загрузки чего нибудь вроде Extended Base и в DriverEntry пропатчить эти значения и выйти. Драйвер, не создавший ни одного устройсва и не выставивший AddDevice будет сразу же выгружен.

Выставляем в свойствах компьютера "Разрешить удаленный досуп" и можно пытаться подключиться. Сразу скажу, что у меня подключиться не получилось потому как не зря винда стращала сервером лицензий (или чего то в этом роде). Но откручивать сервер лицензий я не нанимался
Если не сложно - кинь Symbols от tsoc мне на мыло 26.02.05 20:26  
Автор: mentatxx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> 0:000> bu tsoc!TSState::CanInstallAppServer

Если не сложно - кинь Symbols от tsoc мне на мыло
mentatxx собака mail ру
Ибо качать полный набор не с руки 176 Мб однако :(
Дак есть же "symbol server" 26.02.05 23:52  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
http://www.microsoft.com/whdc/DevTools/Debugging/debugstart.mspx
Тогда я копну в другую сторону 22.02.05 13:58  
Автор: leo <Леонид Юрьев> Статус: Elderman
Отредактировано 22.02.05 13:59  Количество правок: 1
<"чистая" ссылка>
Менять самомнение ОС на ходу - это интересно, но думаю не совсем оптимально.
Например, скорее всего у меня перестанет работать KAV, и придеться его убеждать что это все-таки workstation. Опять-же нужно разбираться с контролем лицензий (сервером лицензий). Потом могут "запротестовать" другие компоненты и т.д.

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

А оформить "patch" в виде драйвера - очень хорошая идея :)
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach