Некоторое время назад в рамках слежения за активностью группы Winnti мы обнаружили подозрительный образец 64-битной программы. Оказалось, что это инструмент установки на компьютере буткита – HDD Rootkit. После установки буткита, на этапе начальной загрузки компьютера операционная система заражается бэкдором. О том, как работает установщик и сам буткит, который мы назвали HDRoot, рассказано в первой части статьи. Нам удалось обнаружить несколько вредоносных программ, которыми буткит заражал операционные системы. О них и пойдет речь в этой части статьи.
Бэкдоры
Так как бэкдор, запускающийся с помощью HDRoot, в принципе может быть произвольным, мы не можем знать, для какой вредоносной программы буткит HDRoot являлся бы стартовой платформой в каждом случае заражения этим буткитом. Но, по крайней мере, нам удалось определить два типа вредоносных программ, на запуск которых были настроены или настраивались буткиты.
Первый тип был извлечен вручную с жестких дисков компьютеров жертв, у которых был обнаружен HDRoot, и которые обратились к нам за помощью в борьбе с заражением. Бэкдор второго типа был обнаружен в некой сборке – приложение несло в себе и утилиту-установщик буткита HDD Rootkit, и сам бэкдор. Простым запуском этого приложения, без указания каких бы то ни было параметров, компьютер заражался буткитом, настроенным на запуск шедшего в сборке бэкдора.
Бэкдор 1-го типа: основной модуль
MD5 | Размер | Компоновщик | Дата компиляции |
C0118C58B6CD012467B3E35F7D7006ED | 113’152 | 10.00 | 2012-12-19 17:14:21 |
Свойство | Значение |
FileVersion | 6.1.7601.17514 (win7sp1_rtm.101119-1850) |
FileDescription | ProfSvc |
InternalName | ProfSvc |
OriginalFilename | ProfSvc.dll |
LegalCopyright | © Microsoft Corporation. All rights reserved. |
ProductName | Microsoft® Windows® Operating System |
CompanyName | Microsoft Corporation |
Это семейство вредоносных программ, известное как Derusbi для серверов. Программы этого типа мы нередко встречаем в случаях заражения, относящихся к активности группы Winnti. Обычно это библиотека DLL с внутренним именем OfficeUt32.dll и экспортируемыми функциями, наподобие таких:
DllRegisterServer
DllUnregisterServer
ServiceMain
SvchostPushServiceGlobals
WUServiceMain
__crt_debugger_hook
Основная библиотека включает в себя другие компоненты, обычно хранящиеся в шифрованном операцией XOR виде:
Структура хранения дополнительных модулей Derusbi
Найденные образцы Derusbi, которые запускались с помощью HDRoot, содержали лишь модуль удаленной командной строки и сетевой драйвер.
Бэкдор Derusbi имеет собственную функцию укрепления в системе, как правило – это экспортируемая функция «DllRegisterServer». Во время вызова в ней выполняются следующие действия:
- Программа копирует себя в каталог «%System32%wbem» под именем, начинающимся со строки «ntfs» + три случайных буквы, с расширением «.mof», например «ntfsqwe.mof»; устанавливает в атрибутах скопированного файла, соответствующих времени создания, доступа и изменения, 2005 год.
- В зависимости от версии Windows, программа прописывает путь к скопированному файлу в параметре реестра «ServiceDll», связанный либо с системной службой «iphlpsvc», либо «wuauserv», что позволяет запускаться вредоносной программе при старте системы; сохраняет оригинальное значение параметра «ServiceDll» в шифрованном виде в параметре «Security» в том же разделе реестра.
- В случае если вредоносная программа определяет, что запустилась на старте системы, она запускает оригинальную системную службу, вместо которой запустилась сама, читая путь к системной библиотеке из параметра «Security», заблаговременно сохраненный на этапе установки.
Вредоносная программа хранит свою конфигурацию в шифрованном виде в параметре реестра «Security» в разделе HKLMSOFTWAREMicrosoftRpc. Данные конфигурации включают уникальный идентификатор компьютера и сигнатуру для определения входящих сетевых пакетов от центра управления.
Бэкдор может соединяться с центром управления сам, если адрес центра указан в блоке настроек в теле бэкдора, либо работать в «слушающем» режиме, если адрес C&C не указан. Найденные образцы Derusbi, связанные с буткитом HDRoot, работали только в «слушающем» режиме.
Бэкдор 1-го типа: драйвер
MD5 | Размер | Компоновщик | Дата компиляции |
C8DAF9821EBC4F1923D6DDB5477A8BBD | 37’264 | 9.00 | 2012-12-19 17:08:53 |
Свойство | Значение |
FileVersion | 6.1.7601.17514 (win7sp1_rtm.101119-1850) |
FileDescription | Partition Management Driver |
InternalName | partmgr.sys |
OriginalFilename | partmgr.sys |
LegalCopyright | © Microsoft Corporation. All rights reserved. |
ProductName | Microsoft® Windows® Operating System |
CompanyName | Microsoft Corporation |
Драйвер подписан 19-го декабря 2012-го года в 17:11:14 украденным сертификатом южнокорейской игровой компании XL Games. Сертификат отозван 21 июня 2013-го года, его серийный номер: 7b:d5:58:18:c5:97:1b:63:dc:45:cf:57:cb:eb:95:0b.
Основная библиотека DLL расшифровывает руткит, сохраняет его на диске как файл «%System32%DriversLst_Update.sys» и запускает. Драйвер в самом начале работы удаляет все значения в реестре, которые создались в связи с его запуском, а также сам файл драйвера. Руткит скрывает вредоносную сетевую активность от популярных программ для мониторинга трафика, определяя собственный обработчик функционального кода IRP_MJ_DIRECTORY_CONTROL в объекте драйвера устройства «DeviceTcp» или «Drivernsiproxy». Также он прячет файл «windowssystem32wiarpc.dll» от приложений пользовательского режима, перехватывая обработку IRP_MJ_DIRECTORY_CONTROL в системном драйвере файловой системы «FileSystemNtfs».
Если вредоносная программа работает в «слушающем» режиме, руткит также участвует в процессе передачи данных между вредоносной программой и центром управления. Драйвер «слушает» весь входящий трафик и ищет среди сетевых пакетов помеченные специальным маркером. Если такой пакет найден, то драйвер перенаправляет его на слушающий сокет, открытый основным модулем в пользовательском режиме. Основной модуль создает сетевой сокет на случайном порту на всех сетевых интерфейсах. Когда руткит перенаправляет сетевой пакет с маркером, главный модуль его получает и обрабатывает. Такой сетевой пакет содержит код команды с данными и идентификатор модуля, которому эта команда предназначается. Известные нам версии вредоносной программы Derusbi могут иметь пять модулей с различными командами:
ID модуля | Поддерживаемые команды |
0x80 | Управление службами: список служб, создание, запуск, остановка и удаление служб. Управление процессами: остановка процесса, передача имени файла процесса или маркера доступа процесса. Управление реестром. |
0x81 | Удаленная командная строка: запуск программ или команд оболочки в зараженной системе. |
0x82 | Перенаправление портов, зараженный компьютер используется как прокси. |
0x84 | Работа с файловой системой, загрузка и выгрузка файлов. |
0x240 | Управление основным модулем: удалить вредоносную программу, остановить вредоносную активность, загрузка с удаленного сервера библиотеки и ее запуск в контексте своего процесса (библиотека при этом сохраняется как «%TEMP%tmp1.dat«), запуск прокси-сервера. |
Бэкдор 1-го типа: библиотека удаленной командной строки
MD5 | Размер | Компоновщик | Дата компиляции |
1C30032DC5435070466B9DC96F466F95 | 13’360 | 10.00 | 2012-12-19 17:12:12 |
Свойство | Значение |
ProductVersion | 6.1.2600.1569 |
ProductName | Microsoft®Windows®Operating System |
CompanyName | Microsoft Corporation |
FileDescription | Microsoft update |
FileVersion | 6.1.2600.1569 |
Как было отмечено ранее, кроме сетевого драйвера в найденных образцах Derusbi, связанных с HDRoot, был только один дополнительный модуль – удаленная командная строка. Основной модуль расшифровывает библиотеку с этим функционалом, сохраняет на диске под именем «%Systemroot%Helpperfc009.dat» и запускает. Это библиотека с внутренним именем Office.dll и одной экспортируемой функцией R32. Библиотека запускается такой командой:
rundll32.exe %Systemroot%Helpperfc009.dat R32 <случайное_число>
где <случайное_число> — это некое случайным образом сгенерированное основным модулем значение.
Библиотека удаленной командной строки создает два именованных канала для обмена данными с основным модулем:
pipeusb<случайное_число>i
pipeusb<случайное_число>o
Ожидается, что команда от оператора вредоносной программы для выполнения придет по каналу pipeusb<случайное_число>o. В этом случае создается новый процесс с рабочим каталогом %SystemDrive%. При создании процесса указывается, что его стандартный ввод берется из канала pipeusb<случайное_число>o, когда стандартный вывод и STDERR перенаправляются в параллельный канал pipeusb<случайное_число>i. Это означает, что команды для запущенной программы будут приходить от удаленного оператора, и ему же будут уходить результаты их исполнения, формируя эффективный канал удаленного доступа.
Бэкдор 2-го типа: дроппер
MD5 | Размер | Компоновщик | Дата компиляции |
755351395AA920BC212DBF1D990809AB | 266’240 | 6.00 | 2013-11-18 19:23:12 |
Мы обнаружили образец программы, который оказался, так сказать, установщиком в один клик бэкдора с использованием стартовой буткит-платформы HDRoot. Это приложение Win32, согласно данным из заголовка скомпилированное 18 ноября 2013-го года. Исполняемый файл содержит ресурсы «102» и «103» нестандартного типа «MHM». В этих ресурсах хранятся исполняемые файлы инсталлятора буткита HDD Rootkit и устанавливаемого бэкдора.
Роль устанавливаемого бэкдора играет исполняемый файл, хранящийся в ресурсе «102». Он сохраняется на диск как %windir%bootmgr.exe. (Забегая вперед, уточним, что по сути это не бэкдор, а загрузчик.) Установщик HDD Rootkit из ресурса «103» сохраняется на диск как %windir%hall32.exe. Затем дроппер запускает такую командную строку:
%windir%hall32.exe inst %windir%bootmgr.exe c:
что говорит установщику HDD Rootkit под именем hall32.exe установить буткит HDRoot на жесткий диск, где расположен диск C:, с последующим запуском в системе загрузчика bootmgr.exe.
В теле дроппера указаны и другие файлы, которые проверяются на наличие в файловой системе или которые вредоносная программа использует в своих промежуточных действиях:
%windir%system32midimapbits.dll
%windir%system32mpeg4c32.dll
%windir%bootmgr.dat
Загрузчик
MD5 | Размер | Компоновщик | Дата компиляции |
11E461ED6250B50AFB70FBEE93320131 | 69’632 | 6.00 | 2013-11-18 19:22:30 |
Загрузчик bootmgr.exe, также как и дроппер, был скомпилирован 18-го ноября 2013-го года. Согласно списку в теле загрузчика, он загружает файлы, обращаясь к следующим URL:
http://www.gbutterfly.com/bbs/data/boot1.gif
http://www.btdot.com/bbs/data/boot1.gif
http://boot.ncook.net/bbs/data/boot1.gif
http://www.funzone.co.kr/bbs/data/boot1.gif
http://www.srsr.co.kr/bbs2/data/boot1.gif
Если по какому-то из URL доступны данные, то они сохраняются на диск файлом под одним из следующих имен:
%windir%v3update000.exe
%windir%v3update001.exe
%windir%v3update002.exe
Загрузчик проверяет размер сохраненного файла и запускает его как исполняемый файл, только если его размер не меньше 20896 байт.
Как выяснилось, на самом деле это двойной загрузчик: в его теле хранится еще один образец программы с функционалом загрузки файлов со стороннего сервера. Вредоносная программа сохраняет этот второй загрузчик на диск под именем %windir%svchost.exe и запускает с параметром «install». По какой-то причине сразу после запуска второго загрузчика программа останавливает работу системной службы «Общий доступ к подключению к интернету» такой командой:
cmd.exe /c net stop sharedaccess
В теле загрузчика указаны следующие файлы, которые программа проверяет на наличие на компьютере:
%windir%system32midimapbits.dll
%windir%system32mpeg4c32.dll
%windir%winurl.dat
Второй загрузчик
MD5 | Размер | Компоновщик | Дата компиляции |
ACC4D57A98256DFAA5E2B7792948AAAE | 22’016 | 6.00 | 2013-11-18 19:06:32 |
Эта вредоносная программа принимает два параметра: «install» и «remove». Если получен параметр «install» (установка), она создает службу «Winlogon» с описанием «Provides automatic configuration for the 802.11 adapters» с опцией автозапуска при загрузке системы и указывает в качестве приложения для запуска путь к себе же. Если вредоносная программа запущена с параметром «remove» (удалить), то, очевидно, программа удаляет вышеописанную службу.
Работая как служба, вредоносная программа расшифровывает список URL (в основном, содержит только названия доменов), хранящийся в ее теле, и пытается загрузить контент по адресу, сформированному добавлением «default.gif» к URL из списка. Вот полный список адресов:
http://www.netmarble.net/
http://www.nexon.com/
http://www.tistory.com/start/
http://m.ahnlab.com/
http://www.joinsmsn.com/
http://fcst.co.kr/board/data/media/
http://www.hangame.com/
http://www.msn.com/
http://adw.naver.com/
http://www1.designrg.com/
http://www.topani.com/
http://www.nate.com/
http://www.v3lite.com/
http://www1.webschool.or.kr/
http://snsdate.gndot.com/
http://www.srsr.co.kr/bbs2/data/
http://funzone.co.kr/bbs/data/
http://www.moreuc.com/
http://www1.ncook.net/
Как можно увидеть, этот список содержит легальные и доверенные сайты, которые изначально вряд ли содержат что-то вредоносное. Можно предположить, что какой-то или какие-то из этих сайтов были взломаны, иначе вредоносная программа вообще была бы не функциональна.
Контент по ссылкам загружается в файл %windir%image.jpg. Но это лишь промежуточный этап всей загрузки. Ожидается, что сохраненный файл содержит текст, из которого вредоносная программа черпает необходимые данные. Первая строка файла должна содержать только число, и оно должно быть больше 139, иначе вредоносная программа прекращает этап разбора файла и переходит к следующему URL. Во второй строке должен быть указан URL, по которому программа попытается скачать приложение, а в третьей – имя файла, под которым приложение должно быть сохранено в системе. После получения файла загрузчик записывает в первые 2 байта файла строку «MZ», восстанавливая заголовок приложения, и запускает скачанную программу.
Одновременно с загрузкой вредоносная программа выполняет действия по удалению антивирусного ПО. Если по определенным путям в реестре найдена командная строка для удаления приложения, вредоносная программа запускает ее и, симулируя нажатия на кнопки пользовательского интерфейса в программе удаления, пытается удалить следующие антивирусные продукты V3 Lite и V3 365 Clinic от компании AhnLab и продукт ALYac от компании ESTsoft. Хотя по коду отрабатывает только процесс удаления упомянутых антивирусов, во вредоносной программе присутствует неактивная функция по избавлению от продуктов Naver Vaccine и McAfee Security Center. По стране происхождения упомянутых производителей однозначно определяется, что вредоносная программа предназначалась для целей из Южной Кореи.
В связи с тем, что загрузчики уже довольно старые, мы не смогли по соответствующим URL из обоих загрузчиков получить какой бы то ни было значимый материал. Сайты ничего не возвращали, либо сообщали об отсутствии файлов.
Ранние обнаружения HDRoot
Мы не первые среди антивирусных компаний столкнулись с работой буткита HDRoot. В конце 2013-го года южнокорейский производитель антивируса AhnLab выпустил качественный и объемный отчет о группе хакеров ETSO, основанный на экспертизе заражений, проведенной исследовательской командой компании. Вредоносные программы ETSO (по классификации AhnLab) в большинстве случаев совпадают с вредоносными программами, которые «Лаборатория Касперского» детектирует как Winnti. Во время расследований инженеры AhnLab обнаруживали на компьютерах жертв зараженные MBR, что, согласно описанию в отчете на страницах 14-15 главы «2.5 Maintain Network Presence», очень напоминает работу буткита HDRoot:
Также нам известно, что некоторые специалисты (необязательно из антивирусных компаний), которые занимаются проведением экспертиз в случаях корпоративных заражений, знакомы с инструментом HDD Rootkit.
К сожалению, хотя эта опасная угроза существует довольно давно, антивирусные продукты детектировали ее недостаточно эффективно.
Статистика
Как и ожидалось, по данным Kaspersky Security Network заражения HDRoot превалируют в традиционном регионе основного интереса Winnti – Юго-Восточной Азии, особенно в Южной Корее. Но другие части мира тоже находятся под угрозой, масштаб и серьезность которой могут быть существенными.
Обнаружения вредоносных программ, связанных с буткитом HDRoot
Отметим, что числа на карте не отражают характер атакованной цели. То есть, исходя из цифр на карте, мы не можем определить, какого уровня компании были атакованы злоумышленниками. Поэтому цифры на карте не всегда соответствуют реальному уровню угрозы в стране с точки зрения возможного ущерба.
Например, мы помогали двум весьма серьезным компаниям, одной из Великобритании, второй из России, избавляться от заражения. На серверах этих компаний с помощью наших продуктов был обнаружен буткит HDRoot. Ущерб от заражения в обоих случаях мог бы быть весьма значительным, особенно в России, где вследствие заражения могло пострадать множество клиентов атакованной компании. Между тем, на карте Россия представлена невыразительной единичкой, а Великобритания – 23 атакованными системами.
Несмотря на то, что мы не нашли большого числа вредоносных программ, запускаемых буткитом HDRoot, и ассоциируем эту платформу с Winnti, мы допускаем, что этот буткит может использоваться не только этой группой. Нам уже известно, что активность группы Winnti может пересекаться с активностью других APT-команд из Китая. К тому же установщик HDD Rootkit – это инструмент, не «привязанный» к инфраструктуре Winnti, и можно предположить, что этот установщик и собственно буткит используют и другие участники APT-сообщества в Китае.
Продукты «Лаборатории Касперского» детектируют вредоносные программы HDRoot со следующими вердиктами:
Hacktool.Win32.HDRoot
Hacktool.Win64.HDRoot
Rootkit.Win32.HDRoot
Rootkit.Win64.HDRoot
Trojan.Boot.HDRoot
Бэкдоры и загрузчики, связанные с буткитом HDRoot:
Backdoor.Win64.Winnti
Trojan.Win32.Agentb.aemr
Trojan.Win32.Genome.amvgd
Индикаторы заражения
Контрольные суммы образцов (MD5)
2c85404fe7d1891fd41fcee4c92ad305
4dc2fc6ad7d9ed9fcf13d914660764cd
8062cbccb2895fb9215b3423cdefa396
c7fee0e094ee43f22882fb141c089cea
d0cb0eb5588eb3b14c9b9a3fa7551c28
a28fe3387ea5352b8c26de6b56ec88f0
2b081914293f415e6c8bc9c2172f7e2a
6ac4db5dcb874da2f61550dc950d08ff
6ae7a087ef4185296c377b4eadf956a4
e171d9e3fcb2eeccdc841cca9ef53fb8
ae7f93325ca8b1965502b18059f6e46a
e07b5de475bbd11aab0719f9b5ba5654
d200f9a9d2b7a44d20c31edb4384e62f
cc7af071098d3c00fdd725457ab00b65
c0118c58b6cd012467b3e35f7d7006ed
c8daf9821ebc4f1923d6ddb5477a8bbd
755351395aa920bc212dbf1d990809ab
11e461ed6250b50afb70fbee93320131
acc4d57a98256dfaa5e2b7792948aaae
1c30032dc5435070466b9dc96f466f95
7d1309ce050f32581b60841f82fc3399
b10908408b153ce9fb34c2f0164b6a85
eb3fbfc79a37441590d9509b085aaaca
3ad35274cf09a24c4ec44d547f1673e7
f6004cfaa6dc53fd5bf32f7069f60e7a
c5d59acb616dc8bac47b0ebd0244f686
e19793ff58c04c2d439707ac65703410
4dc2fc6ad7d9ed9fcf13d914660764cd
8062cbccb2895fb9215b3423cdefa396
c7fee0e094ee43f22882fb141c089cea
d0cb0eb5588eb3b14c9b9a3fa7551c28
Файлы
%windir%twain.dll
%windir%systemolesvr.dll
%windir%msvidc32.dll
%windir%helpaccess.hlp
%windir%syswow64C_932.NLS
%windir%syswow64C_20949.NLS
%windir%syswow64irclass.dll
%windir%syswow64msvidc32.dll
%windir%syswow64kmddsp.tsp
%windir%tempsvchost.exe
%System32%wbemntfs<3 random chars>.mof
%System32%DriversLst_Update.sys
%Systemroot%Helpperfc009.dat
%windir%bootmgr.exe
%windir%hall32.exe
%windir%system32midimapbits.dll
%windir%system32mpeg4c32.dll
%windir%bootmgr.dat
%windir%v3update000.exe
%windir%v3update001.exe
%windir%v3update002.exe
%windir%svchost.exe
%windir%winurl.dat
%windir%image.jpg
Я есть HDRoot! Часть 2
Эдуард
Пожалуйста можете прислать несколько работающих вредоносных программ, использующих буткит HDRoot. Хочу протестировать антируткиты такие как: GMER, AVZ, PCHunter и другие, на возможность обнаружения данного буткита.