«LimeRAT»

Объект анализа

На анализ в систему Афина пришел офисный файл с расширением .rtf. Для начала была собрана его общая информация, представленная в Таблице 1.

Таблица 1. Общая информация по файлу
Тип Адрес
Вердикт Вредоносный
Имя MALDOC.doc
Размер (Кб) 67.9
Расширение rtf
TrID 100.0% (.RTF) Rich Text Format (5000/1)
SHA-256 a9bfefbaa9e96471020d013cac052b2899d143a57b84f05c42127c67bbed2c07
MIME тип text/rtf

Исследование файла

Исследования файла происходило с помощью системы ATHENA и ручного исследования (реверс-инжиниринг). Для начала посмотрим на статический и динамический анализ файл в системе ATHENA.

Исследование в системе ATHENA

Статическое исследование

При проверке антивирусами было обнаружено, что в файле обнару-жен вирус, который эксплуатирует CVE-2017-11882.

Рисунок 1. Антивирусы

С данной вкладкой стоит просто ознакомиться, она несет в себе ин-формацию о том, какие методы и модули статического анализа выдали вердикт после проверки данного ПО. Модуль анализа во внешнем ресурсе VirusTotal не отработал, потому что данное ПО является внутренней раз-работкой AV Soft.

Рисунок 2. Источники вердикта

Динамическое исследование

Динамический анализ в системе ATHENA выявил несколько индикаторов:

  • запись в память системного процесса - используется вредоносным ПО для исполнения своего кода от имени системного процесса;
  • обход средств безопасности Windows AppLocker - ПО эксплуатирует возможность выполнения удаленных сценариев при помощи regserver;
  • использование уязвимости с помощью EQNEDT32.EXE - данный инструмент позволяет использовать уязвимость в документах Office и внедрять произвольный код.
Рисунок 3. Индикаторы динамических событий

Среди системных программ, выявленных в процессе динамического исследования, были обнаружены такие как: svchost.exe, eqnedt32.exe и regsvr32.exe.

Рисунок 4. Созданные процессы

Созданные процессы также можно посмотреть во вкладке «Карта процессов». Также с процессами можно ознакомиться во вкладке «Карта процессов».

Рисунок 5. Карта процессов

В блоке «Дампы» видно, что ПО во время работы создало файл с расширением TMP. Злоумышленники могут использовать файлы с расширением TMP для распространения вирусов и вредоносных программ путем изменения содержимого файла.

Рисунок 6. Дампы

Во вкладке «Техники MITRE» видно, что отработало несколько техник:

  • Singed Binary Proxy Execution. Сработавшие индикаторы: использование системной программы regsvr32.exe.
  • Злоумышленники могут обойти защиту на основе процессов и/или подписей, проксируя выполнение вредоносного контента с помощью подписанных двоичных файлов. Двоичные файлы, подписанные доверенными цифровыми сертификатами, могут выполняться в системах Windows, защищенных проверкой цифровой подписи. Несколько подписанных Microsoft двоичных файлов, которые по умолчанию используются в установках Windows, могут использоваться для прокси-выполнения других файлов.

  • Query Registry. Сработавшие индикаторы: поиск информации о системе, просмотр установленных служб.
  • Злоумышленники могут взаимодействовать с реестром Windows для сбора информации о системе, конфигурации и установленном программном обеспечении. Реестр содержит значительный объем информации об операционной системе, конфигурации, программном обеспечении и безопасности.

  • System Information Discovery. Сработавшие индикаторы: поиск информации о системе, просмотр установленных служб.
  • Злоумышленники пытаются получить подробную информацию об операционной системе и оборудовании, включая версию, исправления, пакеты обновлений и архитектуру. Полученная системная информация используется злоумышленниками в планировании дальнейшего поведения, например, полностью заразить цель и/или предпринять конкретные действия.

  • System Owner/User Discovery. Сработавшие индикаторы: Поиск информации о системе.
  • Злоумышленники пытаются идентифицировать основного пользователя, текущего пользователя, вошедшего в систему, всех пользователей, которые обычно используют систему, и установить, активно ли пользователь использует систему. Например, путем получения имен пользователей учетных записей или с помощью сброса учетных данных ОС.

  • System Service Discovery. Сработавшие индикаторы: просмотр установленных служб.
  • Злоумышленники собирают информацию о зарегистрированных сервисах, чтобы формировать последующее поведение. Для получения информации могут применяться утилиты операционной системы Tasklist и Net, а также другие инструменты.

Рисунок 7. Техники MITRE

Во вкладке «Индикаторы компрометации» отображаются индикаторы компрометации вредоносного поведения файла по результатам его проверки в «песочнице».

Рисунок 8. Индикаторы компрометации

