Анализ новых модификаций вымогателя TorrentLocker

3994cce24bfd422fbcb18827e8bfd79a.pngВ декабре 2014 г., специалисты ESET опубликовали white paper с информацией о семействе вымогателей-шифровальщиков под названием TorrentLocker, экземпляры которого распространялись с использованием фишинговых сообщений электронной почты от имени, якобы, местного почтового отделения, энергетических или телекоммуникационных компаний. Документ исчерпывающим образом описывал схему распространения этого типа вредоносного ПО, его основную функциональность, а также используемый сетевой протокол. Мы также указали на некоторые сходства кода TorrentLocker с банковским трояном Hesperbot. На протяжении прошлых нескольких месяцев, в нашем распоряжении оказались новые образцы семейства TorrentLocker, так что мы смогли отследить текущее состояние функций и кода этой вредоносной программы.

В 2014 г. авторы TorrentLocker использовали в своих целях название другого известного вымогателя — CryptoLocker. Название CryptoLocker размещалось на веб-странице с требованием выкупа. По неизвестным нам причинам, годом позже, авторы заменили буквы «o» в названии на нули, в результате чего получилось слово «Crypt0l0cker». В процессе исследования новых образцов шифровальщика, мы не заметили каких-либо существенных отличий в самом коде, методе их распространения, а также инфраструктуре управляющих C&C-серверов. Мы полагаем, что за распространением новых образцов стоит та же самая киберпреступная группировка. Для избегания путаницы, мы решили оставить название TorrentLocker вместо используемого злоумышленниками Crypt0l0cker.

Схема распространения


Текущий метод распространения образцов шифровальщика очень похож на тот, который использовался в 2014 г. Фишинговые сообщения электронной почты включали в себя ссылку на веб-страницу с «документом» оплаты счета или отслеживающим кодом посылки. Ссылка указывает на дроппер TorrentLocker, который после своей загрузки в систему пользователем может быть запущен на исполнение. Как только это произошло, вымогатель начинает взаимодействовать со своим управляющим C&C-сервером, а также начинает процесс шифрования файлов пользователя. Ниже приведен список организаций, под которые злоумышленники маскировали свои фишинговые сообщения с апреля по август 2016 г.
  • A1 Telekom (Австрия)
  • AGL (Австралия)
  • Australia Post (Австралия)
  • Australian Federal Police (Австралия)
  • British Gas (Великобритания)
  • Endesa (Испания)
  • Enel (Италия)
  • Österreichische Post (Австрия)
  • New Zealand Post (Новая Зеландия)
  • PGE Polska (Польша)
  • PostNord (Швеция)
  • PostNL (Голландия)
  • Telia (Швеция)
  • Turkcell (Турция)
  • Verbund (Австрия)
  • Vodafone Italia (Италия)

Как мы указывали в документе за 2014 г., те URL-адреса, которые используются для распространения вредоносной программы, по-прежнему могут быть доступны только из той страны, на пользователей которой направлена конкретная вредоносная кампания. Таким образом, операторы усложняют работу антивирусным аналитикам или автоматическим инструментам сбора данных URL-адресов вне этой страны.
5da237ba1ce744eea3aad8756274d6ee.png

Рис. 1. Пример фишингового сообщения для пользователей Австрии, замаскированного под почтовое отделение Österreichische Post.
b0133b30426a4047b10d0bc7d042e265.png

Рис. 2. Страница загрузки файла вредоносной программы в случае с пользователями Австрии, при этом используется маскировка под компанию A1 Telekom.
bb176c04bc674229875fe759ec9670e5.png

Рис. 3. Страница загрузки файла шифровальщика для пользователей Австрии, используется маскировка почтовой службы AFP.
1ab3778857bc4468aa44027977853056.png

Рис. 4. Страница загрузки файла шифровальщика для пользователей Австрии, используется маскировка службы Verbund.

