Резюме:
В течение последних двух месяцев мы столкнулись с новым шпионским ПО под названием MassLogger. Этот продвинутый кейлоггер и шпионское ПО распространяются через вложения MalSpam и обладают более широким функционалом, чем другие существующие кейлоггеры. Замечено, что эта кампания использует несколько различных типов файлов в качестве вредоносных вложений для первоначального заражения. Кроме того, динамика поведения этого кемпинга различается в зависимости от образца. Он обладает различными функциями, такими как кейлоггер, исключение Защитника Windows, создание скриншотов, распространение через USB, кража буфера обмена, обнаружение виртуальных машин и т. д.
Технические подробности:
Вот различные типы файлов, используемые в качестве спам-вложений в этой кампании:
- застежка-молния
- редкий
- gz
- 7z
- IMG
- ISO
- док
- архиватор ARJ
- xz
- ас
- DOCM
- z
- XLSM
- кабина
Изучив список выше, мы видим две основные категории вложений: архивные файлы и документы. В случае архивных файлов после извлечения из них содержится полезная нагрузка .NET MassLogger, а в случае документов — макрос VBA и эксплойт, загружающий полезную нагрузку MassLogger с удалённого сервера.
Полиморфная цепочка процессов:
Мы наблюдали различные варианты динамического поведения в нескольких образцах в ходе этой кампании. Ниже приведены фрагменты нескольких цепочек процессов:




Анализ документа:
В некоторых случаях злоумышленники использовали файл офисного документа в качестве начального вектора заражения с помощью макроса VBA и эксплойта редактора формул. На следующем рисунке показано извлечение документа Excel со встроенным хранилищем OLE, содержащим 2 скрипта VBScript и 1 файл эксплойта CVE-2017-11882, а также поток проекта VBA, содержащий макросы VBA.

Рис. 5: Потоки и хранилища OLE
На следующем рисунке показаны несколько потоков OLE, каждый из которых содержит различные данные.

Первый поток oleObject1.bin — это файл скрипта VB, содержащий код переименования, после чего он выполняет файл VBS с помощью Wscript.

Рис. 7: Задание VBS
Поток OleObject2.bin также является скриптом VB, который сильно запутан и содержит код для загрузки полезной нагрузки с сервера C2.

Таблица Excel, содержащая уязвимость редактора переполнения буфера на основе стека в редакторе формул, переименовывает и выполняет скрипты VB с использованием API WinExec (0x00430C12) после эксплуатации.

«1C00» — это заголовок редактора уравнений, справа от которого находится шеллкод, содержащий код, в котором cmd.exe сначала переименовывает VB-скрипт и передает его в Wscript для выполнения этого VB-скрипта. После переполнения все эти данные передаются в функцию WinExec, которая выполняет дальнейшие действия. Для получения дополнительной информации об уязвимости CVE-2017-1182, пожалуйста, обратитесь к нашей статье в блоге.
Чтобы увеличить вероятность доставки полезной нагрузки, злоумышленник использует как эксплойт, так и макросы VBA. Если эксплойт не срабатывает в пропатченной системе, в файле документа также присутствует другой компонент — макросы VBA. Аналогичный код VBS присутствует в макросах VBA, и этот код отвечает за размещение файла VBS в папке «C:\programdata\» и его выполнение в качестве задания VBS, которое выполняет действия, аналогичные действиям эксплойта Equation Native.
Анализ полезной нагрузки:
Полезная нагрузка загружается с различных начальных векторов атаки, как обсуждалось выше, после чего выполняется и переходит в спящий режим на несколько секунд. В этом бинарном файле присутствует много кода, отвечающего за задержку выполнения. Всего имеется 4 компонента, расположенных на 2 уровнях упакованного файла.
Слой 1 этапа:
На первом уровне , при выполнении, в компоненте Form() скрыт простой код. Этот код отвечает за извлечение DLL-файла из каталога ресурсов в обратном порядке в формате Base64, который затем обрабатывается и выводит DLL-файл с именем AndroidStudio.dll.

AndroidStudio.dll отвечает за распаковку и дешифрование буфера, который ему передается.

Метод распаковки GZip используется для распаковки буфера, переданного из каталога ресурсов. Эта DLL-библиотека используется для создания дампа другого PE-файла, отвечающего за дальнейшие действия.
Уровень 2: Lazarus.exe
Lazarus.exe выгружается, представляя собой сильно обфусцированный .NET-файл, который теперь распаковывается из родительского файла. Мы успешно декодировали этот файл с помощью инструмента de4dot. Во время выполнения он переходит в спящий режим на несколько секунд и проверяет наличие своей копии в папке «%appdata%». Если её нет, он помещает свою копию в папку «%appdata%». После этого, чтобы оставаться в системе, он создаёт запись в планировщике задач. Для этого он создаёт и помещает конфигурационный файл .XML в папку «%temp%», который служит входными данными для создания планировщика задач. Метаданные XML-файла жёстко прописаны в коде и хранятся в PE-ресурсе. Все данные заменяются во время выполнения.

