Передача прав.

Тема в разделе "WASM.WIN32", создана пользователем Zero Ice, 3 дек 2005.

  1. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    Мне необходимо передать привилегии для работы с реестром, дровами и дебаг приложеню, которе запущено от имени гостя. (т.е. без прав)

    Мне пришла светлая идея (а светлая ли?) создать сервис, который ждет появление пайпа, читает из пайпа PID клиента и дает ему все права (OpenProcess, OpenProcessToken, AdjustTokenPrivileges).

    Клиент создает трубу, передает PID. Сервис "дает" права, все проходит как по маслу, ни одной ошибки, но прав клиент не получает. Пробовал запускать клиента от админа - всё ок. Дебаг клиент получает (и дебаггит), а от гостя - нет. В чем может быть дело?
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
  3. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    Да, гестовый юзер запускает приложение и приложению нужны права (дебаг, реестр, дрова). Сервис должен по идее их предоставлять (путем AdjustTokenPrivileges), но этого не происходит. Почему? Как дать права "бесправному"?
     
  4. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    2Ms Rem пасса нет. А пайпы прикрыли или нет? ImpersonateNamedPipeClient проваливается.
     
  5. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    Сервис - мой. Значит он может делать всё, что надо для приложения клиента. Он может дать ему права? :)
     
  6. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    Вот этого ответа я и ожидал :)

    Может ещё кто-то что-то скажет и всё будет руль :lol:

    А пока остановлюсь на передаче инфы через сервис.
     
  7. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    Zero Ice

    что-то я не понял, из-за чего весь сыр бор и головняк ??? если у тебя есть посвещённый в дела сервис, ну и что тебе стоит перехватить CreateProcess либо NtCreateProcess из сервиса, вернуть код удачного результата, а тем временем процесс запускается самим сервисом и в наследство получает всё, что ему надо. Не понимаю, над чем тут голову ломать???
     
  8. DelExe

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165




    Блин. Ребята. Не страдайте хернёй. Сервис получает токен жертвы. Дальше он может что угодно может делать с этим токеном - понижать, повышать привилегии, опускать по групах, поднимать до SID системы.

    А попроще - CARDINAL

    прав. Пусть процес скажет сервису, что он хочет пи-пи и тихо умрёт. Сервис запустит процес с десктопом \WinSta0\Default и все дела - процес теперь почти ничем не хуже сервиса.
     
  9. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    2DelExe



    пример получения всего и вся через токен есть? Вот это я уже ищу кучу времени.
     
  10. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    2CARDINAL



    У меня есть вообще тогда дурацкий вопрос:

    Сервис зареган с SERVICE_AUTO_START. Когда админ загружает машину и заходит под своим акком, то сервис светится в списке процессов. Затем смена пользователя (админ не выходит) и у гостя сервиса в списке процессов нет, но сервис работает. Теперь прога говорит, что хочет сдохнуть и сервис запускает новую копию со своими правами. Но привелигированная прога создается на десктопе админа. 8) Вопрос тупой - как фиксить?
     
  11. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    Есть прога, которая должна регать дрова и дебаггить. Если мы запускаем её под админом - то проблем нет. Все она сама полчит и будет дабаггить. А что делать, если её запусить под гостем? Как получить права на дебаг и загрузку дров?
     
  12. DelExe

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165




    Да никак. Я знаю три стандартных десктопа: дефолтный, Winlogon, и хранителя экрана. Запусти на Winlogon-e.







    Чем тебе тогда Run As... не подходит ?
     
  13. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    а как по токену привелегии поднять? :)



    Если CreateProcessAsUser, то чей токен передавать? Сервиса? Если да, то как отоброзить прогу на рабочем столе гостя?
     
  14. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    2A_Must_Loll



    А пальцы гнуть нравиться? :lol:

    Была бы инфа, выложил бы.
     
  15. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    что проверять-то?

    CreateProcessAsUser с токеном сервиса создаст прогу с окошком на столе админа (а мне надо чтобы окошко было на рабочем столе того юзера, кто запустил прогу, а не сервис)

    А файловая система какое имеет отношение к вопросу? Есть все от FAT16 до NTFS
     
  16. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    :lol: DDDDDDDDDDDDDDDDDDDDDDDDDDDDD

    Супер! :lol: DDD

    Вот это ты порадовал старика :lol:

    Взгрел, так взгрел! :lol: DD

    Прочти пост Кардинала :) Вон он по теме сказал (только я не знаю как сделать окошко видимым (а то оно видно только админу 8))))).
     
  17. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    А имя токены, привилигированный процесс и прочее нельзя поднять привелегии? Вообще никак? :)

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

    DelExe New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2005
    Сообщения:
    165
    Zero Ice

    1) Завтра получишь код для работы с токенами.

    2) Имперсонализация - рулез. Учитывая то что хотя она работает пусть и с потоками, но всё же это маркеры доступа. Было бы желания, можно сделать и такое. Ms Rem не даром ссылку дал.

    3) Run As... это Run As...

    4) Юзать поиск ещё никто не запрещал, а наоборот это дело поощряеться. В Сети куча кода по работе с токенами. Исключением даный ресурс тоже не являеться.

    5) Сначала пробуй, а потом спрашивай. Таким образом получаешь опыт. Готовые решения ещё никому добрую службу не сослужыли.



    P.S. Насчёт гнутых пальцев - некоторые люди имеют на это право, так же как и ты задавать вопроссы, главное не переусердствовать.
     
  19. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    2DelExe



    Agree. 100%.

    В сети искал инфу, но связанную с процессами... Вот то, что ты сказал про потоки - очень интересно. Я об этом не думал (Щаз тоже поищу сам). Ссылка тоже классная, но RunAs я не знаю как прицепить к этой задаче.
     
  20. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    2DelExe



    TNX! Самый рульный пост по теме :)



    OpenProcessToken(GetCurrentProcess,TOKEN_ALL_ACCESS ,&tokenh);

    DuplicateToken(tokenh,SecurityImpersonation,&tokenh);

    SetThreadToken(&htid,tokenh);



    Done.