Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #70, СЕНТЯБРЬ 2006 г.

Враг неведом

Зайцев Олег

Спецвыпуск: Хакер, номер #070, стр. 070-034-3


* Метод сигнатурного внедрения. Данный метод основан на том, что многие системные библиотеки почти не меняются от версии к версии. Следовательно, разработчик руткита может выбрать любое подходящее место для внедрения своего кода и затем динамически искать его при помощи сигнатур. Данный метод позволяет не только внедрять код в любую точку функции, но и производить вмешательство в работу функций без их явного перехвата путем патча машинного кода.

[kernel-Mode руткиты]

Kernel-Mode руткиты менее распространены (примерно на 5-10 руткитов UserMode приходится один KernelMode), однако их возможности гораздо шире. Главный плюс подобного руткита – глобальное воздействие на систему. По принципу действия, их можно классифицировать на несколько категорий:

* На основе правки адресов в KiST. Это самый распространенный метод перехвата, сводящийся к поиску таблицы KiST в памяти и правке адреса одной или нескольких функций. KiST размещена в SDT, адрес которой экспортируется ядром, так что это почти документированный метод перехвата. Описание методики перехвата с примерами можно найти в книге Свена Шрайбера «Недокументированные возможности Windows 2000».

* Модификация машинного кода перехватываемых функций. Метод полностью аналогичен модификации машинного кода в UserMode.

* Перехват вектора INT 2E и sysenter. Подобный перехват позволяет разом взять вызовы всех функций под контроль, что бывает удобно для глобального мониторинга системы.

* Драйвер-фильтр. Основан на фильтрации IRP и применяется чаще всего для маскировки файлов на диске.

В остальном (кроме метода перехвата функции и работы в Ring0) функционирование KernelMode руткита принципиально не отличается от UserMode – все тот же перехват функции для мониторинга ее работы и модификации входных параметров или результатов работы функции.

[DKOM, или как замаскироваться без перехватов]

DKOM-руткиты (DKOM расшифровывается как Direct Kernel Object Manipulation) основаны на том, что вместо перехвата функций они манипулируют объектами ядра в памяти. Это позволяет, в частности, достаточно эффективно маскировать запущенные процессы и загруженные библиотеки.

Наиболее популярной и известной реализацией DKOM-технологии является FU-руткит и его многочисленные клоны. Рассмотрим подробнее одну из наиболее простых задач – маскировку процесса. Маскировка процесса основана на том, что для каждого из запущенных процессов в системе существует структура EPROCESS. В этой структуре имеется два указателя — Flink и BLink, — которые указывают на последующую и предыдущую структуры, образуя двухсвязный список. Структура EPROCESS зависит от версии Windows, поэтому для корректной работы с ней необходимо либо заранее знать смещение интересущих нас полей, либо определять их каким-либо эвристическим методом. Мы пойдем простым путем: определим вмещения при помощи отладчика WinDBG.

Назад на стр. 070-034-2  Содержание  Вперед на стр. 070-034-4