Несмотря на то, что, в целом, вышеуказанная схема совпадает с предыдущей, в ней присутствуют некоторые изменения. В новом варианте операторы вредоносной программы добавили несколько дополнительных уровней перенаправления в цепочке ссылок, которая ведет к загрузке файла TorrentLocker. Фишинговая ссылка, располагающаяся в теле электронного сообщения, ведет на PHP-скрипт, размещенный на скомпрометированном сервере. Код скрипта выполняет проверку геолокации посетителя, т. е. проверяет его расположение в определенной стране, на которую направлена вредоносная кампания. В случае удовлетворения данного условия, посетитель веб-страницы перенаправляется на следующую стадию загрузки файла шифровальщика. В противном случае, потенциальная жертва перенаправляется на веб-сайт Google. Загружаемый жертвой архив с вредоносной программой, на самом деле, содержит обфусцированный файл JavaScript, который загружает и запускает на исполнение PE-файл TorrentLocker. Компания ReaQta опубликовала, в двух частях, исследование данной вредоносной схемы. Ниже представлен пример цепочки перенаправлений, которые приводят к запуску в системе вымогателя и шифрования файлов.

  1. Фишинговое сообщение содержит ссылку на «распечатку кода отслеживания». Ссылка имеет вид hxxp://diniyat.com/jKu8xT.php? id=victim@domain.nl.
  2. Далее, пользователь перенаправляется по следующей ссылке hxxp://azrs.postnl-tracking24.org/yr7mb.php? id=dmljdGltQGRvbWFpbi5ubA==.
  3. Пользователь переходит по следующей ссылке для загрузки файла на компьютер hxxp://azrs.postnl-tracking24.org/file/PostNL-pakket.zip.
  4. Пользователь открывает архив и выполняет двойной щелчок по файлу с названием PostNL-pakket.js.
  5. Загрузчик JavaScript инициирует загрузку и запуск исполняемого файла TorrentLocker в системе жертвы. Загрузка осуществляется с URL hxxp://sudoimpex.ru/administrator/file.exe.

Вредоносная программа по-прежнему имеет возможность извлечения данных адресной книги и настроек SMTP для обеспечения своего дальнейшего распространения.

Авторы добавили специальный пароль для предотвращения перечисления веб-страниц с информацией о выкупе

В нашем анализе 2014 г. указывалось, что злоумышленники использовали метод генерации так называемых «кодов пользователя» на стороне C&C-сервера для идентификации жертв. Такие коды были достаточно предсказуемыми, так как генерировались на последовательной основе. Это слабое место позволяло нам осуществлять доступ к каждой веб-странице с требованием выкупа и собирать статистику того, какое количество пользователей заплатило выкуп злоумышленникам, из каких стран и т. д. К моменту выпуска нашего прошлого исследования TorrentLocker, его операторы уже добавили специальный 4-х значный пароль для доступа к веб-странице с требованием выкупа. Согласно исследованию Trend Micro, параметр user pass впервые наблюдался еще 9 декабря 2014 г., т. е. за неделю до того, как мы выпустили наш отчет по TorrentLocker. Таким образом, операторы, возможно, получили информацию об упомянутом слабом месте в реализации их алгоритма не из нашего отчета, а анализируя собственные источники. После того, как они заметили, что антивирусные исследователи смогли получить доступ ко всем веб-страницам вымогателя, они добавили специальное поле пароля для предотвращения перечисления всех таких веб-страниц. Алгоритм генерации «кода пользователя» все еще является предсказуемым в текущих кампаниях, однако, значение поля «пароля пользователя» является непредсказуемым. Скорее всего, эти значения генерируются случайным образом на стороне C&C-сервера.

3036056134a648fba292b62b9d88fffe.png

Рис. 5. Формат URL в 2014 г.
c4a0b2cf6eb54908babc3ebc46111685.png

Рис 6. Формат URL с «паролем пользователя».

Обфускация


Для нашего анализа, мы выбрали три образца TorrentLocker, которые были упакованы с использованием различных крипторов. Нам не понадобилось много времени для разбора такого кода. Как мы наблюдали в 2014 г., образцы TorrentLocker содержат несколько уровней расшифровки кода, а сам код полезной нагрузки внедряется в доверенный процесс explorer.exe. Компонент Core шифровальщика по-прежнему экспортирует функции с названиями _local_entry и _remote_entry. Однако, эта схема была изменена в образце вредоносной программы, используемом в кампании с названием main-13, когда шифровальщик не выполнял внедрение своего кода в explorer.exe.

После своей распаковки, модуль core вымогателя использует дополнительные механизмы обфускации для того, чтобы усложнить его анализ для аналитиков. Мы опишем два способа обфускации кода, которые отсутствовали в образцах 2014 г. Во-первых, строки внутри файла являются зашифрованными с использованием жесткого зашитого ключа. Ключ является идентичным для различных образцов TorrentLocker, за тем исключением, что его длина отличается в разных случаях. Зашифрованные строки могут быть восстановлены в оригинальный вид с помощью простой операции XOR и упомянутого ключа. Мы опубликовали на ресурсе Github специальный скрипт для расшифровки строк из распакованного образца вымогателя.

