Модификация Neutrino для POS

Как и любое ПО, троянцы и вирусы из числа грамотно написанных со временем обрастают множеством ответвлений и обзаводятся новыми версиями. Яркий тому пример — Zeus (Trojan-Spy.Win32.Zbot по классификации «Лаборатории Касперского»), из года в год порождающий новых «детей», странным образом соответствуя своему прототипу в греческой мифологии. К числу таких же «плодовитых» семейств можно отнести NJRat, Mirai, Andromeda и т.д. Зловред Neutrino занимает почетное место в этой плеяде вредоносного ПО, варьируя вредоносные функции, методы распространения и заражения. В данной статье мы рассмотрим его нетипичное «ответвление», а конкретнее — модификацию Neutrino для POS. Указанный троянец детектируется продуктами «Лаборатории Касперского» как Trojan-Banker.Win32.NeutrinoPOS.

MD5 рассматриваемого файла: 0CF70BCCFFD1D2B2C9D000DE496D34A1

Начальный этап

Перед выполнением основной функции троянец некоторое время «отсыпается» с помощью API Sleep — очевидно, для обхода «песочниц» с коротким периодом времени работы. Для определения того, сколько именно продлится «сон», используется генератор псевдослучайных чисел:

Взаимодействие с C&C

Далее троянец извлекает список C&C-серверов, хранящийся в его теле в формате Base64, декодирует и начинает проверять работоспособность управляющего сервера. Происходит это следующим образом:

  • Формируется POST-запрос к C&C, где в качестве тела запроса выступает закодированная в Base64 строка «enter» (ZW50ZXI=). Как и все дальнейшие подобные запросы, команда предваряется префиксом «_wv=».
  • В качестве ответа от C&C всегда возвращается 404, однако в конце располагается закодированный всё в том же Base64 ответ c3VjY2Vzcw== («success» в данном случае). Если данная строка получена, данный управляющий сервер считается активным.

Отдельно стоит указать, что в заголовке каждого POST-запроса есть поле «auth» — независимо от бота его значение не меняется и является обязательным для отправки.

Код поиска рабочего C&C

Адрес подтвержденного C&C-сервера сохраняется в фиксированной ветке реестра HKCR\Sofrware\alFSVWJB, как и ряд других параметров, необходимых для работы троянца, что отличается от описанного в этой статье (HKCR\Software\Y1ViUVZZXQxx). Однако как показало сравнение функций обоих описанных файлов, они эквивалентны.

Команды

Neutrino данной версии способен выполнять следующие функции:

  • Скачивать и запускать файлы;
  • Делать снимки экрана;
  • Искать запущенные процессы;
  • Вносить изменения в реестр;
  • Находить файлы на зараженной машине и отправлять их на C&C;
  • Туннелировать трафик.

Команды в трафике передаются «как есть» — как строка вида «PROXY», «screenshot» и т.д., закодированные в Base64. Кстати говоря, исходя из анализа команд, в данной версии троянец разучился «ддосить».

Подсчет контрольной суммы для команд

Пример для некоторых команд (отмечены ниже красным):

  • Rolxor(«PROXY») = 0xA53EC5C
  • Rolxor(«screenshot») = 0xD9FA0E3

Обработчик команд NeutrinoPOS

Кража данных банковских карт

Непосредственно кража данных реализована чрезвычайно просто и сводится к следующему алгоритму:

  1. Троянец начинает обход по всем запущенным процессам (CreateToolhelp32Snapshot\ Process32FirstW\Process32NextW), исключая из списка себя:
  2. Используя связку OpenProcess\VirtualQuery\ReadProcessMemory получает информацию о страницах в памяти указанного процесса:
  3. Сканирует полученный регион памяти для нахождения полей Track1 магнитной карты (все ниже перечисленные данные должны располагаться в памяти друг за другом):
    • Последовательность из 15, 16, 19 символов «0»-«9» (данная последовательность проверяется после проверки длины с помощью Алгоритма Луна)
    • Проверяет наличие символа разделителя «^» (что верно и для предыдущего поля).
    • Извлекает имя владельца карты (максимальная длина согласно стандарту ISO/IEC 7813 — 26 символов):
    • Оставшиеся данные (CVC32, дата окончания срока обслуживания, CVV) копируются единым блоком с проверкой условий длины и содержимого:
  4. Данные отправляются на сервер по описанному в секции выше принципу с пометкой Track1
  5. Собираются данные по Track2:
    • Вначале, так же, как и на предыдущем этапе, извлекается PAN (те же проверки, что и Track1).
    • Символ разделитель отличается — здесь он «‘» или «D»
    • Track2 не содержит имени владельца — оставшиеся данных также извлекаются единым блоком
  6. Данные отправляются на сервер

Статистика распространения

Основными очагами распространения стали Казахстан и Россия. Приблизительно десять процентов всех зараженных компьютеров — предприятия малого бизнеса.

Заключение

Как видно из описанного примера, Neutrino хотя и является достаточно старым и хорошо изученным семейством, всё может преподнести сюрприз аналитикам в виде нетипичной функциональности или нестандартного применения.

MD5

CECBED938B10A6EEEA21EAF390C149C1

66DFBA01AE6E3AFE914F649E908E9457

4DB70AE71452647E87380786E065F31E

9D70C5CDEDA945CE0F21E76363FE13C5

B682DA77708EE148B914AAEC6F5868E1

5AA0ADBD3D2B98700B51FAFA6DBB43FD

A03BA88F5D70092BE64C8787E7BC47DE

D18ACF99F965D6955E2236645B32C491

3B6211E898B753805581BB41FB483C48

7D28D392BED02F17094929F8EE84234A

C2814C3A0ACB1D87321F9ECFCC54E18C

74404316D9BAB5FF2D3E87CA97DB5F0C

7C6FF28E0C882286FBBC40F27B6AD248

729C89CB125DF6B13FA2666296D11B5A

855D3324F26BE1E3E3F791C29FB06085

2344098C7FA4F859BE1426CE2AD7AE8E

C330C636DE75832B4EC78068BCF0B126

CCBDB9F4561F9565F049E43BEF3E422F

53C557A8BAC43F47F0DEE30FFFE88673

C&C

hxxp://pranavida.cl/director/tasks.php

hxxps://5.101.4.41/panel/tasks.php

hxxps://5.101.4.41/updatepanel/tasks.php

hxxp://jkentnew.5gbfree.com/p/tasks.php

hxxp://124.217.247.72/tasks.php

hxxp://combee84.com/js/css/tasks.php

hxxp://nut29.xsayeszhaifa.bit/newfiz29/logout.php

hxxp://nut29.nsbacknutdoms11war.com/newfiz29/logout.php

hxxp://jbbrother.com/jbb/meaca/obc/pn/tasks.php

hxxp://ns1.posnxqmp.ru/PANEL/tasks.php

hxxp://nut25.nsbacknutdoms11war.com/newfiz25/logout.php

hxxp://propertiesofseyshellseden.com/newfiz21/logout.php

hxxp://n31.propertiesofseyshellseden.com/newfiz31/logout.php

hxxp://propertiesofseyshellseden.com/newfiz21/logout.php

hxxp://n31.propertiesofseyshellseden.com/newfiz31/logout.php

Публикации на схожие темы

Всего комментариев: 1
  1. Сергей

    Остались только два вопроса. Как вирус попадает в POS терминал? И, судя по тому, что он работает под Windows, как он там запускается? В POS терминалах зачастую не Windows, и даже не операционная система, а прошивка с микропрограммой.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *