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

Позвоните

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

ЧаВо | Форум

Ваши запросы

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

Позвоните

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

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

Профиль

Профиль

Trojan.Mirage.12

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

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

  • Упаковщик: отсутствует
  • Дата компиляции: 07.03.2019 07:04:48
  • SHA1-хеш: fc698eb0d7d6948605a7e5ba6708752b691a3fec

Описание

Многокомпонентный троян-бэкдор, написанный на C++ с использованием библиотеки Active Template Library (ATL) предназначенный для работы в 32- и 64-битных операционных системах семейства Microsoft Windows. Используется для несанкционированного управления зараженным компьютером и доступа к содержащейся на устройстве информации. Троян представляет собой COM-сервер, работающий в оперативной памяти в контексте системного процесса.

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

Троян функционирует только в случае его загрузки в процесс с именем explorer.exe или regsvr32.exe. Это объясняется спецификой работы образца — через regsvr32.exe троян регистрируется в системе, а его выполнение происходит в контексте explorer.exe.

#drweb

При запуске через regsvr32 (с ключом /i или без ключей) вызывается экспортируемая трояном функция DllRegisterServer, которая отвечает за регистрацию в системе его COM-интерфейса:

[<HKLM>\Software\Classes\Server.ServerMain.1] '' = 'ServerMain Class'
  [<HKLM>\Software\Classes\Server.ServerMain.1\CLSID] '' = '{D8956119-6E66-43BD-AAA5-231F94859EE6}'
  [<HKLM>\Software\Classes\Server.ServerMain] '' = 'ServerMain Class'
  [<HKLM>\Software\Classes\Server.ServerMain\CLSID] '' = '{D8956119-6E66-43BD-AAA5-231F94859EE6}'
  [<HKLM>\Software\Classes\Server.ServerMain\CurVer] '' = 'Server.ServerMain.1'
  [<HKLM>\Software\Classes\CLSID\{D8956119-6E66-43BD-AAA5-231F94859EE6}] '' = 'ServerMain Class'
  [<HKLM>\Software\Classes\CLSID\{D8956119-6E66-43BD-AAA5-231F94859EE6}\ProgID] '' = 'Server.ServerMain.1'
  [<HKLM>\Software\Classes\CLSID\{D8956119-6E66-43BD-AAA5-231F94859EE6}\VersionIndependentProgID] '' = 'Server.ServerMain'
  [<HKLM>\Software\Classes\CLSID\{D8956119-6E66-43BD-AAA5-231F94859EE6}\InprocServer32] '' = ''
  [<HKLM>\Software\Classes\CLSID\{D8956119-6E66-43BD-AAA5-231F94859EE6}\InprocServer32] 'ThreadingModel' = 'Apartment'
  [<HKLM>\Software\Classes\CLSID\{D8956119-6E66-43BD-AAA5-231F94859EE6}\TypeLib] '' = '{1CAE5CEB-54C5-49E3-B195-4A76DD1A7C21}'
  [<HKLM>\Software\Classes\TypeLib\{1CAE5CEB-54C5-49E3-B195-4A76DD1A7C21}\1.0] '' = 'Server 1.0 Type Library'
  [<HKLM>\Software\Classes\TypeLib\{1CAE5CEB-54C5-49E3-B195-4A76DD1A7C21}\1.0\FLAGS] '' = '0'
  [<HKLM>\Software\Classes\TypeLib\{1CAE5CEB-54C5-49E3-B195-4A76DD1A7C21}\1.0\0\win32] '' = ''
  [<HKLM>\Software\Classes\TypeLib\{1CAE5CEB-54C5-49E3-B195-4A76DD1A7C21}\1.0\HELPDIR] '' = ''
  [<HKLM>\Software\Classes\Interface\{CFDA1C1C-DB4B-431C-88A1-2C799A80A4BB}] '' = 'IServerMain'
  [<HKLM>\Software\Classes\Interface\{CFDA1C1C-DB4B-431C-88A1-2C799A80A4BB}\ProxyStubClsid] '' = '{00020424-0000-0000-C000-000000000046}'
  [<HKLM>\Software\Classes\Interface\{CFDA1C1C-DB4B-431C-88A1-2C799A80A4BB}\ProxyStubClsid32] '' = '{00020424-0000-0000-C000-000000000046}'
  [<HKLM>\Software\Classes\Interface\{CFDA1C1C-DB4B-431C-88A1-2C799A80A4BB}\TypeLib] '' = '{1CAE5CEB-54C5-49E3-B195-4A76DD1A7C21}'
  [<HKLM>\Software\Classes\Interface\{CFDA1C1C-DB4B-431C-88A1-2C799A80A4BB}\TypeLib] 'Version' = '1.0'
  

где <path> — путь к файлу трояна, а <homedir> — его домашний каталог.

Также через regsvr32 обеспечивается автозагрузка трояна: [<HKLM>\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ServerShellIcon] '' = '{D8956119-6E66-43BD-AAA5-231F94859EE6}'.

Таким образом, процесс explorer.exe загрузит троянскую программу при следующем своем перезапуске.

Основная функциональность

Троян приступает к выполнению основных функций либо путем вызова экспортируемой функции DllUnregisterServerA, либо при загрузке процессом explorer.exe. Отличие в том, что при загрузке процессом explorer.exe троян создает мьютекс FEca72d-abc-efef для предотвращения параллельного запуска еще одной своей копии.

