Вторник, 10.02.2026, 08:51
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · RSS ]
  • Страница 1 из 1
  • 1
ОБЩИЕ ПРИНЦИПЫ РАБОТЫ РУТКИТА
ASHKENSOДата: Воскресенье, 27.02.2011, 18:28 | Сообщение # 1
Полковник
Группа: Администраторы
Сообщений: 331
Репутация: 10000
Статус: Offline
Мы уже знаем, что любой «приличный» руткит должен уметь скрывать процессы,
файлы и разделы реестра. Как он это делает? Рассмотрим сокрытие
процессов - сокрытие файлов и реестра выполняется аналогично.

Предположим, системный администратор вводит команду tasklist, выводящую
список процессов. Согласен, в наше время не каждый администратор
знает о существовании такой команды. Тогда предположим, что он нажимает
«Ctrl» + «Alt» + «Del», чтобы вызвать Диспетчер задач Windows. В любом
случае он хочет увидеть список выполняемых в данный момент процессов.

Для вывода списка процессов код программы (tasklist или Диспетчера задач)
должен вызвать системную API-функцию, которая возвращает список выполняемых
системы (например, та же функция NtQuerySystemlnformation
из библиотеки n t d l l . d l l ) . Функция NtQuerySystemlnformation, в
свою очередь, вызывает функцию ZwQuerySystemlnf ormation - это функция
уровня ядра, использующая прерывание Windows (INT 0x2E). Функция
уровня ядра напрямую обращается к памяти ядра и получает из структуры
PsActiveProcessList список выполняемых процессов, который впоследствии
передается «наверх» (на пользовательский уровень) и программа,
вызвавшая функцию NtQuerySystemlnformation, выводит его на экран.
Руткит может вмешаться в работу
программы когда угодно. Он
может, например, перехватить результат,
возвращаемый функцией
ZwQuerySystemlnformation, и,
модифицировав его (удалив из
списка процессов нужные ему
процессы), передать измененный
список функции NtQuerySystemlnformation.
Он может также
вмешаться в работу функции
NtQuerySystemlnformation,
чтобы она вывела такой результат,
какой ему нужно. Это проще, но в
этом случае больше риск обнаружения
руткита.
И вообще, чем ниже уровень, на
котором работает руткит, тем
меньше вероятность его обнаружения.
Наконец, руткит может
работать на нулевом кольце защиты и модифицировать саму структуру
PsActiveProcessList. В этом случае его практически невозможно обнаружить,
пока он находится в памяти.
Второй способ запутать антируткитные средства - это действовать от имени
другого процесса. Можно, например, модифицировать файл explorer. ехе,
чтобы он считывал список автоматически выполняемых программ не из
ключаНКСи[НКЬМ]\Software\MicrosoftWindows\CurrentVersion\Run,
а из какого-либо другого. Конечно, для модификации Проводника нужно
отключить службу защиты файлов Windows, но при наличии прав администратора
(а я уже отмечал, что большинство Windows-пользователей работают
в системе с правами администратора) этого несложно добиться - даже не
придется перезагружать Windows.
Руткиты (как в Windows, так и в Linux) бывают двух типов: руткиты
пользовательского уровня (user level), работающие в адресном пространстве
прикладных программ, и руткиты уровня ядра (kernel level), использующие
системную память.
Также руткиты делятся по способу реализации:
• руткиты, модифицирующие путь исполнения;
• руткиты, напрямую модифицирующие объекты ядра.

 
  • Страница 1 из 1
  • 1
Поиск: