Анализ CPL malware, часть 2

Тот факт, что в большинстве случаев URL-адреса хранятся в виде простого текста, либо ключ для их расшифровки располагается в самой функции расшифровки, позволяет нам извлекать эти URL-адреса автоматически из многих образцов CPL malware с использованием специального скрипта. В случае семпла, который хранит строки в виде открытого текста, строка с адресом может быть извлечена напрямую из CPL-файла. В противном случае, т. е. в случае, когда строка с адресом зашифрована, скрипт подвергает анализу функцию расшифровки, в которой хранится ключ. Исключение составили некоторые семплы вредоносного ПО, для которых скрипт не смог расшифровать зашифрованные строки. В таких семплах ключ расшифровки не был доступен в функции, а располагался в ресурсах CPL-файла. Для извлечения ключа оттуда вредоносный код использует стандартные API для работы с ресурсами: FindResource, LoadResource, SizeofResource and LockResource. Сам ресурс, в котором располагается ключ расшифровки, является зашифрованным.5372df68c15c423eb390f335443aa3ad.pngРис. Образец CPL malware с ключом для расшифровки строк в ресурсах.

Как мы уже упоминали выше, точка входа в библиотеку DllMain исполняется перед экспортируемой функцией CPlApplet и не содержит какого-либо вредоносного кода в большинстве семплов. Однако, в некоторых образцах, мы обнаружили специальный Anti-VM код, который позволял вредоносной программе обнаруживать среду виртуальной машины. Ниже на скриншоте показан фрагмент такого кода из DllMain.

94a96351f5224abd81d9f9de49d4ea83.pngРис. Фрагмент кода функции CPL malware, который выполняет проверку окружения ОС на предмет виртуальной машины.

Вышеупомянутый код отвечает за проверку окружения трех различных сред: Wine, VMware, Virtual PC. В случае присутствия какой-либо из них, происходит вызов функции save_str. Эта функция сохраняет в памяти строку, описывающую тип среды. В дальнейшем, код функции CPlApplet проверит содержимое этой строки при первом своем вызове. Присутствие идентификатора той или иной среды сигнализирует коду функции CPlApplet завершить свое исполнение без исполнения блока кода, который обрабатывает основное сообщение CPL_DBLCLK.

На рисунке ниже показан код проверки окружения Wine. Для этого происходит вызов функции GetProcAddress для получения адресов функций ntdll! wine_get_version и ntdll! wine_nt_to_unix_file_name. Очевидно, что такие экспорты отсутствуют в обычной системе.

919844768e5f4875952c3e04ef51a797.pngРис. Код проверки окружения Wine.

Ниже на аналогичном скриншоте показан код CPL malware из DllMain, который отвечает за проверку окружения VMware. Для этого используется хорошо известный механизм получения версии VMware с использованием портов ввода/вывода. Такая проверка возможна, поскольку код виртуальной машины перехватывает управление над инструкцией in процессора. Инструкция используется для взаимодействия виртуальной машины и ПО VMware, работающего в системе пользователя (хост). На скриншоте указаны аргументы этой инструкции, которые приводят к тому, что в качестве значение вызывающему коду в регистре ebx возвращается значение «VMXh».

b0bef45f827047168adfb7201f8b2aa3.pngРис. Код проверки окружения VMware.

Для Virtual PC проверка представлена ниже, при этом видно, что она выполняется за счет исполнение специальной инструкции процессора vpcext. В обычном окружении ОС, которое не выполняется в виртуальной машине, выполнение данной инструкции приведет к генерации исключения.

9f3334bfafb8413c9231ca885b648519.pngРис. Код проверки окружения Virtual PC.

Мы упоминали, что CPL malware используются как загрузчики или даунлоадеры для загрузки другого вредоносного ПО в систему. В нашем случае загружаемое вредоносное ПО представляет из себя банковский троян, хотя вместо него может использоваться и любой другой тип вредоносного ПО.

Мы наблюдали несколько семплов банковских троянов, которые загружаются CPL malware. Все они имели схожие характеристики. Один из исследованных нами образцов банкера имеет следующий SHA-1: 3C73CA6A3914A6DF29F01A895C4495B19E71A234. Этот исполняемый файл не упакован и обнаруженные там строки прямо свидетельствуют о выполняемых им функциях, они перечислены ниже в списке.

Отслеживание событий и перемещений курсора мыши, нажатых клавиш, а также раскладок клавиатуры. Например,»[enter]»,»[esp]», (spacebar),»[cima]» (up arrow),»[baixo]», (down). Функции обработки сокетов и работы с ними. Функции взаимодействия с удаленным сервером с использованием зашифрованного SSL-подключения. Обработка сообщений на португальском языке, которые относятся к операциям онлайн-банкинга. «Utilize o teclado virtual.» Поддержка различных сетевых протоколов, например, «ftpTransfer», «mailto:»,»://», «HTTP/1.0 200 OK». Сбор данных аккаунтов интернет-сервисов. Некоторые строки зашифрованы с использованием алгоритма, который использовался в семплах CPL malware. Ниже на скриншоте представлены такие строки. 4d0b91892cde490f99775724bb72b0e8.pngРис. Зашифрованные строки банковской вредоносной программы.Нам удалось расшифровать эти строки, и мы получили дополнительную информацию о том, какие функции исполняет банковский троян и на какие сервисы он ориентирован. Строки содержат следующую информацию.

