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

Позвоните

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

ЧаВо | Форум

Ваши запросы

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

Позвоните

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

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

Профиль

Профиль

Trojan.XPath.2

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

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

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

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

  • 11:22:57 16.11.2017 (версия для архитектуры x86)
  • 11:22:54 16.11.2017 (версия для архитектуры x64)

SHA1-хеши:

  • b6fba9877ad79ce864d75b91677156a33a59399e (x86)
  • 8cc16ad99b40ff76ae68d7b3284568521e6413d9 (x64)

Описание

Trojan.XPath.2 представляет собой драйвер многофункционального бэкдора XPath. Имеет две версии — как для 32-разрядных, так и для 64-разрядных операционных систем семейства Microsoft Windows. Задача компонента — внедрение загрузчика полезной нагрузки в процесс lsass.exe, а также фильтрация трафика.

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

В качестве установщика драйвера выступает Trojan.XPath.1.

Работа в ОС Windows, начиная с версии Vista и выше, основана на исходном коде WinDivert версии в промежутке 1.1 (30.06.2013) - 1.2 (17.07.2015).

Работа в ОС Windows, начиная с Windows 2000 и до версии Vista, основана на исходном коде WinPcap.

Драйверы имеют следующие цифровые подписи:

CN = Anhua Xinda (Beijing) Technology Co., Ltd.
OU = Digital ID Class 3 - Microsoft Software Validation v2
O = Anhua Xinda (Beijing) Technology Co., Ltd.
L = Beijing
S = Beijing
C = CN
CN = 长沙马沙电子科技有限公司
O = 长沙马沙电子科技有限公司
L = 长沙市
S = 湖南省
C = CN

Троян получает адреса необходимых функций из файла NDIS.SYS:

#drweb

Затем проверяет, какой из имеющихся модулей — hal.dll, halmacpi.dll или halacpi.dll — был загружен, и получает из него адреса нескольких функций:

#drweb

Далее проверяется загрузка модуля ntdll.dll. Если он не загружен, Trojan.XPath.2 самостоятельно отображает файл в память, после чего получает адреса необходимых функций:

#drweb

После этого создает устройство \\Device\\test1 и символическую ссылку \\DosDevices\\test1.

Через PsSetCreateProcessNotifyRoutine устанавливает функцию обратного вызова, в которой отслеживает создание процесса lsass.exe. Как только такой процесс запускается, читает модуль загрузчика (Trojan.XPath.3) из реестра [\\registry\\machine\\SOFTWARE\\Microsoft\\LoginInfo] 'DirectDraw'. Затем распаковывает его и внедряет в процесс lsass.exe. В 64-битной версии драйвера внедрение кода происходит через функцию PsSetLoadImageNotifyRoutine.

Программа ожидает, пока не сможет открыть \\Systemroot\\explorer.exe, после чего через IoCreateDriver создает драйвер \\FileSystem\\FsBaiduHips.

Прописывает следующие значения в реестре:

  • [\\Registry\\Machine\\System\\CurrentControlSet\\Services\\yyyyyyyyGoogle] 'Group' = "Boot Bus Extender";
  • [\\Registry\\Machine\\System\\CurrentControlSet\\Services\\yyyyyyyyGoogle] 'DependOnService' = "FltMgr";
  • [\\Registry\\Machine\\System\\CurrentControlSet\\Services\\yyyyyyyyGoogle\\Instances] 'DefaultInstance' = 'yyyyyyyyGoogle Instance';
  • [\\Registry\\Machine\\System\\CurrentControlSet\\Services\\yyyyyyyyGoogle\\Instances\\yyyyyyyyGoogle Instance] 'Altitude' = '399999';
  • [\\Registry\\Machine\\System\\CurrentControlSet\\Services\\yyyyyyyyGoogle\\Instances\\yyyyyyyyGoogle Instance] 'Flags' = '00000000'.

Далее пытается зарегистрироваться в качестве мини-фильтра. Если функция FltRegisterFilter возвращает ошибку STATUS_FLT_INSTANCE_ALTITUDE_COLLISION, то программа уменьшает на единицу значение Altitude, а затем пробует снова.

При регистрации мини-фильтром для IRP_MJ_CREATE устанавливается функция обратного вызова PreOperation:

#drweb

Для IRP_MJ_QUERY_INFORMATION устанавливается функция обратного вызова:

#drweb

Для IRP_MJ_DIRECTORY_CONTROL задаются как PreOperation, так и PostOperation функции обратного вызова. С помощью этих четырех функций происходит сокрытие файла драйвера.

Затем создает устройство \\Device\\BaiduHips и символическую ссылку \\DosDevices\\BaiduHips.

Дальнейшее поведение зависит от версии ОС на зараженном компьютере.

BaiduHips (Windows 2000, Windows XP, Windows Server 2003)

