На днях в антивирусную лабораторию попал очень интересный сампл — даунлоадер, содержащий в себе два драйвера, и скачивающий фальшивый антивирус, как под платформу PC, так и под MacOS. Этот зловред загружается и устанавливается на машину пользователя при помощи эксплойт-пака “BlackHole Exploit Kit”. Последний, в свою очередь, содержит эксплойты, использующие уязвимости в JRE (CVE-2010-0886, CVE-2010-4452, CVE-2010-3552) и PDF.
Оба драйвера — типичные руткиты с богатым функционалом. Один из них — 32-битный, а второй — 64-битный. Особенность последнего состоит в том, что он подписан т.н. тестовой цифровой подписью. Если Windows, семейства Vista и выше, была загружена с ключом ‘TESTSIGNING’, то приложения смогут загружать драйвера, подписанные тестовой подписью. Это специальная лазейка, которую оставила Microsoft для разработчиков драйверов, чтобы те могли тестировать свои творения. Этим-то и воспользовались злоумышленники — они выполняют команду ‘bcdedit.exe –set TESTSIGNING ON’, что позволяет им запустить свой драйвер без легальной подписи.
Сказанное ниже относится к обоим руткитам — их функционал полностью идентичен, различаются только лишь платформы. Если драйвер успешно загрузился и работает в системе, то избавление от него стоит многого. Руткит блокирует запуск драйверов, относящихся к антируткитам и продуктам AV-вендоров. Для этого используются списки с названиями файлов конкретных драйверов и строки, по которым будет производиться поиск в секции Security массива DataDirectory загружаемого образа. Если руткит обнаруживает загрузку «недоверенного» драйвера, то в образе последнего изменяются байты на точке входа, что исключает его корректный запуск.
Фрагмент руткита, содержащий строки, по которым производится
блокировка загрузки антивирусных драйверов
«Головное» приложение руткит защищает при помощи перехвата ZwOpenProcess / ZwOpenThread в SDT (только на 32-битных версиях Windows) и установки object manager callback`ов на доступ к «доверенным» приложениям. Также, мониторится файловая система, с помощью подключения к стэкам файловых систем, и реестр — при помощи установки registry callback`ов.
Данный руткит — очередной живой пример (после TDSS) того, что для реализации руткит-функционала на 64-битных платформах нет необходимости в обходе Patch Guard-а.
Сам даунлоадер написан на языке C++, ничем не защищён. Основная его задача — установить и запустить соответствующий драйвер (32- или 64- битный), скачать и запустить файл по одному из URL`ов. Самое интересное, что по одной из ссылок располагается Hoax.OSX.Defma.f, про который мы совсем недавно писали. И что самое главное — зловред пытается его запустить … под Windows (!). По-видимому, разработчики новейшего ложного антивируса под MacOS активно его распространяют через посредников. А последние, в свою очередь, не сильно разбираются, что им предлагается установить на компьютерах пользователей.
Фрагмент кода зловреда, выполняющий загрузку и запуск файла
«Лаборатория Касперского» успешно детектирует и обезвреживает загрузчик Trojan-Downloader.Win32.Necurs.a и соответствующий руткит Rootkit.Win32.Necurs.a / Rootkit.Win64.Necurs.a.