Windows service interract with desktop but WinHelp error...
От: vitbo  
Дата: 24.02.10 17:24
Оценка:
Вопрос по секьюрити привелегиям в Windows, кто знает решение — отзовитесь...

На сервере 2003 есть сервис, запускающийся из под LocalSystem, и интерактивный с десктопом.
Проблема следующая — функция WinHelp не хочет вызывать обычный хелп.

Как удалось выяснить — происходит следующее:

в user32.dll
в функции LaunchHelp
вызываются последовательно
OpenProcessToken
UserTestTokenForInteractive

т.е. похоже идет проверка, что пользователь, от которого запущен процесс
NT AUTHORITY\SYSTEM
принадлежит группе
NT AUTHORITY\INTERACTIVE
а он ей действительно не принадлежит...

Как обойти ситуацию?

ПС.
Вручную запускать процесс хелпа можно но не хочется...
Переделка программы на несколько процессов (сервис+пользовательская часть) также пока не предпологается....
winhelp service security
Re: Windows service interract with desktop but WinHelp error
От: ononim  
Дата: 24.02.10 18:14
Оценка: 1 (1)
V>На сервере 2003 есть сервис, запускающийся из под LocalSystem, и интерактивный с десктопом.
V>Проблема следующая — функция WinHelp не хочет вызывать обычный хелп.
V>Переделка программы на несколько процессов (сервис+пользовательская часть) также пока не предпологается....
Ну вот представьте если в системе работает пользователь без админских прав. Он открывает хелп вашей проги, жмет справа вверху вопросик, тыкает в окно курсором-вопросиком, в всплывшем хинте нажимает правой кнопкой мышки, в выпавшем меню выбирает Print Topic, в открывшемся окне печати жмет Add printer, потом Next, выбирает только верхнюю галочку, опять Next, и еще Next, там жмет кнопочку Have Disk, в Open диалоге нажимает Browse, переходит в каталог %windir%\system32, пишет в окне File name *.exe, Enter, находит в списке файлов cmd.exe, нажимает на нем правой кнопкой, выбирает в меню Open и получает шелл от имени LocalSystem --> local privileges escalation vulnerability без единой строчки кода со стороны взломщика.
Как много веселых ребят, и все делают велосипед...
Re[2]: Windows service interract with desktop but WinHelp er
От: vitbo  
Дата: 24.02.10 18:31
Оценка:
Спасибо конечно за подробную "инструкцию"....
Но жду конструктивных ответов.... или фразы "невозможно".
Система закрытая, кроме администратора никого нет, интернета нет...
Re[3]: Windows service interract with desktop but WinHelp er
От: ononim  
Дата: 24.02.10 18:39
Оценка:
V>Спасибо конечно за подробную "инструкцию"....
V>Но жду конструктивных ответов.... или фразы "невозможно".
V>Система закрытая, кроме администратора никого нет, интернета нет...
Перезапустить себя под пользователем при помощи CreateProcessAsUser под текущим юзером, передав своей копией специальный параметр который ей скажет что мол надо WinHelp запустить с заданными параметрами. Если только винда не вздумает проверять кому принадлежит переданный в WinHelp HWND и больше ниче не делать.
Как много веселых ребят, и все делают велосипед...
Re[4]: Windows service interract with desktop but WinHelp er
От: vitbo  
Дата: 24.02.10 19:24
Оценка:
O>Перезапустить себя под пользователем при помощи CreateProcessAsUser под текущим юзером,
А поподробнее — как?
Где взять токен нужного юзера...
Ткните в функции...
Re[5]: Windows service interract with desktop but WinHelp er
От: ononim  
Дата: 24.02.10 19:43
Оценка:
O>>Перезапустить себя под пользователем при помощи CreateProcessAsUser под текущим юзером,
V>А поподробнее — как?
V>Где взять токен нужного юзера...
V>Ткните в функции...
в вашем случае покатит
http://msdn.microsoft.com/en-us/library/aa383835(VS.85).aspx
http://msdn.microsoft.com/en-us/library/aa383840(VS.85).aspx
Как много веселых ребят, и все делают велосипед...
Re[6]: Windows service interract with desktop but WinHelp er
От: vitbo  
Дата: 25.02.10 10:27
Оценка:
Ну что ж, большое спасибо!!
Оказалось то что нужно.
Единственное, вместо
WTSGetActiveConsoleSessionId
которая берет сессию физической консоли, а она не всегда та, где сервис, вызываю
ProcessIdToSessionId
А вызов "подпроцесса" как раз и предполагался — конфигуратор из под сервиса, которому и нужен F1.
Так что еще раз спасибо... Неделю мучался в отладчике...
Re[3]: Windows service interract with desktop but WinHelp er
От: IID Россия  
Дата: 25.02.10 10:31
Оценка:
Здравствуйте, vitbo, Вы писали:

V>Спасибо конечно за подробную "инструкцию"....

V>Но жду конструктивных ответов.... или фразы "невозможно".
V>Система закрытая, кроме администратора никого нет, интернета нет...

Тогда зачем ему интерактивный Help ? И вообще зачем интерактивность ? Пусть конфиги правит.
kalsarikännit
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.