Вредоносный код выполняет динамический импорт важных API-функций Windows с использованием 32-битных хэшей их названий. Такая операция уже неоднократно использовалась вредоносными программами и она заключается в перечислении названий экспортируемых функций определенной библиотеки с подсчетом хэша каждого из названий. Функцию, которая отвечает за реализацию данной операции, мы назвали resolve_and_call_function. Она принимает на вход различное число параметров, среди которых первые три являются постоянными. Первый аргумент представляет из себя индекс в массиве названий библиотек, второй параметр указывает хэш названия функции, а третий количество передаваемых аргументов в API-функцию. Остальные параметры являются значениями, которые будут переданы в API-функцию при ее вызове. Например, вызов функции InternetOpenW может выглядеть следующим образом.

resolve_and_call_function( 
    23,        // wininet.dll
    0xF190D96, // hash("InternetOpenW")
    5,         // nargs
    0, 0, 0, 0, 0x8404C700 // args
);
// calls InternetOpenW(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL,
INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_NO_UI|INTERNET_FLAG_HYPERLINK|\
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|\
INTERNET_FLAG_NO_AUTH|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_RELOAD)

Взаимодействие с управляющим C&C-сервером


Одним из наиболее примечательных изменений в новой модификации TorrentLocker стало изменение метода взаимодействия вымогателя в C&C-сервером. Как и в предыдущих версиях, новые образцы вредоносной программы пытаются взаимодействовать с C&C-сервером через жестко зашитый в тело исполняемого файла URL-адрес. Однако, сейчас используется генерация произвольным образом названия поддоменов, так как жестко зашитые домены обычно быстро демонтируются.

Интересно отметить, что в случае неудачного подключения к C&C-серверу, вымогатель пытается использовать сервис анонимной сети Tor. Компактная реализация клиента Tor статически скомпонована с исполняемым кодом вымогателя. Таким образом, коду вредоносной программы не нужно полагаться на сторонние приложения для работы с Tor. Взаимодействие с управляющим C&C-сервером с помощью сервиса анонимной сети Tor все больше становится популярной у авторов вымогателей. Использование злоумышленниками такого метода, существенно усложняет антивирусным исследователям обнаружение физического расположения C&C-сервера.

0272ac8eca9940808f9333633fd43f18.png

Рис. 7. Пути к файлам исходных текстов в файле вымогателя, которые указывают на то, что компонент Tor использует библиотеку LibreSSL.

Ниже представлен список доменов, которые использовались в трех различных проанализированных нами образцах.

922b1759ddbd4bfd83175106e7ee67b3.png

Следующие onion-домены анонимной сети Tor были обнаружены в проанализированных нами образцах в следующем порядке.

  • mz7oyb3v32vshcvk.onion
  • h453liaclp7vmxnb.onion
  • vrympoqs5ra34nfo.onion

Мы не обнаружили каких-либо существенных изменений в реализации коммуникационного протокола, за исключением добавления нового поля публичного IP-адреса жертвы при использовании сервиса Tor. Новое поле было добавлено в протокол взаимодействия вымогателя с C&C-сервером для того, чтобы сам C&C мог проверить IP-адрес источника запроса, который скрывается в случае использования Tor. TorrentLocker использует IP-адрес для геолокации и генерации соответствующей веб-страницы с требованием выкупа на соответствующем языке, а также отображением суммы выкупа в соответствующей региону валюте

Если предыдущие версии TorrentLocker полагались только на безопасное HTTPS подключения для шифрования передаваемых данных между вымогателем и его C&C-сервером, то новая версия добавляет дополнительный уровень шифрования. Для этого используется симметричный алгоритм AES-256-CBC, применяемый перед формированием POST-запроса HTTP-протокола, который, в свою очередь, шифруется либо с использованием SSL при использовании HTTPS, либо с использованием Tor. Ключ шифрования жестко зашит в исполняемый файл шифровальщика, также он не может быть оперативно изменен, поскольку в случае смены ключа, он изменяется и на C&C-сервере, остальные образцы TorrentLocker не смогут правильно работать с C&C. Наблюдаемые нами AES ключи указаны в конце.

Поведение вымогателя в зависимости от расположения жертвы


Хорошо известной функцией вымогателя TorrentLocker является локализация веб-страниц загрузки вредоносной программы, требования выкупа и его оплаты. Злоумышленники обеспечивают своих жертв информацией на их родном языке и в актуальной для них валюте. Для нашего анализа, мы попытались собрать информацию о том, для каких стран злоумышленники выполнили локализацию.