Имя начинается со строки «Update\», за которой следует имя файла, перемещенного в местоположение %appdata%.
Следующая команда будет выполнена для добавления записи в планировщик задач.
«C:\Windows\System32\schtasks.exe» /Create /TN «Обновления\ " /XML "C:\Пользователи\ \AppData\Local\Temp\tmp .tmp”
Теперь пора перейти к последнему полезному коду — MassloggerBin.exe. Используя технику самозаполнения, он внедряет код в свой собственный процесс. На следующем изображении показано использование техники самозаполнения для выполнения дальнейших действий.

При успешной записи и создании нового процесса родительский процесс завершается, а процесс с внедренным кодом запускается как сиротский. Код этого процесса также сильно обфусцирован. Все имена функций и классов преобразуются в случайные/обфусцированные строки.
Уровень 3 этапа: MassLoggerBin.exe
В начале программы извлекается DLL-файл с именем «Ionic.Zip.Reduced.dll» из своих ресурсов. Ionic.Zip.Reduced.dll — это бесплатная быстрая библиотека классов DotNetZip, используемая для работы с ZIP-файлами. Код, используемый злоумышленником в Masslogger, доступен на этом сайте . Основная цель использования этой DLL — создание ZIP-файла, содержащего сжатый пакет файлов, таких как снимки экрана, кейлоггеры, информация о пользователе и т. д.
MassLogger использует внутреннюю функциональность на основе конфигурации для извлечения необходимых данных, которые затем назначаются определенной переменной.
Ниже приведены переменные, которые извлекают данные, хранящиеся во внутреннем конфигурационном файле fig. Первым параметром является конкретное смещение, а вторым параметром — массив config, из которого извлекаются данные.


Он начинает собирать системную информацию, такую как имя системы, версию Windows, процессор, графический процессор, установленный AV, публичный IP, который он получает с URL: «hxxp[:]//api[.]ipify[.]org», а также получает информацию о запущенных процессах.

MassLogger также сохраняет имя запущенного процесса в своем файле журнала.
Функциональность MassLogger:
1. Кража данных приложений:
Ниже приведен список приложений, с помощью которых злоумышленник пытается украсть данные пользователя и отправляет их на свой сервер C2.
![]()
Проверяя данные из жестко запрограммированного пути, сохраненного в этом двоичном файле, он проверяет определенные данные и установку этих приложений, если не находит никаких подробностей, он создает запись в следующем формате:
<|| Имя-приложения ||>
Не установлен
В исполняемом файле MassLogger присутствуют следующие модули. Ниже представлен их список:
2. Исключение Защитника Windows
В нём есть модуль под названием «WD Exclusion», который является исключением для Windows Defender. С помощью команды « Add-MpPreference –ExclusionPath <path> » он исключает себя из антивирусной программы Windows Defender.
3. Распространение через USB
Другой модуль, USB Spread, использует открытый исходный код LimeUSB, доступный на GitHub. Он используется для заражения файлов, хранящихся на USB-накопителе. При запуске файлов на USB-накопителе выполняется как его собственный код, так и зараженный код.

4. Кейлоггер и буфер обмена
В нем есть модуль захвата журнала клавиш, который с помощью API «SetWindowHookEx» захватывает все нажатия клавиш на клавиатуре и записывает их в журнал.

5. Анти-ВМ
Он также использует методы защиты от виртуальных машин, проверяя наличие адаптера Video_Controller с помощью WMI « Select * from Win32_VideoController », который извлекает информацию, относящуюся к видеокарте. Если процесс выполняется в Virtual Box, он возвращает «Virtual Box Graphics Adapter».

6. Поиск и загрузка
Согласно файлу конфигурации, он ищет некий файл, который хочет отправить на сервер C2, который хранится в архиве «SearchAndUpload.zip».
Все данные хранятся и извлекаются из конфигурационного файла. Ниже представлен вид конфигурационного файла MassLogger.

После завершения сбора всех данных создаётся файл журнала, содержащий все данные, например, время запуска и завершения процесса Masslogger, а также другие собранные данные. После этого файл архивируется в ZIP-архив и сохраняется в папке «C:\Users\». \AppData\Local”.
Ниже приведено изображение, показывающее файл журнала MassLogger.

Вывод:
Masslogger — это легко настраиваемый и модульный кейлоггер и шпионское ПО. Создатели Masslogger постарались сделать его функционал более продвинутым, чем у других кейлоггеров, что затрудняет обнаружение этого сложного вредоносного ПО.
IoC:
4A199C1BA7226165799095C2C2A90017 (XLSM)
D1FFF0C0782D08ED17387297369797E0 (XLSM)
31B65A54940B164D502754B09E3E9B63 (PE)
37958546CB6DC41F505FDCB3430CEE3B (PE)
Эксперты в предметной области:
Анируддха Долас
Паван Чаудхари



