Пакер: VMProtect
Даты компиляции и SHA1-хэши:
- 15879cfa3e5e4463ef15df477ba1717015652497 - 07.08.2017 00:47:36
- 4b4da2c0a992d5f7884df6ea9cc0094976c1b4b3 - 28.12.2017 21:37:02
- 6813cca586ea1c26cd7e7310985b4b570b920803 - 21.10.2018 11:25:07
Описание
Является одним из компонентов троянца Belonard. Оригинальное имя — fiveseven_reload_clipin_sliderelease.dll. Имеет экспорты "CreateInstance", "xW", "yW". Создается файлами Mssv36.asi (Trojan.Belonard.10) и Mssv16.asi (Trojan.Belonard.3). Запускается через rundll32. Скачивает и запускает Mssv16.asi (Trojan.Belonard.3).
Принцип действия
В DllMain получает пути до модуля и запущенного процесса. Если имя процесса не rundll32.exe, тогда запускает отдельный поток, в котором будет выполнять все действия.
Создает ключ [HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers] '<путь до исполняемого файла процесса>' и присваивает ему значение "RUNASADMIN". Затем проверяет, совпадает ли имя модуля с "Mssv24.asi". Если совпадает, троянец запускает экспорт "y", если нет — копирует себя в "Mssv24.asi", затем запускает экспорт нового файла "x", передав параметром путь до текущего модуля. После чего запускает экспорт "y", передав путь до созданного файла Mssv24.asi.
В экспорте «yW» расшифровывает адрес управляющего сервера - fuztxhus.valve-ms[.]ru.
Алгоритм расшифровки:
def decrypt(data):
s = 'f'
for i in range(0,len(data)-1):
s += chr((ord(s[i]) + ord(data[i]))&0xff)
print s
Позже алгоритм изменили, но адрес управляющего сервера остался таким же.
Новый алгоритм расшифровки:
def decrypt(d):
s = ''
c = ord(d[0])
for i in range(len(d)-1):
c = (ord(d[i+1]) + 0xe3*ord(d[i])-0x0d*(c+4)) & 0xff
s += chr(c)
return s
Затем троянец проверяет наличие процесса Wow64. В зависимости от этого он выбирает для подключения 28821 или 28822 порт. Подключается к серверу, откуда получает исполняемый файл. Первый DWORD в буфере — размер переданного MZPE файла. Сохраняет полученный MZPE в файл Mssv16.asi (Trojan.Belonard.3), выставляет ему дату создания, доступа и модификации аналогично файлам: Mssv12.asi, Mssv29.asi, Mss32.dll, hl.exe.
Запускает Mssv16.asi через rundll32:
rundll32.exe 0 "Mssv16.asi",xВ экспорте «xW» получает аргументом путь. Удаляет файл, путь до которого передан аргументом.
В экспорте «CreateInstsance» возвращает 1.