Банковское вредоносное ПО Win32/Caphaw (также известен как Shylock) использовался злоумышленниками при осуществлении атак на крупные европейские банки, которые продолжались более года. Эта угроза начала распространяться с осени 2011 г. Наш коллега Александр Матросов осуществил детальный анализ этого банковского трояна, и мы хотим представить наиболее интересные находки, сделанные в процессе этого анализа. Win32/Caphaw отличает от других подобных угроз тот факт, что это один из немногих троянов, который может автоматически похитить деньги с банковского счета, когда пользователь активно работает с этим счетом.
География распространения показывает, что Win32/Caphaw преобладает в Англии, Италии, Дании и Турции. Согласно нашей статистике ESET Virus Radar, периодом времени, на который приходится наибольшая активность этого трояна, является декабрь 2012 г. На следующем скриншоте приводится география распространения Win32/Caphaw за последнюю неделю (на момент исследования).
Рис. География распространенности Caphaw.
Бот
Win32/Caphaw обладает возможностями типичного банковского вредоносного ПО, а также имеет возможности по проверке среды, в которой его пытаются запустить. Такие проверки, очевидно, направлены на то, чтобы не допустить запуска дроппера в системе, предназначенной для автоматического анализа семплов. Мы обнаружили, что Caphaw внедряет свой код во все запущенные процессы, и имеет многопоточную архитектуру для исполнения задач, присылаемых от C&C. Этот код может использовать механизм межпроцессного взаимодействия (IPC) с использованием именованных каналов.
Рис. Создание потока, в котором будет осуществляться IPC взаимодействие.
Caphaw устанавливает множество перехватов для системных функций. Особенно интересной является функция-перехват для advapi32!InitiateSystemShutdownEx. Она может контролировать процесс перезагрузки и выключения системы, а также дает возможность вредоносному коду произвести свою повторную установку в системе.
Рис. Перехват функции advapi32!InitiateSystemShutdownEx. Производится повторная установка троянской программы в систему.
Все строки в теле Caphaw зашифрованы с использованием простого алгоритма.
Рис. Код расшифровки строк.
Caphaw осуществляет проверку окружения ОС на предмет того, пытаются ли его запустить в среде виртуальной машины (VMware, VirtualBox и VirtualPC). Вредоносный код проверяет имена запущенных процессов и драйверов в системе. Проверка имен производится с помощью заранее подсчитанного хэша.
Рис. Функция, которая рассчитывает хэш строки при проверке имен.
Например, проверка на окружение VMware выглядит следующим образом.
Рис. Код проверки на предмет окружения VMware; по заранее подсчитанному хэшу проверяются имена запущенных процессов и драйверов
Каждые несколько часов файлы дропперов подвергаются перепаковке с использованием специального сервиса, который предоставляет возможности по использованию полиморфного криптора для этих целей. Такой подход позволяет избежать статического сигнатурного обнаружения со стороны антивирусных сканеров этих дропперов. Ссылки URL, с которых потом раздаются эти дропперы, выглядят следующим образом:
Рис. Ссылки, ведущие к установке дропперов Caphaw.
Формат таких URL:
hxxps://[random subdomain].[domain]/[DIR]/[DIR-random string]/[dropper file]?r=[random number]
Для генерации случайных чисел Caphaw использует такой алгоритм:
Рис. Алгоритм генерации случайных чисел в Caphaw.
Caphaw использует C&C для загрузки дополнительных модулей, веб-инжектов, конфигурационных файлов и получения инструкций. При этом ссылки URL для работы с C&C имеют вид:
Рис. Ссылки URL, которые Caphaw использует для взаимодействия с C&C.
Такие URL, которые используются для обращения к C&C, формируются по специальному шаблону.
hxxp://[URL format]/[key]&id=[bot id]&inst=[master or slave]&net[botnet id] &cmd=cfg
Ответ от C&C сервера имеет вид:
В таком случае также используется специальный шаблон:
hxxp:// [random subdomain].[domain]/[DIR]/[file_name.jpg]?r=[random number]
Конфигурационный файл бота зашифрован с использованием RC4 и Base64. Схема шифрования имеет вид: Base64(RC4(cfg_data)). После расшифровки конфигурационный файл имеет вид:
Рис. Конфигурационный файл после расшифровки.
Плагины
Win32/Caphaw имеет возможности по загрузке и исполнению дополнительных плагинов. Плагины, которые мы наблюдали за время отслеживания ботнета, приведены в таблице.
Плагин, который используется для распространения Caphaw через Skype, был описан нашими коллегами из CSIS. Еще один интересный плагин – это модуль MBR-буткита (определяется ESET как Win32/Wolcape.A), который загружается на зараженные машины по специальному запросу от C&C. Буткит основан на модификации MBR и обеспечивает загрузку неподписанного драйвера. Функция-перехват для прерывания int13 (прерывание используется для чтения секторов с жесткого диска) для этого буткита выглядит следующим образом:
Рис. Перехват на int13.
Расположение вредоносного драйвера:
Драйвер зашифрован с помощью RC4 с длиной ключа 256 байт. Граф вызовов функции, которая загружает драйвер, имеет вид:
Рис. Граф работы функции, которая загружает драйвер в систему.
Драйвер перехватывает типичные системные функции в ядре для сокрытия файлов и процессов. Наиболее интересные из них перехватывают функции у объектов Drivernsiproxy и DeviceTcp для получения контроля за проходящим сетевым трафиком. Конфигурационный файл буткита зашифрован по аналогичной схеме, как и в случае с уже вышеописанным. В нем также используется похожая XML структура:
Рис. Конфигурационный файл буткита.
Веб-инжекты и схема похищения средств
Веб-инжекты используют аналогичную форму для конфигурационных данных, но алгоритм шифрования для них отличается. В расшифрованном виде веб-инжекты выглядят следующим образом:
Ниже приведен список банков из последних конфигурационных файлов веб-инжектов:
Одной из наиболее интересных деталей в коде, внедряемом в веб-страницу при посещении онлайн-банка, является подстановка всех телефонных номеров на поддельные номера, принадлежащие злоумышленникам (Merchant of Malice: Trojan.Shylock Injects Phone Numbers into Online Banking Websites). Эта подстановка основана на специальной конфигурации веб-инжектов и имеет уникальную структуру для каждого отдельно взятого банка.
Заключение
Win32/Caphaw представляет из себя интересное семейство банковских троянов. Этот вредоносный код является одним из немногих, кто имеет функционал по автоматическому похищению денежных средств, когда пользователь работает с его банковским аккаунтом. Фактически, зараженному пользователю очень сложно распознать факт кражи денежных средств, т. к. он видит поддельные формы на странице онлайн-банкинга. Аналогичная функциональность отслеживалась нами ранее в таких семействах банковских троянов, как Carberp (Carberp Gang Evolution), Gataka (Win32/Gataka banking Trojan – Detailed analysis), Win32/Spy.Ranbyus (Win32/Spy.Ranbyus нацелен на модификацию Java-кода систем удаленного банкинга Украины) и Tinba.
Автор: esetnod32