В блоке «События» можно заметить записи «Получение аргументов командной строки». Вирус эксплуатирует CVE-2017-11882 (уязвимость в редакторе уравнений из пакета Microsoft Office, связана она с ошибкой обращения с объектами в оперативной памяти), он «плодит» eqnedt32.exe. Данный процесс позволяет выполнить на уязвимом устройстве произвольный код без взаимодействия с пользователем.

В качестве полезной нагрузки выполняются инструкции вызова утилиты командной строки regsvr32, которая запускает сторонние команды при помощи dll-библиотеки.

Рисунок 9. Событие «Получение аргументов командной строки

Во вкладке «Источники вердикта» можно ознакомиться с тем, какие источники посчитали файл вредоносным.

Рисунок 10. Источники вердикта

Детальное исследование файла

С помощью инструментария определили реальный формат файла - .rtf. После этого воспользуемся соответствующим методом для извлечения полезной нагрузки из файла:

Рисунок 11. Наличие редактора формул (уравнений)

В файле содержится объект, который использует редактор уравнений «Equation3», в актуальных версиях MS Word его удалили из-за проблем с безопасностью. Одна из которых – эксплуатация уязвимости CVE-2017-11882, где при помощи переполнения буфера в памяти позволяет выполнять наборы вредоносных инструкций. Извлечем полезную нагрузку из исследуемого файла.

Рисунок 12. Прикрепленный бинарный файл

К документу прикреплен бинарный файл, представленный в виде shellcode, который на низком уровне способен вызывать функции из Dll-библиотек, создавать процессы и т.д.

При помощи дебаггера извлечем shellcode:

Рисунок 13. Полезная нагрузка

Файл вызывает функцию «WinExec» из библиотеки Winbase и передается аргументом в командную строку. При помощи команды regsvr.exe запрашивается удаленный набор инструкций, а библиотека scrobj.dll позволяет выполнить полученные инструкции. Рассмотрим удаленный скрипт:

Рисунок 14. Исполняемый набор инструкций

Для взаимодействия с системой объявляется объект «WSCript.Shell», а также для взаимодействия с файловой системой - Scripting.Filesystem.

После объявления переменных файл создает в директории файл «%TEMP%» с именем b.ps1 и исполняет его инструкции:

Рисунок 15. Исполнение ps1 инструкций

Скрипт для powershell создает в директории «$Env:Temp» исполняемый файл с именем системной службы lsass.exe.

Рисунок 16. Создание файла lsass.exe

После этого созданный файл запускается, а файл удаляется: b.ps1.

Рисунок 17. Запуск lsass.exe и удаление файла скрипта

С помощью ПО DIE (Detect It Easy) проанализируем файл %Temp%\lsass.exe..

Рисунок 18. Анализ в DIE

После анализа можем понять, что файл является скомпилированным .NET приложением.

После этого откроем файл в dnSpy и при загрузке видим, что файл обфусцирован.

Рисунок 19. Обфускация файла

Деобфусцируем его при помощи инструмента de4dot:

Рисунок 20. Автоматическая деобфускация файла

И откроем исследуемый файл еще раз:

Рисунок 21. Деобфусцированный код

Найдем среди объявленных классов конфигурацию ПО:

Рисунок 22. Конфигурация ВПО

Посмотрим, где используется строка «string_0». В инструкциях содержится класс «WebClient», который может задействоваться для обмена данными при помощи URI. Также строка «string_0» передается в качестве аргумента в функцию «GClass7.smethod_1».

Рисунок 23. Использование WebClient и string_0

Упадем в функцию «GClass7.smethod_1». Мы можем наблюдать, что создается массив из 32 байтов. Также, задействуется из конфигурационного класса строка «string_2» со значением: «IW4nnaB3Y0urs». Из этого значения рассчитывается хеш MD5 и записывается в переменную «sourceArray».

После выполнения инструкций копирования по индексам массива, объявляется ключ и режим дешифрования данных при помощи класса Rijndael, он же AES.

В массиве «array2» записываются байты, полученные из строки «string_2» после декодирования в формате Base64.

Рисунок 24. Функция GClass7.smethod_1

При помощи отладчика достанем расшифрованную строку, которая содержит в себе ссылку на внешний ресурс https://pastebin[.]com/raw/sJLgSUbN.

Рисунок 25. Расшифрованная строка

Полученные данные с pastebin используются для установки связи с C2C сервером:

Рисунок 26. Запись в буффер данных C2C

После запуска приложения вредоносное ПО собирает информацию о системе, в которой было запущено:

Рисунок 27. Основная функция

Вызываемый метод использует WMI и собирает следующую информацию: ProcessorId, Bios SerialNumber, BaseBoard SerialNumber, Win32_VideoController Name:

Рисунок 28. Собираемая информация по окружению

Далее происходит проверка на наличие средств виртуализации, аналогично при помощи WMI производителя и при наличии подстроки с указанием одного из средств виртуализации (vmware, microsoft corporation, Virtual или VirtualBox) возвращает булево значение 1 (1 – обнаружено виртуальное пространство).

Рисунок 29. Определение виртуализации

Вызывается эта функция определением нахождения в виртуальном пространстве, проверяет наличие файла динамической библиотеки vboxhook в системной папке версию Windows (XP), а также наличие активного дебаггера.

Рисунок 30. Дополнительные проверки окружения

Вызывается эта функция определением нахождения в виртуальном пространстве, проверяет наличие файла динамической библиотеки vboxhook в системной папке версию Windows (XP), а также наличие активного дебаггера.

cmd.exe /c ping 0 -n 2 & del

После чего закрывает исполняемое приложение. Если виртуальное окружение не было обнаружено, вызываются методы по закреплению в системе:

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

Далее скрипт проверяет наличие директории «Temp» в системе. При ее отсутствии он ее создает, а также проверяет наличие файла «lsass.exe» в этой же директории, который будет удален после обнаружения.

Рисунок 32. Проверка существования системной директории Temp

После удаления файла вызывается метод с аргументом %Temp%\\lsass.exe, который при помощи файлового потока копирует себя в системную директорию.

Рисунок 33. Копирование исполняемого файла в системную директорию

После копирования себя в директорию вредоносное ПО использует инструкции по закреплению себя в автозапуске системы. При наличии прав администратора создается запись в планировщике задач с высоким приоритетом и указывается на созданный файл в директории «%Temp%\\lsass.exe». Если привилегий нет, то создается запись в реестре для автозапуска, где также указывается путь до директории «%Temp%\\lsass.exe».

Рисунок 34. Добавление в автозапуск

После этого вызывается метод, который импортирует библиотеку «NTdll.dll» и задается текущему запущенному процессу статус «критического процесса», который будет вызывать BSOD при его завершении.

Рисунок 35. Установка критического статуса процессу

Далее запускается файл из директории «Temp», процесс из текущей директории останавливается.

Рисунок 36. Закрытие процесса

Во время запуска вредоносного ПО он проверяет наличие активного соединения с C2C сервером, после чего отправляет свой статус. В случае первого запуска на машину злоумышленника отправляется подробные сведения о машине жертвы, а именно: имя пользователя, версия сборки ВПО, наличие антивирусного ПО, состояние системы (зашифрована/нет), версия процессора, порт для коммуникации, версия dotnet framework и путь, по которому было установлено ВПО. При этом используют в качестве разделителей категории данных символы: «|'L'|».

Рисунок 37. Отправляемый пакет с машины жертвы

Отправляемый пакет содержит в себе следующий набор данных:

@"info|'L'|7EB83015ABB8|'L'|victim|'L'|v0.1.9.2|'L'|МайкрософтWin 10 Pro x86|'L'|23.10.2023|'L'|N/A|'L'|Not encrypted|'L'|11th Gen Intel i5-11400F @ 2.60GHz|'L'|Not ready|'L'|5566|'L'|v2.0 v4.0|'L'|...|'L'| |'L'|True|'L'|C:\Users\victim\AppData\Local\Temp\lsass.exe"

Далее вредоносное ПО отправляет статус «OK» и идентификатор (HWID) машины жертвы, сообщая серверу злоумышленника, что машина включена:

Рисунок 38. Отправка статусы машины жертвы

Отправка пакетов от жертвы злоумышленнику происходит при помощи tcp соединения. В метод «smethod_2» в качестве аргумента передается массив байтов, который шифруется и отправляется:

Рисунок 39. Отправка байтов на сервер

Реализована возможность подмены адресов крипто кошельков в буфере обмена жертвы. Валидация кошелька сделана «в лоб», если длина буфера обмена в пределах от 26 и до 35 символов и начинается с символов «1», «3», «bc1», то он будет подменять адрес крипто кошелька (стрелочками указана переменная, которая хранит адрес крипто кошелька злоумышленника) в буфере обмена на адрес злоумышленника.

Рисунок 40. Подмена адресов крипто кошельков в буфере обмена

Вредоносное ПО использует API «SetThreadExecutionState», при помощи которого предотвращает переход системы в «спящий» режим.

Рисунок 41. Предотвращение для перехода в режим сна

Также ВПО постоянно проверяет количество полученных и доступных для чтения байтов. Это используется для того, чтобы передавать файлы на машину жертвы:

Рисунок 42. Передача файла жертве

Внешнее меню