Службы. Как отловить вход и выход пользователя

Тема в разделе "WASM.BEGINNERS", создана пользователем BORYAK, 26 ноя 2007.

  1. BORYAK

    BORYAK Боран

    Публикаций:
    0
    Регистрация:
    22 апр 2005
    Сообщения:
    33
    Адрес:
    Kazakhstan
    Здравствуйте, господа!
    Как отловить вход и выход пользователя в службе Windows?
     
  2. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    может тебе поможет "события виндовс"? там написано какая служба и когда запукается.

    а также каким юзером и когда вход и выход...
     
  3. BORYAK

    BORYAK Боран

    Публикаций:
    0
    Регистрация:
    22 апр 2005
    Сообщения:
    33
    Адрес:
    Kazakhstan
    что именно вы имели ввиду?

    Вообще-то мне нужно отлавливать все виды сеансов, включая неинтерактивные, т.е. типа RunAs и т.д.

    Если я вас правильно понял, то события от SCM ограничены
     
  4. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    Это имел ввиду:

    Выход из процесса:
    Код процесса: 3888
    Имя файла рисунка: C:\WINDOWS\system32\verclsid.exe
    Пользователь: Admin1
    Домен: Hackerz
    Код входа: (0x0,0x113DD)
     
  5. Cock

    Cock New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    148
    Смотри обработчик HandlerEx ищу в мсдн, теюе все скажут и сессион айди и даже имя пользователя и тип входа, - интерактивный или другое
     
  6. BORYAK

    BORYAK Боран

    Публикаций:
    0
    Регистрация:
    22 апр 2005
    Сообщения:
    33
    Адрес:
    Kazakhstan
    Cock
    MSDN
    SERVICE_CONTROL_SESSIONCHANGE
    Windows 2000/NT: This value is not supported.
     
  7. Cock

    Cock New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    148
    BORYAK
    Ну так в вопросе версии Ос не уточнялись
     
  8. BORYAK

    BORYAK Боран

    Публикаций:
    0
    Регистрация:
    22 апр 2005
    Сообщения:
    33
    Адрес:
    Kazakhstan
  9. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    BORYAK
    так тебе ЛогонСессии или "вход и выход"
    открытие-закрытие ЛогонСессий я ловлю в драйвере
    точнее закрытие документированно ловится через SeRegisterLogonSessionTerminatedRoutine
    а вот открытие - это ноу-хау :)
     
  10. BORYAK

    BORYAK Боран

    Публикаций:
    0
    Регистрация:
    22 апр 2005
    Сообщения:
    33
    Адрес:
    Kazakhstan
    z0mailbox
    сэнкс за уточнение.
    Мне нужен вход и выход сессий (интерактивных, терминальных, а также создаваемых налету через runas etc.)
     
  11. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    BORYAK
    понятно, драйвер здесь не нужен
    пишешь свой Authentication Package, как здесь расписано
    http://msdn2.microsoft.com/en-us/library/aa374733.aspx
    это такая длл-ка получицца, после ребута грузящаяся в ЛСАСС
    там ей при ините дадут немаленькую такую таблицу указателей на функции типа внутреннего АПИ
    если кое-какие из них похучить - будешь иметь всю инфу об этих сессиях
    но имей в виду - ЛСАСС это такой особый процесс и длл-ки в нем пишутся не студентами
    шаг влево, шаг вправо - ребут в 60 секунд без возможности апелляции :)
     
  12. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    z0mailbox
    Ну вообще AFAIK с возможностью. "Ребут в 60 секунд" производится процессом winlogon, поэтому TerminateProcess на него - вот и вся апелляция. А чтобы smss.exe не сгенерировал BSOD, не досчитавшись winlogon, то предварительно TerminateProcess на smss.exe.
     
  13. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    l_inc
    хоть тушкой хоть чучелком :)))
     
  14. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Ну или посмотреть к чему сводится команда"shutdown.exe -a"
     
  15. BORYAK

    BORYAK Боран

    Публикаций:
    0
    Регистрация:
    22 апр 2005
    Сообщения:
    33
    Адрес:
    Kazakhstan
    этого я и боялся. Неужели нет простых путей?
     
  16. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    BORYAK
    Можно попробовать в джине похучить че-нить. Но там я не уверен нащет рун-аз
    Здесь точно 100% попадание
     
  17. rommanio

    rommanio New Member

    Публикаций:
    0
    Регистрация:
    4 май 2008
    Сообщения:
    151
    Кстати, похожий вопрос.
    Как можно в win2k/XP принудительно, не спрашивая пользователя, выбросить его из системы? Тоже писать Authentication Package? Или есть менее радикальное решение?
    Вариант ExitWindowsEx() не предлагать, т.к. 1). она выбрасывает пользователя, который ее вызвал и 2). выводит сообщение вида "Действительно выйти из системы?".
    Извините, если неудачно апнул тему!
     
  18. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    что значит "выбросить его из системы?" - типа Logoff в таскманагере на вкладке Users ?
     
  19. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Код (Text):
    1. BOOL WTSLogoffSession(
    2.   __in          HANDLE hServer,
    3.   __in          DWORD SessionId,
    4.   __in          BOOL bWait
    5. );
    So,
    WTSLogoffSession(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, FALSE);
    (Есть ещё менее жёсткое - без закрытия сессии - решение: WTSDisconnectSession).
     
  20. rommanio

    rommanio New Member

    Публикаций:
    0
    Регистрация:
    4 май 2008
    Сообщения:
    151
    Это, однако, работает только со включенными Terminal Services :dntknw:
    А в w2k prof какой, на фиг, TS?
    Но все равно - спасибо! :)