Уничтожение защищённого процесса

Тема в разделе "WASM.NT.KERNEL", создана пользователем haxorart, 29 ноя 2010.

  1. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    MSoft
    Не обращай внимания, у них комплексы.
     
  2. sysexit

    sysexit New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2010
    Сообщения:
    176
    А кто вам разрешит драйвер загрузить?
     
  3. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    бохацэ
     
  4. slesh

    slesh New Member

    Публикаций:
    0
    Регистрация:
    6 фев 2009
    Сообщения:
    214
    ну если ты в ядре нашел EPROCESS нужный, то делай аттач к нему и затирай всю его память, сам сдохнет потом.
     
  5. sysexit

    sysexit New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2010
    Сообщения:
    176
    А с BSoD что, их разве не будет при использовании таких грубых методов?
     
  6. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    slesh
    Читаю Вашу статью
    Inject DLL в Explorer из kernel-mode
    Ну хоть что-то появляется по теме!
    Остальные шифруются.

    Если можно, бросьте собранный драйверок
    по этой статье. А может с сорцами - если не жалко?
    Очень хотелось бы разобраться!
    Хотел по-запускать, по-собирать по кускам ...
    У самого опыта мало.
    Спасибо.
     
  7. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.548
    Адрес:
    Russia
    sysexit
    Откуда бсод, если затрут память юзермода?
     
  8. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    В условии задачи мы имеем некий неизвестный драйвер, который защищает этот процесс, бсоднуть может он.
     
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.548
    Адрес:
    Russia
    haxorart
    Если драйвер бсоднет при исчезновения процесса - это PoC, ну как минимум DOS :) И вообще дыра размером в огромную ж.
    Вот так вот.
     
  10. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    А разве такого нее может быть если мы пытаемся удалить из системы криво написанный вирус с огромной дырой в драйвере? Хотя метод можно использовать как последний рубеж.
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.548
    Адрес:
    Russia
    haxorart
    А драйвер вам просто могут не дать выгрузить. Тогда Какой смысл убивать и маяться боясь уронить систему? Ребут и ищем гада из лафсиди. Удаляем.
    Как бэ - а что вам надо ? Просто убить процесс, или отрубить защиту процесса, или убить процесс и чтоб бсода небыло (зачем?). Кстати возможно если будет бсод - его можно будет избежать. Для этого понадобиться WinDBG и хорошие знания ядра. Можно восстановить ручками (попытаться по крайенй мере, ибо может там похерилось все, что только можно) трапфрейм и вернуть управление в ядро.
    Если же вы убиваете какую то HIPS - то вы бы хоть сказали какую.
     
  12. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Мой первый пост)))
    >Задача: есть процесс он невидим и зашищён от удаления драйвером. Предположим найти PID процесса и его EPROCESS мне удалось. Как можно уничтожить этот процесс или остановить его не снимая хуки и не выгружая сам драйвер? Какие методы существуют? Использовать DKOM или как? Пример процесса: касперский. (!!!)Пишу программу для поиска и удаления скрытых процессов в системе. Спасибо за внимание.
     
  13. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.548
    Адрес:
    Russia
    haxorart
    Ну вот вам посоветовали. А то, что ваше условие "не выгружая сам дров" само по себе является косяком - так как дров действительно может даже специально бсоднуть.
     
  14. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Да, тут предложили 3 очень хороших метода, за что людям большое спасибо. На счет невыгрузки драйвера пока начну с простого, далее как пойдёт(задачи должны быть выполнимы). Тема ещё жива только лишь потому, что может кто-нибудь предложит что-нибудь совсем оригинальное, т.к. мне кажется этот топик будет интересен не только мне.
     
  15. haxorart

    haxorart New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    123
    Вообще PsTerminateProcess вызывает PspTerminateProcess. Искать можно из цепочки NtTerminateJobObject->PspTerminateAllProcessInJob->PspTerminateProcess.

    NtTerminateJobObject->PspTerminateAllProcessInJob:
    Тут небольшие сложности разные сигнатуры. К примеру:
    xp sp3
    push 0
    push [ebp+ExitStatus]
    push ebx
    call _PspTerminateAllProcessesInJob@12

    win 7
    push 0
    push [ebp+ExitStatus]
    push [ebp+Event]
    call _PspTerminateAllProcessesInJob@12

    то есть либо сигнатурным поиском ищем
    push 0
    push [ebp+ExitStatus]

    а дальше либо дизассемблером либо сигнатурным поиском ищем адрес call'а.

    PspTerminateAllProcessInJob->PspTerminateProcess

    А дальше опять либо дизассемблером либо сигнатурным поиском ищем

    call _PsTerminateProcess@8 / call _PspTerminateProcess@8
    test eax, eax

    Так как 1 вызывает 2ю этот метод должен работать.

    P.S. PspTerminateThreadByPointer ищется намного проще и всё в конечном счете сводится к ней.
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    haxorart
    Не пишите эту ахинею.
     
  17. sn0w

    sn0w Active Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    956
    Понизить IRQL, и создать бесконечно ожидаемое событие для потока

    This snippet will lower the IRQL (not nec unless in DISPATCH_MODE or greater, but safe if you're not sure). Create an event and then wait for it (infinitely). As the event never gets triggered, the thread will never run again *sniff ;(, poor thread*. If you do want it to run at a later time, simply trigger the event.
    (с) willcodeforfood, forum.exetools.com

    Код (Text):
    1. LARGE_INTEGER TotalTime = {0,0};
    2. KeLowerIrql(0);
    3. KeInitializeEvent(&NonEvent, NotificationEvent, FALSE);
    4. status = KeWaitForSingleObject(
    5. &NonEvent,
    6. Executive, //Suspended,
    7. KernelMode,
    8. TRUE,
    9. &TotalTime
    10. );