На днях экспертами Лаборатории Касперского были обнаружены новые экземпляры вредоносной программы MAX++ (он же ZeroAccess). Этот троянец и ранее был известен тем, что использовал передовые rootkit-технологии для скрытия своего присутствия в системе. Если раньше Max++ работал только под платформу x86, то теперь же он способен работать и на x64 системах!
Заражение пользователей происходит с помощью drive-by атаки на браузер и его компоненты через набор эксплойтов Bleeding Life. В частности, атаке подвергаются модули Acrobat Reader (CVE 2010-0188, CVE 2010-1297, CVE 2010-2884, CVE 2008-2992) и JAVA (CVE 2010-0842, CVE 2010-3552).
Фрагмент кода эксплойт-пака,
отвечающий за атаку на определенную версию Acrobat Reader
В случае если компьютер пользователя окажется уязвимым перед эксплойтами, то в системе обоснуется троянский загрузчик MAX++. Этот загрузчик определяет разрядность системы, на которой он запущен и, в соответствии с этим, загружает необходимый инсталлятор бэкдора MAX++ (Backdoor.Win32.ZAccess.a/Backdoor.Win64.ZAccess.b).
Фрагмент кода, определяющий разрядность ОС перед загрузкой
соответствующего инсталлятора бэкдора MAX++
Инсталлятор MAX++ под x86 не сильно отличается от своего собрата, но предыдущего поколения. При установке, он заражает системный драйвер (зараженные файлы детектируются нами как Rootkit.Win32.ZAccess.c) и загружает его в память, используя вызов ntdll!NtLoadDriver. Загрузка драйвера в память происходит с помощью параметра ImagePath в системном ключе реестра. В этом параметре содержится символьная ссылка на зараженный драйвер. Так же инсталлятор создает в «$windirsystem32config» файл, представляющий собой виртуальный том, форматированный в файловую систему NTFS, с которым работает драйвер вредоносной программы. На нем же и хранятся все модули бэкдора. Данный вариант MAX++ успешно работает на 32-разрядных ОС windows XP/2003 и Windows 7/2008.
Наиболее интересным является случай, если загрузчик был запущен на x64 системе. В этом случае на компьютер жертвы загружается инсталлятор бэкдора, который специально скомпилирован для работы на 64-разрядных системах. Этот бэкдор не содержит руткит, а представляет собой usermode-зловред, который повторяет работу руткита под x32 с той лишь разницей, что его компоненты представляют собой файлы и хранятся в «$windirassembly», имея сходную структуру каталогов. Автозапуск на x64 обеспечивается ключом реестра «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerSubSystems». Само тело бэкдора расположено в системной папке system32 с именем consrv.dll. Все модули, что бэкдор выкачивает после своей инсталляции, также предназначены для 64-битной платформы. Установка x64 MAX++ достигается путем внедрения в services.exe с использованием функции ntdll!NtQueueApcThread. Трудность лечения зараженной x64 системы связана с ключом автозапуска зловреда: если удалить файл, не исправив ключ реестра, то система уже не сможет загрузиться, а вместо этого будет выдавать BSOD на определённом этапе загрузки.
Загружаемые модули MAX++ могут выполнять разные действия – подмена поисковой выдачи, кликанье по ссылкам, скачивание по команде.
Продукты «Лаборатории Касперского» успешно защищают компьютеры пользователей от проникновения в систему MAX++. Эксплойты детектируются как HEUR:Trojan-Downloader.Script.Generic, а сам зловред обнаруживается как с помощью статичных, так и с помощью эвристических сигнатур.
MAX++ — атака на x64