Аналіз нових модифікацій здирника TorrentLocker

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

У 2014 р. автори TorrentLocker використовували в своїх цілях назву іншого відомого здирника – CryptoLocker. Назва CryptoLocker розміщувалося на веб-сторінці з вимогою викупу. З невідомих нам причин, роком пізніше, автори замінили букви «о» у назві на нулі, в результаті чого вийшло слово «Crypt0l0cker». У процесі дослідження нових зразків шифровальщика, ми не помітили якихось істотних відмінностей в самому коді, методі їх поширення, а також інфраструктурі керуючих C&C-серверів. Ми вважаємо, що за поширенням нових зразків стоїть та ж сама киберпреступная угруповання. Для уникнення плутанини ми вирішили залишити назву TorrentLocker замість використовуваного зловмисниками Crypt0l0cker.

Схема розповсюдження
Поточний метод розповсюдження зразків шифровальщика дуже схожий на той, який використовувався в 2014 р. Фішингові повідомлення електронної пошти включали в себе посилання на веб-сторінку з «документом» оплати рахунку або відстежує кодом посилки. Посилання вказує на дроппер TorrentLocker, який після своєї завантаження в систему користувачем може бути запущений на виконання. Як тільки це сталося, вимагач починає взаємодіяти зі своїм керуючим C&C-сервером, а також починає процес шифрування файлів користувача. Нижче наведено список організацій, під які зловмисники маскували свої фішингові повідомлення з квітня по серпень 2016 р.

Як ми вказували в документі за 2014 р., ті URL-адреси, які використовуються для поширення шкідливої програми, як і раніше можуть бути доступні тільки з тієї країни, на користувачів якої спрямована конкретна шкідлива кампанія. Таким чином, оператори ускладнюють роботу антивірусних аналітикам або автоматичним інструментів збору даних, URL-адрес поза цієї країни.


Рис. 1. Приклад фішингової повідомлення для користувачів Австрії, замаскованого під поштове відділення Österreichische Post.


Рис. 2. Сторінка завантаження файлу шкідливої програми у випадку з користувачами Австрії, при цьому використовується маскування під компанію A1 Telekom.


Рис. 3. Сторінка завантаження файлу шифровальщика для користувачів Австрії, використовується маскування поштової служби AFP.


Рис. 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-сервера.


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


Рис 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-сервера.


Рис. 7. Шляхи до файлів вихідних текстів у файлі здирника, які вказують на те, що компонент Tor використовує бібліотеку LibreSSL.

Нижче представлений список доменів, які використовувалися в трьох різних проаналізованих нами зразках.



Наступні 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 генеруються випадковим чином.


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

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


Рис. 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 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.