Для сбора такой информации, нам пришлось прибегнуть к методу ручного задания внешнего IP-адреса при использовании анонимной сети Tor. Мы описывали этот параметр выше, вымогатель при связи со своим C&C-сервером через Tor, задает IP-адрес жертвы качестве аргумента, чтобы тот смог подобрать правильную локализацию веб-страницы с требованием выкупа для пользователя. У нас получилось подобрать IP-адрес для каждой страны и отправить C&C-серверу сообщение о компрометации жертвы, указав этот адрес в качестве параметра. При это нам удалось получить соответствующие для разных кампаний веб-страницы с требованием выкупа и инструкциями его оплаты.

Веб-страница по умолчанию содержит текст на английском языке и указывает доллар в качестве валюты для оплаты выкупа. Мы обнаружили 22 страны, для которых злоумышленники выполнили локализацию упомянутых веб-страниц. Ниже представлен список этих стран.

  • Австралия
  • Австрия
  • Бельгия
  • Чехия
  • Дания
  • Франция
  • Германия
  • Италия
  • Япония
  • Мартиника
  • Голландия
  • Норвегия
  • Польша
  • Португалия
  • Корея
  • Испания
  • Швеция
  • Швейцария
  • Тайвань
  • Таиланд
  • Турция
  • Великобритания

Мы наблюдали фишинговые кампании по распространению TorrentLocker для каждой из стран, выделенных жирным шрифтом. Пока не совсем ясно, использовались ли в прошлых кампаниях другие механизмы распространения TorrentLocker и будут ли они использоваться в будущем.

Мы также заметили, что вымогатель отказывается шифровать файлы своих жертв для нескольких стран. Такое поведение вредоносной программы уже отмечалось нами ранее, но в этот раз нам удалось получить список таких стран.

  • Китай
  • Россия
  • Украина
  • США

Криптография


Несмотря на то, что общая криптографическая схема вымогателя не претерпела существенных изменений, некоторые аспекты ее реализации были изменены. В 2014 г., TorrentLocker использовал криптографическую библиотеку LibTomCrypt. Однако, свежие образцы шифровальщика используют функции Microsoft CryptoAPI (образцы кампаний с идентификаторами «main-9» и «main-12»). Интересным является также тот факт, что авторы вредоносной программы вернулись к использованию библиотеки LibTomCrypt в образцах от 10 августа 2016 г. (кампания с идентификатором «main-13»). Нам не совсем понятно, почему авторы вымогателя переключились на использование предыдущей библиотеки. Вне зависимости от используемой библиотеки, вектор инициализации (IV) всегда соответствует 32-байтам с нулевым содержимым.

Как было указано ранее, данные взаимодействия вымогателя с C&C-сервером являются зашифрованными. Однако, шифрование также применяется и к другим файлам TorrentLocker, в т. ч. к конфигурационному файлу. Для этого используется симметричный алгоритм шифрования AES-256 с жестко зашитой в тело вредоносной программы ключом, который отличаются в разных кампаниях. Названия файлов TorrentLocker генерируются случайным образом.

1e1fd07eec884632afbadc1ac9b0e447.png

Рис. 8. Конфигурационная директория TorrentLocker.

С использованием алгоритма AES-256 CBC вымогатель шифрует файлы на компьютере жертвы, свои конфигурационные файлы, а также данные для C&C-сервера. Для генерации 32-байтового ключа шифрования используется API-функция CryptGenRandom. Каждый из этих байт затем добавляется к младшему байту значения функции GetTickCount.

f22e01106e424b768a02d678e50a773c.png

Рис. 9. Поток выполнения кода при генерации ключа шифрования.

Файлы на компьютере шифруются одним и тем же идентичным ключом. Этот ключ затем шифруется жестко зашитым в тело вымогателя публичным RSA ключом и отправляется на управляющий C&C-сервер. Тот же самый открытый ключ был обнаружен во всех других образцах TorrentLocker.

Шифровальщик оставляет систему работоспособной и не шифрует системные файлы Windows. Предыдущие модификации TorrentLocker содержали список расширений тех файлов, которые должны подвергнуться шифрованию, например,».doc»,».docx»,».xls». Новые версии вымогателя, напротив, содержат список исключений файлов, которые не подлежат шифрованию. В этот список входят различные исполняемые файлы с расширениями ».exe»,».dll»,».sys». Полный список таких файлов приведен ниже.

Еще одно небольшое изменение касается размера шифруемых данных файла. В версиях 2014 г., вымогатель шифровал первые 2МБ файлов. Sophos сообщала, что размер шифруемой части в новых модификациях уменьшился до первого 1МБ.

Заключение


Вымогатель-шифровальщик TorrentLocker является все еще достаточно активным и находится в поле зрения многих исследователей, поскольку злоумышленники используют направленный фишинг для распространения этого вредоносного ПО.

