CreateRemoteThread + Win7 + Системный процесс

Тема в разделе "WASM.WIN32", создана пользователем slesh, 27 фев 2011.

  1. slesh

    slesh New Member

    Публикаций:
    0
    Регистрация:
    6 фев 2009
    Сообщения:
    214
    Собственно говоря странность какая-то тварится. Программа выполняет следующие действия:
    1) Получаются отладочные привилегии
    2) Открывается процесс, внедряется туда имя dll файла (через NtMapViewOfSection)
    3) Запускается удаленный поток с адресом LoadLibraryA и параметром - адресом куда была отображена секция.
    4) Далее ожидается завершение потока и получение кода возврата.

    на Windows XP работает отлично. На Windows 7 тоже отлично, если идет внедрение в пользовательский процесс (explorer к примеру), но вот при попытке тоже самое сделать для svchost/services/lsass CreateRemoteThread возвращает ноль, а GetLastError = 8 (ERROR_NOT_ENOUGH_MEMORY)

    Секция маппится с правами PAGE_EXECUTE_READWRITE. (хотя достаточно будет и просто RW)
    Процесс открывается с правами PROCESS_ALL_ACCESS
    Программа запускается под админом + наивысший уровень UAC
    CreateRemoteThread запускал и с указанием размера стека(1 мегабайт) и без указания (0) всё равно не помогает.
    Через отладчик проверял - данные точно есть в процессе и права доступа RWE
    У кого какие предложения будут?
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    у MSDN есть предложение:
     
  3. slesh

    slesh New Member

    Публикаций:
    0
    Регистрация:
    6 фев 2009
    Сообщения:
    214
    Спасибо. буду копать тогда другой способ.
     
  4. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Попробуйте перекл. контекста, раз права соответствующие есть (открыти е процесса и запись)
     
  5. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    Тебе выше дали ссылку на MSDN.
    Проблема решается или использованием RtlCreateUserThread() вместо CreateRemoteThread() или патчингом CsrClientCallServer() в контексте своего процесса.
     
  6. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    проще сервис стартануть и оттуда инжектиться уже