Программа регистрирует NDIS-протокол BaiduHips.

Для осуществления функции сетевого экрана драйвер осуществляет перехват функций SendHandler, ReceiveHandler, ReceivePacketHandler, OpenAdapterCompleteHandler:

#drweb

Установка хуков происходит только после получения IOCTL-кода 0x80000800. После этого программа начинает осуществлять фильтрацию трафика (см. ниже).

BaiduHips (Windows Vista, Windows Server 2008 и выше)

Создает WDF-драйвер, при этом в качестве пути сервиса передает [\\Registry\\Machine\\System\\CurrentControlSet\\Services\\BaiduHips].

Дальнейшая инициализация схожа со стандартной инициализацией WinDivert драйвера. Будет производиться отслеживание трафика, переданного по протоколу IPv4.

Самое важное отличие от стандартного WinDivert состоит в функции windivert_filter, которая осуществляет фильтрацию пакетов (см. ниже).

Firewall

Вторая (помимо запуска полезной нагрузки) главная функция драйвера — это фильтрация трафика. Сетевой экран фильтрует TCP/UDP пакеты, переданные по IPv4.

Правила задаются в виде структур:

#pragma pack(push, 1)
struct st_fw_add_tcp
{
  _WORD protocol;
  _DWORD pid;
  _BYTE src_mac[6];
  _BYTE dst_mac[6];
  _DWORD ack;
  _DWORD sn;
  _DWORD src_ip;
  _DWORD dst_ip;
  _WORD src_port;
  _WORD dst_port;
};
#pragma pack(pop)

При этом поля src_mac, dst_mac, ack, sn являются необязательными. Стоит отметить, что в зависимости от направления пакета поля будут сравниваться соответствующим образом. Т. е. для обмена пакета в обе стороны между двумя устройствами достаточно одного правила, где адресатом является тот компьютер, на котором работает этот руткит.

Добавление правил сетевого экрана возможно двумя способами:

  • через соответствующий IOCTL-код;
  • с помощью отправки специально сформированных пакетов по протоколу TCP.

Специальный пакет №1

TCP-пакет со следующими параметрами:

  • значение AckNum установлено 0x87ED5409;
  • значение SeqNum установлено 0x1243FDEC;
  • установлен флаг RST.

При получении такого пакета в сетевой экран вносится правило, разрешающее прохождение трафика с IP-адреса отправителя и порта src_port + 1 до указанного адресата и в обратную сторону.

Специальный пакет №2

Размер TCP-пакета должен быть 32 байта. Первые 4 байта — ключ для расшифровки остальной части данных. Функция дешифровки:

#drweb

Далее происходит сравнение байтов с 4 по 12 со строкой 1I2#aLeb. При совпадении в сетевой экран вносится правило, разрешающее трафик с IP-адреса и порта отправителя.

Стоит отметить, что процесс TCP Handshake не производится, и флаги игнорируются. Важен лишь размер данных и сами данные.

IOCTL-коды

IOCTL-коды трояна:

  • 0x80000800 — установить хуки на сетевых функциях (доступен только на ОС младше Windows Vista);
  • 0x80000815 — добавить правило сетевого экрана для протокола TCP;
  • 0x80000819 — удалить правило сетевого экрана для протокола TCP;
  • 0x8000081D — добавить правило сетевого экрана для протокола UDP;
  • 0x80000821 — удалить правило сетевого экрана для протокола UDP;
  • 0x80001005 — установить значение двух переменных (не используются).

IOCTL-коды от WinDivert (доступны только на ОС, начиная с версии Vista и выше):

  • 0x80002422 — получить перенаправленный (diverted) пакет;
  • 0x80002425 — отправить пакет;
  • 0x80002429 — начать фильтрацию;
  • 0x8000242D — установить уровень;
  • 0x80002431 — установить приоритет;
  • 0x80002435 — установить флаги;
  • 0x80002439 — установить параметр;
  • 0x8000243E — получить значение параметра.

Артефакты

Помимо пути до файлов проекта, раскрытого в PDB-путях:

Z:\desk_codes\project_xpath\ObjFile\SecKernel\SecKernel.pdb
Z:\desk_codes\project_xpath\ObjFile\SecKernel64\SecKernel.pdb

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

bwctrl.c
Ndis5.c
Ndis6.c
SecKernel.c

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

out of memory2
out of memory3
out of memory4
del tcp pid:%d,%d,%d\n
size not match:%d,%d\n
get:%wZ mac:%02x-%02x-%02x-%02x-%02x-%02x
test my tcp packet,eth len:%d,%d-->%d\n
init drv :%d,%d\n
init drv :%x\n
\C:\InjectIntoProcess crash
\C:\NewProcess crash
\C:\ProcessGone crash
\C:\ProcessCallback crash
\C:\InitDriver crash

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

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

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