Поддержка
Круглосуточная поддержка

Позвоните

Бесплатно по России:
8-800-333-79-32

ЧаВо | Форум

Ваши запросы

  • Все: -
  • Незакрытые: -
  • Последний: -

Позвоните

Бесплатно по России:
8-800-333-79-32

Свяжитесь с нами Незакрытые запросы: 

Профиль

Профиль

Trojan.Belonard.6

Добавлен в вирусную базу Dr.Web: 2019-01-21

Описание добавлено:

Пакер: WinLicense

SHA1:

  • 73ba54f9272468fbec8b1d0920b3284a197b3915 (davapi.dll, x86)
  • d6f2a7f09d406b4f239efb2d9334551f16b4de16 (davapi.dll, x64)

Описание

Является одним из компонентов троянца Belonard. Оригинальное имя — kernel32.dll (x86), kernel.dll (x64). Имеет один экспорт "x", который принимает аргументом указатель на структуру SERVICE_STATUS сервиса, в котором работает WinDHCP.dll. Создается троянцем Mssv16.asi (Trojan.Belonard.3). Скачивает и запускает wmcodecs.dll (Trojan.Belonard.8), ssdp32.dll (Trojan.Belonard.9) и davapi.dll (Trojan.Belonard.6).

Принцип действия

Подготовка

Троянец читает в реестре параметры "Tag" и "Data" службы WinDHCP. В "Data" должен находиться AES-ключ. Если его нет, троянец генерирует через OpenSSL 32 случайных байта. Полученными данными инициализируется AES-CFB. После чего троянец читает параметры "Info", "Scheme" службы WinDHCP. В "Scheme" хранится 4 параметра в зашифрованном с помощью AES виде. В "Info" хранится SHA256 хэш от списка установленных программ.

Затем троянец загружает библиотеку wmcodecs.dll и вызывает ее экспорт "y". Аргументом передается указатель, проинициализированный указателем на контейнер, который содержит информацию об именах файлов и соответствующих им SHA256-хэшам. При этом имя библиотеки хранится в зашифрованном виде.

Скрипт расшифровки:


s = ''
c = ord(d[0])
for i in range(len(d)-1):
    c = (ord(d[i+1]) + 0xe1*c - ord(d[i])*0x19  - 0x0b) & 0xff
    s += chr(c)

Троянец расшифровывает адрес управляющего сервера — oihcyenw.valve-ms[.]ru, после чего запускает со случайно сгенерированным интервалом три функции.

  • Поиск запущенных клиентов Counter-Strike. Период запуска находится в интервале от 30 до 90 секунд.
  • Запуск ssdp32.dll происходит в интервале от 30 до 90 минут.
  • Обращение к управляющему серверу. Происходит раз в 2-3 часа.

Диапазоны периодов могут быть изменены при получении соответствующей команды от управляющего сервера. При этом раз в секунду троянец заносит в реестр параметры службы WinDHCP.

Поиск клиентов Counter-Strike

Данная функция запускается только при наличии загруженной wmcodecs.dll. Чтобы найти процесс Counter-Strike, троянец перебирает все процессы. После чего в каталоге с исполняемым файлом процесса он ищет папки и файлы, характерные для клиента Counter-Strike 1.6.

Trojan.Belonard.6 #drweb

Троянец также умеет идентифицировать официальный клиент. Для этого он проверяет, заканчивается ли путь до исполняемого файла процесса на steamapps\common\Half-Life, а также наличие файла Steam.dll в каталоге, содержащем указанный относительный путь.

При нахождении клиента троянец сверяет файлы и их SHA256-хэши с информацией, полученной из экспорта "y" wmcodecs.dll. Если найдено несоответствие, вызывает экспорт "x" библиотеки wmcodecs.dll, передавая аргументом путь до исполняемого файла процесса.

Запуск ssdp32.dll

Если в %WINDIR%\System32 есть файл ssdp32.dll, троянец перебирает все процессы, где исполняемым файлом является rundll32.exe. Если в списке загруженных модулей процесса есть модуль «ssdp32.dll», троянец завершает этот процесс. После проверки всех процессов через rundll32.exe запускается экспорт «x» файла «ssdp32.dll».

Обращение к управляющему серверу

Троянец собирает информацию о системе:


#pragma pack(push,1)
struct st_info
{
  _DWORD dword0;  // 0x05
  _BYTE byte4;  // 0x00
  _DWORD svc_dhcp_scheme_wmcodecs_ver;
  _BYTE bIsWmcodecsDllLoaded;
  _DWORD dwProductVersionMS;
  _WORD ProductVersionLS; // (dwProductVersionLS & 0xffff0000) >> 16
  _WORD DefaultUILang;
  _DWORD TotalMemory; // in Mb
  _DWORD dwNumberOfProcessors;
  _WORD wProcessorArchitecture;
  _WORD wProcessorLevel;
  _WORD wProcessorRevision;
  _QWORD ticks;
}
#pragma pack(pop)

Затем он составляет список установленных программ, а SHA256 от этого списка сохраняет в параметре "Info" сервиса WinDHCP. Затем троянец упаковывает список в XZ архив и формирует структуру st_packet:


struct st_packet
{
  st_info info; 
  _BYTE svc_dhcp_data[0x20];
  _DWORD svc_dhcp_scheme_dword0;
  _DWORD installed_programs_length;
  _BYTE aeskey2[0x20];  // absent if size of resulting st_packet structure is less than 342 bytes
  _BYTE aeskey1[0x20];
  _BYTE installed_programs_sha256[0x20]; 
  _BYTE byte1; // 0x01
  _DWORD xz_arc_size;
  char xz_arc_data[size];
  _BYTE byte2; // 0x02
  _BYTE bSsdp32DllExists; // 0x01 - exists & hash computed, 0xff - doesn't exist, 0xfe - failed to compute sha256 hash
  _BYTE Ssdp32Dll_sha256[0x20]; // absent if bSsdp32DllExists != 0x01
}

Полученная структура зашифровывается публичным RSA-ключом, зашитым в троянца. Только первые 342 байта данных шифруются RSA, остальное (при наличии) шифруется с помощью AES в режиме CFB с размером блока 128 бит, где ключ получается из st_packet->aeskey2. В начало зашифрованных данных дописывается нулевой байт, после чего они отправляются на управляющий сервер.

Первым делом троянец пробует установить соединение с одним из известных ему серверов. Если ни с одним из них установить соединение не получилось, троянец использует встроенный алгоритм генерации доменов и пробует соединиться с одним из полученных доменов.

После отправки зашифрованных данных троянец принимает данные от сервера. Для расшифровки используется AES в режиме CFB с размером блока 128 бит. Ключ получается из st_packet->aeskey1. Сначала расшифровываются первые 36 байт данных, из них последний DWORD - это реальный размер полезной нагрузки с заголовком. К AES-ключу добавляется DWORD и хэшируется SHA256. Полученный хэш должен совпасть с первыми 32 расшифрованными байтами. Далее расшифровываются остальные принятые данные. Первые 32 байта - это SHA256-хэш от st_packet->aeskey1 и последующих данных. Последовательно анализирует буфер, который может содержать более одной команды за раз.

id Struct desc
0x00struct st_cmd0 { _BYTE opcode; // 0x00 _DWORD size; _BYTE payload[size]; } davapi.dll или spwinres.dll в зависимости от значения параметра "Tag" сервиса WinDHCP.
0x01struct st_cmd1 { _BYTE opcode; // 0x01 _DWORD version; _DWORD size; _BYTE payload[size]; } XZ архив с wmcodecs.dll.
0x02struct st_cmd2 { _BYTE opcode; // 0x02 _DWORD callhome_period_low; _DWORD callhome_period_high; _DWORD callhome_connect_attempts_max; _DWORD callhome_dga_period_low; _DWORD callhome_dga_period_high; _DWORD findcsclients_period_low; _DWORD findcsclients_period_high; _DWORD main_loop_step; _DWORD runssdp32dll_period_low; _DWORD runssdp32dll_period_high; _DWORD ssdp32_proc_instances; _DWORD ssdp32_proc_pause; _DWORD ssdp32_proc_postkill_pause; }; Параметры работы троянца.
0x03struct st_cmd3 { _BYTE opcode; // 0x03 _DWORD size; _BYTE payload[size]; } ssdp32.dll

Буфер может содержать одну или несколько структур, но только по одной каждого типа.

После этого троянец перебирает все процессы с исполняемым файлом rundll32.exe и останавливает те, у которых в списке загруженных модулей есть ssdp32.dll. Затем сохраняет в %WINDIR%\System32\ модули, которые прислал сервер (при наличии), и задает им скопированное у kernel32.dll время создания, модификации и доступа.

Рекомендации по лечению

  1. В случае если операционная система способна загрузиться (в штатном режиме или режиме защиты от сбоев), скачайте лечащую утилиту Dr.Web CureIt! и выполните с ее помощью полную проверку вашего компьютера, а также используемых вами переносных носителей информации.
  2. Если загрузка операционной системы невозможна, измените настройки BIOS вашего компьютера, чтобы обеспечить возможность загрузки ПК с компакт-диска или USB-накопителя. Скачайте образ аварийного диска восстановления системы Dr.Web® LiveDisk или утилиту записи Dr.Web® LiveDisk на USB-накопитель, подготовьте соответствующий носитель. Загрузив компьютер с использованием данного носителя, выполните его полную проверку и лечение обнаруженных угроз.
Скачать Dr.Web

По серийному номеру

Выполните полную проверку системы с использованием Антивируса Dr.Web Light для macOS. Данный продукт можно загрузить с официального сайта Apple App Store.

На загруженной ОС выполните полную проверку всех дисковых разделов с использованием продукта Антивирус Dr.Web для Linux.

Скачать Dr.Web

По серийному номеру

  1. Если мобильное устройство функционирует в штатном режиме, загрузите и установите на него бесплатный антивирусный продукт Dr.Web для Android Light. Выполните полную проверку системы и используйте рекомендации по нейтрализации обнаруженных угроз.
  2. Если мобильное устройство заблокировано троянцем-вымогателем семейства Android.Locker (на экране отображается обвинение в нарушении закона, требование выплаты определенной денежной суммы или иное сообщение, мешающее нормальной работе с устройством), выполните следующие действия:
    • загрузите свой смартфон или планшет в безопасном режиме (в зависимости от версии операционной системы и особенностей конкретного мобильного устройства эта процедура может быть выполнена различными способами; обратитесь за уточнением к инструкции, поставляемой вместе с приобретенным аппаратом, или напрямую к его производителю);
    • после активации безопасного режима установите на зараженное устройство бесплатный антивирусный продукт Dr.Web для Android Light и произведите полную проверку системы, выполнив рекомендации по нейтрализации обнаруженных угроз;
    • выключите устройство и включите его в обычном режиме.

Подробнее о Dr.Web для Android

Демо бесплатно на 14 дней

Выдаётся при установке