Ни один атакующий не хочет, чтобы его инструменты обнаружили и раскрыли раньше времени. Поэтому, как правило, в чистом виде никто вредоносные программы не распространяет. Например, пользователю прилетело фишинговое письмо от имени известной транспортной компании и просят проверить документы во вложении. Подобные письма достаточно часто являются началом атаки, так было и на этот раз. Внутри архива находился исполняемый файл Cassandra Crypter — популярный криптор, полезной нагрузкой которого могут выступать различные семейства вредоносного программного обеспечения. Алексей Чехов, аналитик CERT-GIB, рассказывает, как Cassandra проникает на компьютер жертвы и приводит с собой других незваных гостей.
![](https://habrastorage.org/getpro/habr/upload_files/ddc/605/369/ddc605369b0fd8e043f254f9ec349e59.png)
Работу Cassandra можно условно разделить на два этапа. На первой стадии загружается вспомогательная библиотека, которая извлекает основную часть криптора из исходного файла. На второй — криптор раскрывает весь свой потенциал.
![](https://habrastorage.org/getpro/habr/upload_files/62a/8f8/cce/62a8f8ccea87d16354735e7747727e9e.png)
Первая стадия
Cassandra маскируется под легитимное приложение. В точке входа располагается стандартная для приложений Windows Forms функция запуска.
![](https://habrastorage.org/getpro/habr/upload_files/e19/3a3/a66/e193a3a66faad200ffdce6b6a52d15f9.png)
Конструктор формы также выглядит стандартным, ничем не отличающимся от легитимного приложения.
![](https://habrastorage.org/getpro/habr/upload_files/0d5/82b/a62/0d582ba621a30d5b1d23520516555e45.png)
При детальном анализе был обнаружен вызов функции aaa()
, которая содержит вредоносный функционал. Ее вызов приводит к расшифровке и подгрузке вспомогательной dll
.
![](https://habrastorage.org/getpro/habr/upload_files/85b/ea2/5b9/85bea25b96161ba705ec86ed78dc4c52.png)
Для расшифровки используется алгоритм AES.
![](https://habrastorage.org/getpro/habr/upload_files/416/3ca/9c1/4163ca9c143b1a117aed34fcaea6a304.png)
После подгрузки вспомогательной dll
вызовется одна из её функций, в результате чего будет получена и запущена вторая стадия криптора.
![](https://habrastorage.org/getpro/habr/upload_files/6c0/2a5/ba4/6c02a5ba4113ab2adaca20343008a797.png)
Вторая стадия содержится в изображении, в зашифрованном виде, в исходной сборке.
![](https://habrastorage.org/getpro/habr/upload_files/dfe/976/0a1/dfe9760a1cf89202dfa486bbd7995d9a.png)
Для расшифровки используется операция XOR, ключом для расшифровки являются первые 16 байтов исходного изображения.
![](https://habrastorage.org/getpro/habr/upload_files/3c0/138/99d/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 MessageBox | 0 |
Текст заголовка Fake MessageBox | 0 |
Текст Fake MessageBox | 0 |
Информация о кнопках Fake MessageBox | 0 |
Информация об иконке Fake MessageBox | 0 |
Количество секунд, в течение которых приложение будет бездействовать | 0 |
![Функция, осуществляющая разбор конфигурационного файла Функция, осуществляющая разбор конфигурационного файла](https://habrastorage.org/getpro/habr/upload_files/922/1f2/fcc/9221f2fcc70a3d5ae6549d60a576423b.png)
Полезная нагрузка
Полезная нагрузка содержится в крипторе в зашифрованном виде. Расшифровка проходит в два этапа:
1. В цикле осуществляется побайтовый XOR шифрограммы, ключа и значения операции XOR от последнего элемента байта шифрограммы и 112. Полученные значения сохраняются в созданный массив. Ключ для первой стадии содержится в конфигурационном файле.
![](https://habrastorage.org/getpro/habr/upload_files/e2d/ab0/5b8/e2dab05b844044ea3b43d9f8ded8bc3e.png)
2. Осуществляется дешифрование, аналогичное тому, что было на первой стадии: используется операция XOR, в качестве ключа используются первые 16 байтов массива, полученного на первом этапе.
![](https://habrastorage.org/getpro/habr/upload_files/0ee/e03/9b9/0eee039b98c651027ab5586b89ceb7be.png)
Закрепление в системе
Закрепление в системе осуществляется через создание отложенной задачи. Файл копируется в директорию AppData//{имя файла, заданное в конфиге}+”.exe”
. После этого исходный файл удаляется и создается задача на выполнение.
![](https://habrastorage.org/getpro/habr/upload_files/0de/ffc/111/0deffc111d21d23bcfe7e5273e54d4b3.png)
![](https://habrastorage.org/getpro/habr/upload_files/f92/857/b56/f92857b561b1019f0ca178a321148823.png)
Anti-VM
В функции осуществляется поиск виртуальных видеоадаптеров и специфических ключей реестра, свойственных для виртуальных машин.
![](https://habrastorage.org/getpro/habr/upload_files/370/5d7/c4f/3705d7c4f61b73a5cb7b92d8f0ff3f4c.png)
![](https://habrastorage.org/getpro/habr/upload_files/2a5/359/fca/2a5359fca868eac75553ab1ab6b8fcd8.png)
Anti-Sandbox
Реализованы три функции противодействия песочнице:
Детект изолированной среды. Функция проверяет путь до исполняемого файла и ищет в нём специфические строки, таких как \\VIRUS, SAMPLE, SANDBOX и т.д. Также осуществляется поиск окна, свойственного WindowsJail, и библиотеки SbieDll.dll, загруженной в процесс.
![](https://habrastorage.org/getpro/habr/upload_files/348/7c6/eec/3487c6eecaa9ac42ebccbce6b190e238.png)
Попытка обхода песочницы по таймауту. Реализована при помощи стандартной процедуры Sleep.
![](https://habrastorage.org/getpro/habr/upload_files/f07/b24/6ea/f07b246eabe2059ffd2d3b111c22cdee.png)
Попытка обхода песочницы по user activity. Реализована при помощи показа Fake MessageBox.
![](https://habrastorage.org/getpro/habr/upload_files/22b/515/40f/22b51540f939d6a35866d520992e9a48.png)
Защита от повторного запуска
Реализована путем создания мьютекса с заданным именем в системе.
![](https://habrastorage.org/getpro/habr/upload_files/ef5/316/701/ef53167017e3072fca559eac65e73e1c.png)
Функционал
Downloader
Реализована функция загрузки пейлоада из сети.
![](https://habrastorage.org/getpro/habr/upload_files/1ab/ac2/c10/1abac2c102153175d6bf48aaa393e377.png)
Запуск полезной нагрузки
Содержит два варианта запуска пейлоада:
1. Загрузка в память при помощи функций .Net Framework.
![](https://habrastorage.org/getpro/habr/upload_files/4ca/973/475/4ca97347575797bcad4abc6b73c1375e.png)
2. Инжект полезной нагрузки в запущенный процесс. Есть возможность выбора из нескольких процессов.
![](https://habrastorage.org/getpro/habr/upload_files/079/6e5/6ed/0796e56ed896fc7667e3f7b7df59fd7b.png)
На данный момент Cassandra — достаточно распространенный тип крипторов. Как правило, злоумышленники используют его в массовых рассылках, чтобы незаметно запускать на машине пользователя вредоносное ПО. Cassandra позволяет запускать даже хорошо изученные семейства ВПО.
Sergani
Странный криптор которому для работы нужно скачать и установить .Net Framework весом 300 мегабайт. Я например этот мусор безжалостно выпиливаю, так что меня не затронет.
hunroll
И как, интересно, работает у Вас Windows 10 без дотнета? Приложения из стора? Калькулятор, Календарь?
Или вместо десятки пользуетесь XP/7? Ну тогда да, без мусорного дотнета Вы в полной безопасности.
Ну и как-бы да, обычно все вирусы целятся или в большинство, или в ентерпрайс. И там и там шансы найти дотнет очень велики.
Reformat
.NET приложения де-факто нативные (в понимании как способ разработки по умолчанию) для последних версий Windows, Microsoft всячески их проталкивает, и .NET уже давно стал чем-то вроде аналога виртуальной машины Android, одним из компонентов системы.
vorphalack
как там, в 2008?