TajMahal — это ранее неизвестный, технически сложный APT-фреймворк для шпионажа, обнаруженный «Лабораторией Касперского» осенью 2018 г. В него входят бэкдоры, загрузчики, средства для коммуникации с командным сервером, модули записи звука, клавиатурные шпионы, средства захвата изображения экрана и веб-камеры, инструменты для кражи документов и криптографических ключей и даже собственный индексатор файлов машины-жертвы. Мы обнаружили 80 вредоносных модулей, хранящихся в специально разработанной зашифрованной виртуальной файловой системе — почти рекордное число плагинов в наборе инструментов для проведения APT-атак.
Небольшая иллюстрация возможностей TajMahal: с его помощью злоумышленник способен красть данные с компакт-диска, записываемого жертвой, а также файлы, стоящие в очереди на печать. Кроме того, можно «заказать» кражу определенного файла с USB-носителя: при первом подключении носителя к ПК данные на нем индексируются, а при следующем — ранее выбранное передается злоумышленнику.
По нашим представлениям TajMahal разрабатывается и используется не менее пяти лет: наиболее ранняя известная временная метка образца, которой мы можем доверять, датируется августом 2013 г., последняя — апрелем 2018 г. А первая подтвержденная дата обнаружения образцов TajMahal на компьютере-жертве — август 2014 г.
Более полные данные о TajMahal доступны клиентам сервиса Kaspersky Intelligence Reporting по почте intelreports@kaspersky.com.
Технические данные
Мы обнаружили два типа пакетов TajMahal — разработчики назвали их Tokyo и Yokohama. Tokyo используется на первом этапе заражения и остается в системе в качестве «резерва», а Yokohama вторым этапом разворачивает на компьютере полезную нагрузку. У обоих пакетов общая кодовая база. Мы обнаружили следующие интересные функции:
- Возможность кражи документов, отправленных на печать;
- Сбор информации о жертве (данные включают в себя список резервных копий iOS-устройств);
- Запись VoIP-звонков и одновременное создание скриншотов;
- Кража образов компакт-дисков, записываемых на скомпрометированной машине;
- Возможность кражи определенных файлов с внешних носителей при их повторном подключении к ПК;
- Кража куки-файлов браузеров.
Жертвы
На сегодняшний день, по данным нашей телеметрии, зафиксирована единственная жертва — дипломатическое представительство среднеазиатской страны.
Заключение
Фреймворк TajMahal — это любопытная и весьма интересная находка, в частности из-за высокого технического уровня исполнения. Интересно также большое число плагинов, среди которых много уникальных. Например, плагин, ожидающий подключения ранее «увиденного» внешнего диска, и плагин, работающий со сторонним ПО для индексации файлов — это то, что мы никогда ранее не видели в таргетированных атаках. Возникает вопрос: зачем столько усилий, если жертва всего одна? Логично предположить, что есть и другие. Хотя наша телеметрия ограничена — не все устройства защищены нашими продуктами и не все пользователи соглашаются делиться с нами информацией — у нас есть косвенные подтверждения тому, что в настоящий момент есть активные заражения (известные нам были обезврежены с помощью наших продуктов).
Защитные продукты «Лаборатории Касперского» детектируют образцы TajMahal APT с вердиктом HEUR:Trojan.Multi.Chaperone.gen.
Индикаторы компрометации
Дополнительная информация о TajMahal а также полный набор индикаторов заражения и YARA-правил предоставляется клиентам сервиса Kaspersky Intelligence Reporting по почте intelreports@kaspersky.com.
Домены и IP-адреса
104.200.30.125
50.56.240.153
rahasn.webhop[.]org
rahasn.akamake[.]net
rahasn.homewealth[.]biz
Хэш-суммы файлов
22d142f11cf2a30ea4953e1fffb0fa7e
2317d65da4639f4246de200650a70753
27612cb03c89158225ca201721ea1aad
412956675fbc3f8c51f438c1abc100eb
490a140093b5870a47edc29f33542fd2
51a7068640af42c3a7c1b94f1c11ab9d
533340c54bd25256873b3dca34d7f74e
684eca6b62d69ce899a3ec3bb04d0a5b
69a19abf5ba56ee07cdd3425b07cf8bf
6cfd131fef548fcd60fbcdb59317df8e
72dc98449b45a7f1ccdef27d51e31e91
7c733607a0932b1b9a9e27cd6ab55fe0
7d5265e814843b24fcb3787768129040
80c37e062aa4c94697f287352acf2e9d
815f1f8a7bc1e6f94cb5c416e381a110
a43d3b31575846fa4c3992b4143a06da
08e82dc7bae524884b7dc2134942aadb
7bcd736a2394fc49f3e27b3987cce640
57314359df11ffdf476f809671ec0275
b72737b464e50aa3664321e8e001ff32
ce8ce92fb6565181572dce00d69c24f8
5985087678414143d33ffc6e8863b887
84730a6e426fbd3cf6b821c59674c8a0
d5377dc1821c935302c065ad8432c0d2
d8f1356bebda9e77f480a6a60eab36bb
92f8e3f0f1f7cc49fad797a62a169acd
9003cfaac523e94d5479dc6a10575e60
df91b86189adb0a11c47ce2405878fa1
e17bd40f5b5005f4a0c61f9e79a9d8c2
c1e7850da5604e081b9647b58248d7e8
99828721ac1a0e32e4582c3f615d6e57
f559c87b4a14a4be1bd84df6553aaf56
b9c208ea8115232bfd9ec2c62f32d6b8
061089d8cb0ca58e660ce2e433a689b3
0e9afd3a870906ebf34a0b66d8b07435
9c115e9a81d25f9d88e7aaa4313d9a8f
520ee02668a1c7b7c262708e12b1ba6b
7bfba2c69bed6b160261bdbf2b826401
77a745b07d9c453650dd7f683b02b3ed
3a771efb7ba2cd0df247ab570e1408b2
0969b2b399a8d4cd2d751824d0d842b4
fc53f2cd780cd3a01a4299b8445f8511
4e39620afca6f60bb30e031ddc5a4330
bfe3f6a79cad5b9c642bb56f8037c43b
3dfebce4703f30eed713d795b90538b5
9793afcea43110610757bd3b800de517
36db24006e2b492cafb75f2663f241b2
21feb6aa15e02bb0cddbd544605aabad
21feb6aa15e02bb0cddbd544605aabad
649ef1dd4a5411d3afcf108d57ff87af
320b2f1d9551b5d1df4fb19bd9ab253a
3d75c72144d873b3c1c4977fbafe9184
b9cf4301b7b186a75e82a04e87b30fe4
b4e67706103c3b8ee148394ebee3f268
7bfbd72441e1f2ed48fbc0f33be00f24
cdb303f61a47720c7a8c5086e6b2a743
2a6f7ec77ab6bd4297e7b15ae06e2e61
8403a28e0bffa9cc085e7b662d0d5412
3ffd2915d285ad748202469d4a04e1f5
04078ef95a70a04e95bda06cc7bec3fa
235d427f94630575a4ea4bff180ecf5d
8035a8a143765551ca7db4bc5efb5dfd
cacaa3bf3b2801956318251db5e90f3c
1aadf739782afcae6d1c3e4d1f315cbd
c3e255888211d74cc6e3fb66b69bbffb
d9e9f22988d43d73d79db6ee178d70a4
16ab79fb2fd92db0b1f38bedb2f02ed8
8da15a97eaf69ff7ee184fc446f19cf1
ffc7305cb24c1955f9625e525d58aeee
c0e72eb4c9f897410c795c1b360090ef
9ad6fa6fdedb2df8055b3d30bd6f64f1
44619a88a6cff63523163c6a4cf375dd
a571660c9cf1696a2f4689b2007a12c7
81229c1e272218eeda14892fa8425883
0ac48cfa2ff8351365e99c1d26e082ad
Дополнительная техническая информация
В следующей таблице приводится полный список файлов, хранящихся в виртуальной файловой системе, с кратким описанием плагинов.
№ | Имя | Краткое описание |
00 01 |
cs64.dll cs32.dll |
Коммуникация с командным сервером и обработка команд. Кража документов из директорий, помеченных как WatchPoints — если документ в директории был изменен, то он будет отправлен на C&C. |
02 03 |
li64.dll li32.dll |
Собирает большое количество информации в файл с названием TAJ MAHAL. |
04 06 |
ad64.dll ad32.dll |
Модуль для записи аудио с микрофона, и перехвата VoIP звонков. |
07 08 |
le64.dll le32.dll |
Open-source-кодировщик LAME mp3 (Mar 27 2014), используемый плагином AudioRecorder (adXX.dll). |
09 | dd.m | Кэш модуля AudioRecorder (adXX.dll) — MP3-файл, где хранится записанное аудио. |
10 11 |
me64.dll me32.dll |
Модуль записи аудио для приложений Windows Metro. Выполняет инжект ma32.dll в процесс wwahost.exe или audacity.exe. |
12 | ma32.dll | Модуль записи аудио для Windows COM. Перехватывает интерфейсы IAudioClient, IAudioRenderClient, IMMDevice. |
13 14 |
ams_api64.dll ams_api32.dll |
API exXX.dll, pdXX.dll, sgXX.dll. |
15 16 |
ex64.dll ex32.dll |
Управляющий модуль. Обновления, установка, удаление. Выбирает целевые процессы, куда загружает плагины. |
17 18 |
fe64.dll fe32.dll |
Шаблон Frontend-модуля Yokohama, используется при переустановке. |
19 20 |
pd64.dll pd32.dll |
API для получения доступа к параметрам конфигурации, рабочим файлам, очереди файлов на отправку на C&C (egress queue). |
21 22 |
libpng64.dll libpng32.dll |
Open-source библиотека libpng версии 1.5.8 (1 февраля 2012 г.). Используется плагином Screenshoter (ssXX.dll). |
23 24 |
rs64.dll rs32.dll |
Reinstaller/Injector: переустанавливает TajMahal в случае если вредоносные файлы были повреждены, выполняет инжект кода. |
25 26 |
ix32.dll ix64.dll |
DLL-библиотека — используется плагином Reinstaller/Injector (rsXX.dll) в случае необходимости вызова LoadLibrary. Т.к. вызов LoadLibrary из шелл-кода подозрителен, все вызовы осуществляются через эту библиотеку. |
05 27 28 |
obj32.bin obj32.bin obj64.bin |
Шаблон шелл-кода, используемый модулями Reinstaller/Injector (rsXX.dll) и AudioRecorder4MetroApp (meXX.dll) для выполнения инжектов в выполняющиеся процессы. Две версии obj32.bin идентичны — вероятно, они сохранены дважды по ошибке. |
29 30 |
sc64.dll sc32.dll |
Библиотека утилит. Предоставляет API для криптографии, операций по управлению файлами, реестром, памятью и т. д. |
31 32 |
sg64.dll sg32.dll |
Библиотека для управления egress queue (файлами и сообщениями, подготовленными к отправке на командный сервер). |
33 34 |
st64.dll st32.dll |
Модуль SuicideWatcher — отслеживает время удаления, проверяет разницу во времени (локальное и интернет-время). |
35 36 |
zip64.dll zip32.dll |
Open-source-библиотека XZip/XUnzip. Используется плагинами Indexer(inXX.dll) и плагином коммуникации с командным сервером (csXX.dll). |
37 38 |
zlib64.dll zlib32.dll |
Open-source-плагин zlib версии 1.2.3, используется libpngXX.dll для сжатия скриншотов (ssXX.dll). |
39 | il32.dll | Модуль IM-Stealer. Крадет переписку из окон мессенджеров |
40 55 |
in32.dll in64.dll |
Плагин Indexer. Индексирует файлы накопителей, пользовательских профилей, съемных носителей. Индексные файлы архивируются (zipXX.dll) и помещаются в очередь отправки на C&C (egress queue). |
41 42 43 44 46 47 48 49 50 51 52 53 56 |
isys9core_64.dll isyspdf6_64.dll isyspdfl_64.dll isysdc_64.dll isys9.key isys.cwd isys.elx isys9_32.dll isys9core_32.dll isyspdf6_32.dll isyspdfl_32.dll isysdc_32.dll isys9_64.dll |
Проприетарные компоненты ISYS Search Software, используются плагином Indexer. Licensee_ID1 «Q5GXU H5W67 23B4W SCQFD 4G7HV 9GSLW» Licensee_ID2 «objectviewer.exe» |
45 54 |
sqlite3_64.dll sqlite3_32.dll |
Open-source-библиотека sqlite. Используется ISYS Search. |
57 58 |
tn32.dll tn64.dll |
Плагин Thumbnailer. Создает пиктограммы найденных изображений и подготавливает их к отправке. |
59 60 61 62 |
freeimage_32.dll freeimageplus_32.dll freeimage_64.dll freeimageplus_64.dll |
Open-source-библиотека FreeImage обеспечивает поддержку популярных форматов графических изображений (версия 3.15.4 2012-10-27) (http://freeimage.sourceforge.net). Используется плагином Thumbnailer (tnXX.dll). |
63 64 |
ku64.dll ku32.dll |
Кейлоггер и монитор буфера обмена. |
65 66 |
pm64.dll pm32.dll |
Крадет документы из очереди принтера. Включает атрибут KeepPrintedJobs для каждого сконфигурированного принтера в реестре (SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Print\\Printers значение Attributes) и собирает файлы, отправленные на печать. |
67 68 |
rc64.dll rc32.dll |
Плагин EgressSender. Отсылает файлы из очереди (egress queue) на командный сервер. |
69 70 |
rn64.dll rn32.dll |
Ежедневный сбор данных по «клиентам»: имя компьютера, информация по ОС, Mac-адрес, ключи к беспроводным сетям, подключенные устройства Apple, список резервных копий мобильных устройств Apple, версия Internet Explorer, информация Центра Безопасности (антивирус, межсетевой экран, антишпионские решения), данные о «железе» и установленном ПО (включая приложения Metro), пользователи, автозапуск. Проверяет собранную информацию и отправляет на командный сервер, если есть изменения. |
71 72 |
ss64.dll ss32.dll |
Плагин Screenshoter — периодически делает скриншоты в низком разрешении; делает скриншоты в высоком разрешении окон указанных процессов и при записи аудио из VoIP-приложений. |
73 74 |
vm32.dll vm64.dll |
Крадет документы со стационарных и съемных дисков. Наблюдает за записью компакт-дисков (CDBurnArea), крадет образы записываемых компакт-дисков. |
75 76 |
wc64.dll wc32.dll |
Периодически делает снимки с помощью веб-камеры. |
77 | default.cfg | Файл настроек конфигурации по умолчанию. |
78 | runin.bin | Список соответствия имен процессов и плагинов, которые должны исполняться внутри этих процессов. |
79 | morph.dat | Конфигурационный файл, хранит путь к рабочим папкам и ключам реестра. |
Проект TajMahal — новый продвинутый фреймворк для APT-атак