Названия бразильских финансовых институтов и банков: Sicredi, Banco Itaú, Santander, Bradesco, bb.com.br (Banco do Brasil), Caixa. Поддержка компрометации следующих браузеров: Chrome, Opera, Firefox, IE, Safari. URL-адреса: «hxxp://www.sonucilaclama.com.tr/plugins/editors-xtd/pagebreak/oi/html/h/lg.php», «hxxp://www.cvicak-polanka.cz/b/notify.php», «hxxp://64.31.51.19/oi.txt» Отслеживание нажатия таких клавиш как »[Backspace]»,»[Page Up]»,»[Page Down]». Файлы данных и временные файлы. Строки различных User Agent. Команды типа «cmd /c taskkill /f /im dwm.exe /t». Таким образом, проанализированные банкеры включали в себя следующие возможности: внедрение вредоносного кода в определенные процессы, внедрение в легитимные веб-страницы поддельных форм и полей ввода текста, захват набираемых пользователем символов на клавиатуре и отслеживание курсора мыши, механизм зашифрованного взаимодействия с удаленным C&C-сервером.Ниже на диаграмме показана динамика распространенности вредоносных CPL-файлов, по данным вирусной лаборатории нашего латиноамериканского офиса.587f6a2b321f415782bce382a6cd9696.pngРис. Статистика вредоносных CPL-файлов в сравнении с другими DLL и EXE файлами.

На графике выше видна динамика и связь между типами исполняемых файлов в промежутке между 2009 годом и первыми месяцами 2015 года. С середины 2011 г. начался рост файлов CPL malware, поступающих в нашу вирусную лабораторию. Затем этот рост стабилизировался, но с середины 2013 г. возобновил свой тренд.

Ниже на диаграмме приведена статистика распределения вредоносных семплов CPL malware по годам. Видно, что только за 2013 и 2014 гг. количество таких образцов составляло 90% от общего потока таких вредоносных программ.

d07e6ffdc15b410892880240205525ba.pngРис. Распределение обнаружений CPL-файлов по годам.

Из более чем 1,5 тыс. образцов CPL malware, которые мы наблюдали, 82% обнаружений приходились на загрузчик Win32/TrojanDownloader.Banload. Это семейство вредоносных программ преобладало в Бразилии в течение многих лет. Наша система телеметрии ESET LiveGrid также указывает на Бразилию как на страну, которая больше всех пострадала от действий этой вредоносной программы (наибольшее количество заражений).

4de93436694147ab9048c6c20e97db28.pngРис. География распространения Win32/TrojanDownloader.Banload.

На диаграмме ниже можно увидеть процентное количество заражений Win32/TrojanDownloader.Banload в различных странах от общего количества. Видно, что на Бразилию приходится 76% всех обнаружений в 2014 г. Этот факт в очередной раз подтверждает нацеленность злоумышленников именно на этот регион. Второе место занимает Испания, на долю которой приходится в 11 раз меньшее число заражений чем на Бразилию.

2fdd096c38e341589cb68d570542b779.pngРис. Статистика обнаружений Win32/TrojanDownloader.Banload в мире.

Эта вредоносная программа также занимает первое место по уровню распространенности в Бразилии среди прочего вредоносного ПО. Ниже показан рейтинг угроз для этой страны за март 2015 г.

22bf1304f8f343a8b5856dd6deb20160.pngРис. Наиболее распространенные угрозы в Бразилии.

На протяжении нескольких вредоносных кампаний, которые использовались злоумышленниками для распространения банковских троянов, мы обнаружили 419 URL-адресов, в которых использовалось около 300 различных доменов. Все эти адреса указывали на файлы вредоносного ПО.

Из 298 таких доменов, которые мы наблюдали между 2013 и 2015 годами, 76 принадлежали скомпрометированным доменам Бразилии. Некоторые из вредоносных ссылок были укорочены с использованием сервиса типа bit.ly. Основываясь на информации, которая была собрана этими сервисами, нам удалось получить статистику переходов пользователей по этим ссылкам и, таким образом, получить потенциальное количество жертв вредоносной кампании. Сами злоумышленники использовали сервисы коротких ссылок с целью сокрытия от глаз пользователя настоящих URL-адресов, которые могли бы выдать намерения злоумышленников. Ниже на диаграмме показана статистика переходов по укороченным ссылкам за период с начала марта 2014 г. до февраля 2015.

ef57c0fa13e046f988fe6897bfd0c11b.pngРис. Количество переходов по укороченным вредоносным ссылкам.

В таблице ниже указана статистика переходов в случае нескольких укороченных ссылок, а также вредоносное ПО, которое с помощью них распространялось.

5b43bfdc28fa499ba6f2cd4a9155de15.png

Еще одна особенность, которую мы хотим выделить для этой вредоносной кампании и такого типа вредоносного ПО как CPL malware, представляет из себя статистику упаковщиков и протекторов, используемых злоумышленниками для усложнения обнаружения образцов вредоносной программы антивирусными решениями. Как видно, наиболее распространенным упаковщиком является UPX — 27%.

eec37aaad32c472ba57f0ff9a002047a.pngРис. Типы упаковщиков и протекторов, которые используются в CPL malware.

Заключение

Мы рассмотрели механизмы работы такого типа вредоносного ПО как CPL malware, а также некоторых банковских вредоносных программ, которые загружаются на компьютер пользователя этим типом вредоносного ПО. Для распространения CPL malware злоумышленники используют обычные методы доставки вредоносного ПО, которые ничем не отличаются от других случаев вредоносных кампаний.

Злоумышленники снабжают такой тип вредоносных программ специальными проверками для обнаружения окружения виртуальных машин. Кроме этого, они используют упаковщики и протекторы для усложнения обнаружения CPL malware со стороны AV-продуктов.

© Habrahabr.ru