Далее читает свою конфигурацию из ключа реестра [HKCU\\Software\\Microsoft\\Keyboard\\Set] 'HPConf'. Если указанного ключа не существует или сохраненная там конфигурация не совпадает с конфигурацией, зашитой в теле трояна, использует зашитую конфигурацию и записывает ее в реестр.

Конфигурация и в реестре, и в теле трояна хранится в зашифрованном виде, для шифрования используется алгоритм RC4. Ключ шифрования зашит в теле трояна:

13 36 CF 83 2E CC 79 DF 2E AB 79 64

Функция дешифровки:

#drweb

Расшифрованная конфигурация имеет следующую структуру:

struct st_config
  {
    _DWORD compname_sum;
    wchar_t compname[16];
    wchar_t cnc_addr1[64];
    wchar_t cnc_addr2[64];
    wchar_t cnc_addr3[64];
    _WORD cnc_port1;
    _WORD cnc_port2;
    _DWORD interval;
    wchar_t sleep_time[64];
    wchar_t fallback_url[128];
  };
  

В зашитой конфигурации поля compname_sum и compname имеют нулевые значения. Как только троян расшифровывает ее, он присваивает этим полям значения, затем зашифровывает уже обновленную конфигурацию и записывает ее в реестр. compname_sum вычисляется на основе имени компьютера:

#drweb

Далее троян загружает имеющиеся плагины. Для этого проверяет наличие папки %APPDATA%\\Microsoft\\Media Player и, если она существует, ищет в ней библиотеки с двумя экспортируемыми функциями — GetValue и PluginEntryPoint. Для каждой найденной библиотеки последовательно вызываются PluginEntryPoint, затем GetValue. Вторая функция возвращает дескриптор потока, завершение которого ожидает троян. После завершения потока файл библиотеки выгружается из процесса и удаляется.

В параметре конфигурации sleep_time могут содержаться две даты (год, месяц, день, час, минута), определяющие период времени, когда троян не связывается с управляющим сервером. Если текущая дата и время не попадают в этот промежуток или данный параметр не задан, то переходит к общению с управляющим сервером.

Связь с управляющим сервером

В конфигурации трояна может быть задано до двух адресов управляющих серверов. Для каждого сервера задаются домен и порт. Кроме того, в конфигурации может быть указан URL, по которому троян отправляет запрос с целью получения адреса управляющего домена — fallback_url.

Все запросы к управляющему серверу содержат идентификатор бота:

#drweb

Троян может отправлять два вида запросов:

  • POST-запрос с URI /result?hl=en&meta=<botid>, где botid — идентификатор бота. Данные запроса зашифровываются по тому же алгоритму, что и конфигурация;
  • GET-запрос с URI /search?hl=en&q=<data>&meta=<botid>, где botid — идентификатор бота, data — данные запроса, которые зашифрованы так же, как и конфигурация, после чего закодированы в Base64 и urlencode.

POST-запрос используется только для отправки файла с зараженного компьютера на управляющий сервер при условии, что размер отправляемых данных превышает 528 байтов.

В запросах используется строка User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32).

Для проверки работоспособности управляющего сервера троян отправляет пакет st_pkt_hello:

struct st_pkt_hello
  {
    _DWORD rnd;
    _DWORD cmdid;  // 0x10001000
    _BYTE gap[36]; // 0x00
  };
  

где rnd — случайное число. Если сервер отвечает на этот запрос, то троян будет использовать этот сервер для дальнейшей работы. Если ни один из указанных в конфигурации серверов не работает, троян отправляет запрос Get (именно так, а не GET) на указанный URL. В ответ ожидает адрес управляющего сервера, зашифрованный по тому же алгоритму, что и конфигурация трояна. Полученный таким образом управляющий сервер проверяется на работоспособность аналогичным образом — при помощи пакета st_pkt_hello.

Когда троян находит управляющий сервер, он начинает периодически запрашивать команды. Пакет для запроса команды имеет вид:

struct st_pkt_req_cmd
  {
    _DWORD rnd;
    _DWORD cmdid;        // 0x10001001
    _DWORD compname_sum;
    char compname[16];
    _BYTE gap[16];       // 0x00
  };
  

где rnd — случайное число, compname_sum — число, полученное на основе имени компьютера, compname — имя компьютера.

Если сервер ответил строкой *NONE*, то троян не учитывает указанное в конфигурации время «молчания» и повторяет запрос. Если полученный ответ отличен от *NONE*, троян сохраняет эти данные в файл %APPDATA%\\jbl. Далее этот файл расшифровывается (по тому же алгоритму, что и конфигурация) и разбивается на команды. Команду для выполнения троян определяет на основе ее первых трех символов:

opcode = cmdbuf[2] ^ (cmdbuf[1] * cmdbuf[0]);

Список команд:

Код команды cmd Описание команды
0x2718delУдалить файл
0x28D7getОтправить текущую конфигурацию
0x2A43cmdЗапустить команду в командной оболочке и выслать результат работы
0x2B2BdowОтправить на сервер указанный файл
0x2C89sdeИзменить интервал обращения к управляющему серверу
0x2C97remСамоудалиться
0x2D7EwaiБездействовать в указанный промежуток времени
0x2EB5loaЗапустить плагин трояна
0x2F3DexeЗапустить файл
0x30E1sleУстановить период бездействия трояна
0x322AunlВыгрузить плагин и удалить его с диска
0x3353upcОбновить конфигурацию
0x3354updЗапросить и установить обновления вредоносного модуля
0x335CuplПолучить от сервера файл и сохранить его по указанному пути

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

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

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