Cassandra: криптор, который любит держаться в тени

Ни один атакующий не хочет, чтобы его инструменты обнаружили и раскрыли раньше времени. Поэтому, как правило, в чистом виде никто вредоносные программы не распространяет. Например, пользователю прилетело фишинговое письмо от имени известной транспортной компании и просят проверить документы во вложении. Подобные письма достаточно часто являются началом атаки, так было и в этом раз. Внутри архива находился исполняемый файл Cassandra Crypter — популярный криптор, полезной нагрузкой которого могут выступать различные семейства вредоносного программного обеспечения. Алексей Чехов, аналитик CERT-GIB, рассказывает, как Cassandra проникает на компьютер жертвы и приводит с собой других незваных гостей.

ddc605369b0fd8e043f254f9ec349e59.png
Работу Cassandra можно условно разделить на два этапа. На первой стадии загружается вспомогательная библиотека, которая извлекает основную часть криптора из исходного файла. На второй — криптор раскрывает весь свой потенциал.

62a8f8ccea87d16354735e7747727e9e.png

Первая стадия​

Cassandra маскируется под легитимное приложение. В точке входа располагается стандартная для приложений Windows Forms функция запуска.

e193a3a66faad200ffdce6b6a52d15f9.png
Конструктор формы также выглядит стандартным, ничем не отличающимся от легитимного приложения.

0d582ba621a30d5b1d23520516555e45.png
При детальном анализе был обнаружен вызов функции aaa(), которая содержит вредоносный функционал. Ее вызов приводит к расшифровке и подгрузке вспомогательной dll.

85bea25b96161ba705ec86ed78dc4c52.png
Для расшифровки используется алгоритм AES.

4163ca9c143b1a117aed34fcaea6a304.png
После подгрузки вспомогательной dll вызовется одна из её функций, в результате чего будет получена и запущена вторая стадия криптора.

6c02a5ba4113ab2adaca20343008a797.png
Вторая стадия содержится в изображении, в зашифрованном виде, в исходной сборке.

dfe9760a1cf89202dfa486bbd7995d9a.png
Для расшифровки используется операция XOR, ключом для расшифровки являются первые 16 байтов исходного изображения.

3c013899d49f225f12cd84f15961762a.png
В первой стадии злоумышленники практически не используют средства противодействия анализу, отладки и так далее, за исключением обфускации дополнительной библиотеки.

Вторая стадия​

Вторая стадия представляет собой исполняемый файл .Net Framework.

Конфигурационный файл​

Ключ, который используется на первой стадии расшифровки пейлоада"baAsaBBxDT"
Поле, содержащее пейлоад в расшифрованном виде
Поле содержащее сырой (не разобранный) конфиг"0||0||0||0||0||||||0||0||0||0||||||||||||||0||0||0||0||0||0||0||0||v2||0||3046||0||0||||||0||0||0||||"
Поле, содержащее подготовленный конфиг
Поле, содержащее флаг типа инжекта0
Поле, содержащее флаг закрепления в системе0
Поле, содержащее имя файла после закрепления в системе"YhwcrydjrNS"
Поле, содержащее название мьютекса"ljrSLVyCApWxcUE"
Неиспользуемое поле0
Поле, содержащее информацию об использовании загрузчика0
Поле, содержащее информацию о пути до загруженного файла0
Поле, содержащее ссылку на пейлоад0
Поле, содержащее информацию об использовании Anti-VM/Sandbox-функции, осуществляющей поиск 0
Поле, содержащее информацию об использовании Anti-VM/Sandbox-функции, осуществляющей поиск строк в пути файла0
Неиспользуемое поле0
Неиспользуемое поле0
Поле, содержащее информацию об использовании Fake MessageBox0
Текст заголовка Fake MessageBox0
Текст Fake MessageBox0
Информация о кнопках Fake MessageBox0
Информация об иконке Fake MessageBox0
Количество секунд, в течение которых приложение будет бездействовать0
9221f2fcc70a3d5ae6549d60a576423b.png Функция, осуществляющая разбор конфигурационного файла

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

Полезная нагрузка содержится в крипторе в зашифрованном виде. Расшифровка проходит в два этапа:

1. В цикле осуществляется побайтовый XOR шифрограммы, ключа и значения операции XOR от последнего элемента байта шифрограммы и 112. Полученные значения сохраняются в созданный массив. Ключ для первой стадии содержится в конфигурационном файле.

e2dab05b844044ea3b43d9f8ded8bc3e.png
2. Осуществляется дешифрование, аналогичное тому, что было на первой стадии: используется операция XOR, в качестве ключа используются первые 16 байтов массива, полученного на первом этапе.

0eee039b98c651027ab5586b89ceb7be.png

Закрепление в системе​

Закрепление в системе осуществляется через создание отложенной задачи. Файл копируется в директорию AppData//{имя файла, заданное в конфиге}+”.exe”. После этого исходный файл удаляется и создается задача на выполнение.

0deffc111d21d23bcfe7e5273e54d4b3.png

f92857b561b1019f0ca178a321148823.png

Anti-VM​

В функции осуществляется поиск виртуальных видеоадаптеров и специфических ключей реестра, свойственных для виртуальных машин.

3705d7c4f61b73a5cb7b92d8f0ff3f4c.png 2a5359fca868eac75553ab1ab6b8fcd8.png

Anti-Sandbox​

Реализованы три функции противодействия песочнице:

  • Детект изолированной среды. Функция проверяет путь до исполняемого файла и ищет в нём специфические строки, таких как \\VIRUS, SAMPLE, SANDBOX и т.д. Также осуществляется поиск окна, свойственного WindowsJail, и библиотеки SbieDll.dll, загруженной в процесс.
3487c6eecaa9ac42ebccbce6b190e238.png
  • Попытка обхода песочницы по таймауту. Реализована при помощи стандартной процедуры Sleep.
f07b246eabe2059ffd2d3b111c22cdee.png
  • Попытка обхода песочницы по user activity. Реализована при помощи показа Fake MessageBox.
22b51540f939d6a35866d520992e9a48.png

Защита от повторного запуска​

Реализована путем создания мьютекса с заданным именем в системе.

ef53167017e3072fca559eac65e73e1c.png

Функционал​

Downloader

Реализована функция загрузки пейлоада из сети.

1abac2c102153175d6bf48aaa393e377.png

Запуск полезной нагрузки​

Содержит два варианта запуска пейлоада:

1. Загрузка в память при помощи функций .Net Framework.

4ca97347575797bcad4abc6b73c1375e.png
2. Инжект полезной нагрузки в запущенный процесс. Есть возможность выбора из нескольких процессов.

0796e56ed896fc7667e3f7b7df59fd7b.png
На данный момент Cassandra — достаточно распространенный тип крипторов. Как правило, злоумышленники используют его в массовых рассылках, чтобы незаметно запускать на машине пользователя вредоносное ПО. Cassandra позволяет запускать даже хорошо изученные семейства ВПО.

Источник: Все публикации подряд / Хабр
 
Назад
Сверху Снизу