Индикаторы компрометации (IoC) и дополнительная информация

Файл 1

SHA-1: 2BF11BD7C946F36A690BD2DDB6623BF478E8F37B
Дата компиляции: Tue May 17 07:13:48 2016
Идентификатор кампании: main-9
Название обнаружения ESET: Win32/Filecoder.TorrentLocker.C

Файл 2
SHA-1: BFF8090E21C020E989E4C36EBFE50B6C33DDC733
Дата компиляции: Tue Oct 07 00:40:23 2014
Идентификатор кампании: main-12
Название обнаружения ESET: Win32/Injector.DCIZ

Файл 3
SHA-1: EB7BF6B79CCA5FD6B73F32049560AE57C9988A70
Дата компиляции: Wed Aug 10 08:55:29 2016
Идентификатор кампании: main-13
Название обнаружения ESET: Win32/Filecoder.TorrentLocker.A

Ключи шифрования AES

Вектор инициализации (IV) всегда имеет нулевое значение

SHA-1 образца: 2BF11BD7C946F36A690BD2DDB6623BF478E8F37B
Ключ шифрования данных C&C:
4D78C23939EBDE78B5BAFCAB47D199169AF6821F3D276B5324DF9D79ECC7BAD4
Ключ шифрования конфигурационного файла:
BA14569ABB28C1B53ED02F2255EC0EBC9C1AC04F8F044062FBDF08B5ACB65C54

SHA-1 образца: BFF8090E21C020E989E4C36EBFE50B6C33DDC733
Ключ шифрования данных C&C:
4D78C23939EBDE78B5BAFCAB47D199169AF6821F3D276B5324DF9D79ECC7BAD4
Ключ шифрования конфигурационного файла:
34A43BC9495064A464BCCF82B43D8F03273528FE1A497E55B23EFA7D8D3B8DAF

SHA-1 образца: EB7BF6B79CCA5FD6B73F32049560AE57C9988A70
Ключ шифрования данных C&C:
BEABC25657C4D67F84D0E517A654F3663EA2F79793221AA9247486A7584E6F79
Ключ шифрования конфигурационного файла:
3664D810C09ED7B2A0EC9CB29426C92D7EC3B9592A7A86AE7E51D1895778B94C


Файлы со следующими расширениями не подлежат шифрованию
. exe,. dll, .sys, .vdx, .vxd, .com, .msi, .scr, .cpl, .bat, .cmd, .lnk, .url, .log, .log2, .tmp, .###, .ini, .chm, .manifest, .inf, .html, .txt, .bmp, .ttf, .png, .ico, .gif, .mp3, .wav, .avi, .theme, .evtx, .folder, .kdmp.

Следующий публичный ключ RSA-4096 используется для шифрования ключа AES в кампаниях main-9 — main-13.
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LrTxrnan3wlqkeCrO8j
L/BlcjS3yOh/YZ9vH5uRw4RvHY86JpsKaJLQ1WajkY9bgO6w9an9l9dtJch70joD
o+aQfzpQIb1HUwrOmrxICO18zyhvkH+vXBSuDmQBFvuPMu8g1R4cpo9TzR0XCSEn
BjDBhNirSBRmfSjhWMhLMcrrAUJ986+ucLdjQtBrDyTIlYZ8/H83T+rbkBE2sLbY
D7HSBtosPArg18hC6fgDJ2V4tADmLx/wk3k8JKeQ0OXbBqVbzWbYzODIJ/VibKNg
mE278RS9KR3f+0P38/ztf81SH4ZK5kjqN6qLL0AyUfQpm7bOpQHSpwOdhA0i/8M5
lMzZj1wdfp3UDoPpAyH4fc6mpgt1OjN5Rj5PjQj/bEPM/Rz67LCdFY3LbI5rCyxm
9V4UVTOJdAavByDUa8PKEY++XMKjEjTskDD4Io3tD+54rmr4/WPoRPlrQ+Bj4o7I
DSvrMGsnEudhcO7qMlQ5JszHDejk5QF8glsiWsCHVxmZqsHFNYxBKGgtvUxvokgv
+yxo6twfC/hC1wJHhWofINDABxIYqgVOg4GJEs0gA1v8FByNg6pss2W/oNcYDuiZ
7R/9vHAUHzMBVNaXq9Rz5h61pLFjEpIrfzO8ctAq3+wDdltyTbz40D7G4+zPHV2t
PW9R7I4fmgDQMM4SimN8NcUCAwEAAQ==
-----END PUBLIC KEY-----

Комментарии (0)

© Habrahabr.ru