Запуск процесса

Тема в разделе "WASM.WIN32", создана пользователем AntiB, 4 дек 2009.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброе время суток!

    У меня назрел вопрос: как можно запустить процесс от другого пользователя не имея пароля и логина пользователя? (мой процесс имеет права SYSTEM) и я знаю что пользователь уже зашел в систему

    Заранее Спасибо!
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Найти токен этой учетки (выдрать у процесса, запущенного под этим пользователем) и запускать новый процесс с этим токеном. Хотя я не пробовал, чисто предположение
     
  3. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    xp+

    WTSGetActiveConsoleSessionId
    WTSQueryUserToken
    CreateEnvironmentBlock
    CreateProcessAsUser
    DestroyEnvironmentBlock
     
  4. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Great
    как найти процесс запущенной под учеткой? CreateToolhelp32Snapshot - это понятно, но как определить учетную запись под которой запущенной процесс ?
    djmans
    WTSQueryUserToken - из за некоторых причин, не могу юзать функцию.
    CreateEnvironmentBlock - как я понял нужно создавать, а удалять нужно сразу после создание процесса или нужно ждать пока процесс закроется?

    Заранее Спасибо!
     
  5. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    >как определить учетную запись под которой запущенной процесс ?
    GetTokenInformation(TokenUser), GetTokenInformation(TokenSessionId) и т.д

    >а удалять нужно сразу после создание процесса или нужно ждать пока процесс закроется?
    сразу, оно просто скопируется в новый процесс и более не нужно.

    Те интерактивный юзер нужен или нет?
     
  6. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    AntiB
    То базу fs найти без выполнения инструкций, то функции вызывать нельзя... Таки каковы причины невозможности вызова WTSQueryUserToken, если не секрет?
    Ещё набор:
    OpenProcessToken, DuplicateTokenEx; NtCreateToken [SeCreateToken privilege]; CreateProcess(SUSPENDED) + NtSetInformationProcess(ProcessAccessToken) [SeAssignPrimaryToken privilege].
     
  7. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    djmans
    да, интерактивный
    Sol_Ksacap
    так как возвращает мне ошибку. А с OpenProcessToken, DuplicateTokenEx уже разобрался :)

    Осталось только найти подходящий процесс и взять его токен.
     
  8. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    >так как возвращает мне ошибку.
    так и нужно писать. я вспомнил еще что, вроде тебе нужно предварительно переключиться на активный десктоп(SetThreadDesktop). а потом уже юзать WTS*.