Многокомпонентная вредоносная программа, предназначенная для хищения информации из приложений, используемых аптеками и фармацевтическими фирмами для закупки медикаментов. Данная версия специализируется на хищении данных из приложения FM_client.exe («АИАС ИНПРО-ФармРынок» производства компании «Информационные Технологии»). Включает в себя несколько модулей.
pexec.dll
Модуль, содержащий в себе драйверы троянца и полезную нагрузку. Расшифровывает из своего тела основные компоненты, проверяет наличие (и при отсутствии — создает) мьютекс:
Global\{3D5A1694-CC2C-4ee7-A3D5-A879A9E3A62A}
Из секции .cdata извлекает зашифрованный драйвер и сохраняет его под именем
%SYSTEM32%\drivers\isaPnpPrt.cfg
Из секции .bdata извлекает два зашифрованных файла — драйвер и модуль бэкдора, расшифровывает и распаковывает их, драйвер сохраняет на диск под именем
%SYSTEM32%\drivers\isaPnpPrt.sys
Бэкдор сохраняется под именем
%SYSTEM32%\isaPnpPrt.inf_x86_neutral_1c30fe3e981e1595
Необходимые для своей работы параметры троянец сохраняет в системном реестре:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\isaPnpPrt]
"ImagePath"="system32\\drivers\\isaPnpPrt.sys"
"DisplayName"="isaPnpPrt"
"Group"="Boot Bus Extender"
"Type"=dword:00000001
"Start"=dword:00000001
"ErrorControl"=dword:00000000
"ID"="21d9d915f9671_743bcf967336482db184f3c64db39b12"
"Desc"="C:\\WINDOWS\\system32\\isaPnpPrt.inf"
"DriverPackageIdPkg"="\\??\\C:\\WINDOWS\\system32\\isaPnpPrt.inf_x86_neutral_1c30fe3e981e1595"
"RulesData"=hex:02,00,00,00,a6,00,5c,00,44,00,65,00,76,00,69,00,63,00,65,00,5c,\
00,48,00,61,00,72,00,64,00,64,00,69,00,73,00,6b,00,56,00,6f,00,6c,00,75,00,\
6d,00,65,00,31,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,00,53,00,5c,00,73,\
00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,69,00,73,00,61,00,50,00,\
6e,00,70,00,50,00,72,00,74,00,2e,00,69,00,6e,00,66,00,5f,00,78,00,38,00,36,\
00,5f,00,6e,00,65,00,75,00,74,00,72,00,61,00,6c,00,5f,00,31,00,63,00,33,00,\
30,00,66,00,65,00,33,00,65,00,39,00,38,00,31,00,65,00,31,00,35,00,39,00,35,\
00,00,00
Драйвер запускается с использованием функции NtLoadDriver.
Один из двух драйверов имеет размер порядка 8 КБ, обычно хранится в файле с именем rpcssprt.sys или isaPnpPrt.sys, его основное предназначение — загрузка в память инфицируемого компьютера другого драйвера, имеющего то же имя, но другое расширение — .cfg. В случае если драйверу удается открыть файл с полезной нагрузкой, он расшифровывается, распаковывается и загружается в память. Оба файла имеют цифровую подпись, зарегистрированную на имя SPВ Group OOO.
При этом в свойствах драйвера isaPnpPrt.sys указана информация о том, что этот файл якобы является драйвером ATAPI производства Microsoft Corporation.
Основной драйвер создает в системе новое виртуальное устройство \\.\{41C4774D-A453-4330-8C6C-FEBEACC85D7E}, которое реализует следующие сервисы:
- 0x220008 удаляет драйвер с диска и сопутствующие данные из реестра;
- 0x22000C получить ID троянца (значение "ID" извлекается из реестра);
- 0x220010 получить путь к файлу конфигурации;
- 0x220014 получить путь к основному телу троянца ("DriverPackageIdPkg");
- 0x220018 поднять привилегии текущему треду. Используется основным модулем троянца перед запуском загруженных из сети файлов;
- 0x22c004 получить и обнулить счетчик количества процессов, в которые удалось встроить вредоносный модуль.
Фактически, драйвер реализует только одну основную задачу — встраивание полезной нагрузки в процессы explorer.exe и svchost.exe.
fmauto.dll, fmauto2.dll
Полезная нагрузка, предназначена собственно для хищения информации из системы электронного заказа медикаментов. Этот компонент извлекает из программы-клиента файл со сведениями о закупках лекарств, формирует архив, устанавливает для него пароль и отправляет к себе на сервер. Архив может включать содержимое следующего вида:
info.txt
Аптека-******* г.Ростов-на-Дону.csv
*******-Фарма г.С-Петербург.csv
******-Ростов.csv
***** г.Волгоград.csv
**** г.Краснодар.csv
***** (*****фармация) Ростовский филиал.csv
*** ****** г.Ростов-на-Дону.csv
Файл info.txt обычно содержит сведения об инфицированном компьютере, например:
Client Name: ООО "****-Фарм"
Date: 02.04.2014
OS Version: Windows XP
Client Version: 1.5.160.0
Module Version: 4.3
COMPNAME: ***SRV
Date3: 02.04.2014
PC TIME: 02.04.2014 13:11:20
Каждый из файлов с расширением .CSV, в свою очередь, включает данные о закупках медикаментов и расценках на различные препараты, например:
Date: 02.04.2014
Firm: Аптека-******* г.Ростов-на-Дону
Скидки-наценки: Конечные цены!
Код;Цена;Минимальная цена;Остаток;
27484;204,36;9 месяцев Омегамама капс. 0.7г N30;Отечественные лекарства Польша;166,19;9;
29772;1343,3;Авандамет табл. п.п.о. 2мг/500мг N56;GlaxoSmithKline Traiding Испания;1181,91;5;
21385;310,45;Адвантан мазь 0.1% туба 15г;Bayer Consumer Италия;273,1;347;
26518;59,28;Адрианол капли назальн. фл.-кап. 10мл;Actavis Сербия;52,53;93;
15955;26,59;Азитромицин капс. 250мг N6;Вертекс ЗАО Россия;23,8;3530;
33329;112,41;Азитромицин табл. п.п.о 500 мг N3;Березовский фармацевтический з Россия-Македония;99,3;269;
…
Выполняет запросы вида:
select KPP, FDATE, MAINNAME from ZAKAZ1 where FDATE between ****
select KPP, FIRM, KOL, KOD, CENA from ZAKAZ2 where KPP=***
для поиска информации в базах данных клиента.
exist.dll
Модуль, предназначенный для борьбы с различными неполадками в работе вредоносной программы.
isaPnpPrt.inf_x86_neutral_1c30fe3e981e1595
Основной модуль бэкдора. Генерирует имя управляющего сервера с использованием специального алгоритма, затем отправляет на него данные о своей текущей конфигурации с использованием метода POST:
a=ZAKAZ_B4DF7611035CBAD4&b=BASE64(RC4(label=rnd&ver=26&t=CFG&d=RC4([common]\r\ndefdll=0F95DA37\r\n)))
Где a - сгенерированный ключ, label и ver - версия троянца, t - команда, BASE64 и RC4 —данные, зашифрованные этими алгоритмами.
Если данные получены успешно, сервер возвращает троянцу статус 200, после чего он считает этот сервер управляющим.
Может выполнять следующие команды:
- mod — установка модуля;
- delmod — удаление модуля;
- dande — обновление дроппера Win32.Dande, скачивание файла, в случае необходимости – расшифровка, сохранение и запуск;
- setopt — установка параметров.
Может отправлять следующие отчёты серверу:
- MODSCS — отчёт об успешной установке модуля, после этого отчёта конфигурация с установленным модулем по команде t=ping больше не приходит;
- DANDE_INST_SCS — скачивание и установка модуля по команде dande;
- DELMODSCS — удаление модуля;
- RESULT — отправка результатов работы скачанного модуля.
Установка модулей
Для установки модулей бэкдор запрашивает конфигурацию с управляющего сервера:
a=ZAKAZ_B4DF7611035CBAD4&b=BASE64(RC4(label=rnd&ver=26))
В ответ получает конфигурацию следующего содержания:
BASE64(RC4(t=mod&n=fmauto.dll&f=Routine&p=none&ps=explorer.exe&d=RC4(file)))
Где:
file — библиотека модуля;
t=mod — команда установки модуля;
n — имя модуля;
f — имя экспортируемой функции;
p — параметры функции;
d — зашифрованные бинарные данные.
Формирует новый конфигурационный файл C:\windows\temp\ на основе принятых данных:
[common]
domnum=1
domsubnum=0
timeHI=30363270
timeLO=-1049525216
[ff.dll]
func=Routine
param=none
path=C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp\mAAEE.tmp
procs=explorer.exe
[results]
[p1.dll]
func=Routine
param=none
path=C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp\mD5F3.tmp
procs=explorer.exe
[fm1.dll]
func=Routine
param=none
path=C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp\mB04B.tmp
procs=explorer.exe
[f1.dll]
func=Routine
param=none
path=C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp\m3AC1.tmp
procs=explorer.exe
[executed]
ff.dll=1
Сохраняет исполняемый файл в зашифрованном виде в папке C:\windows\temp\, затем отправляет на управляющий сервер отчёт об успешной установке модуля:
a=ZAKAZ_B4DF7611035CBAD4&b=BASE64(RC4(label=rnd&ver=26&t=MODSCS&n=fmauto.dll))
Периодически сканирует содержимое папки С:\windows\temp и загружает модули в память.