Анализ бэкдора Rising Sun от APT Lazarus в системе tLab

16.10.2020
by VirLab team

В декабре 2018 года, McAfee подготовила отчет о большой вредоносной кампании, нацеленной на финансовый, энергетический и другие сектора экономики, под названием "Операция Sharpshooter". Ответственными за многочисленные атаки является северокорейская APT группа Lazarus. Операция Sharpshooter началась 25 октября 2018 года с распространения вредоносных документов Microsoft Word, через сервис Dropbox. В документах содержался вредоносный макрос, который внедрял загрузчик в память процесса Microsoft Word. Далее, загрузчик получал с серверов злоумышленников вредоносный файл, с основным функционалом. McAfee дала ему название Rising Sun.


В отличие от уже известных данных в отчете McAfee, мы постараемся показать работу Rising Sun в действии (динамически) и расскажем о том, как можно анализировать динамически вредоносные файлы, в отсутствии рабочих C&C серверов. Исследуемый образец имеет следующие хэш-суммы:

MD5: 2e17b048c7e317da9024a86d9439c74b
SHA1: 31e79093d452426247a56ca0eff860b0ecc86009
SHA256: 37b04dcdcfdcaa885df0f392524db7ae7b73806ad8a8e76fbc6a2df4db064e71
SHA512: 7ee51e53242e59f49d32d6344cbb2c9f2976c7787d00b63d2470c83ff3053b83c86b37b2870127934e60001ed39cb99f486e07a900d34e5a6ba8d240e233494b

Создание импланта для Rising Sun

Rising Sun получает зашифрованные, с помощью RC4, команды с серверов злоумышленников, выполняет и отправляет результат. В зависимости от команды, выполняется то или иное вредоносное действие (чтение файла, запуск процесса, сбор информации и т.д.). Команды представляют собой строго заданные константы. Основная функция, обрабатывающая команды с сервера:


Так как сервера уже недоступны, для проверки функционала, мы разработали имплант, для исследуемого образца, для тестирования в песочнице tLab. Имплант позволяет образцу получать команды из командной строки, вместо C&C серверов, и выполнять оригинальные вредоносные действия. Для начала, была модифицирована входная точка, для осуществления перехода на код импланта:


Имплант получает командную строку и по первому аргументу определяет какую функцию необходимо вызвать:


Пример командной строки:



Анализ Rising Sun в системе tLab

Исследуемый образец предназначен для 64-битных систем, поэтому в системе tLab была выбрана соответствующая конфигурация:


Система tLab успешно идентифицировала Rising Sun как вредоносное ПО, присвоив высокий уровень угрозы по результатам статического и динамического анализов. Хэш-суммы отличаются, так как использовался модифицированный нами образец.

tLab представляет уровень угрозы в мета-процентах (может быть более 100%), если выше предела опасности (85% по умолчанию) - считается вредоносным (выделяется красным). Предел опасности выставляется администратором tLab.

Общая информация об отчёте
Статический анализ

Rising Sun обменивается данными с сервером в зашифрованном виде. Способ шифрования можно определить по строкам во вредоносном файле:



Rising Sun: Выполнение команд в командной строке

Теперь перейдем к демонстрации функционала. Начнем с функции запуска команды в командной строке, полученной с сервера:


Константа, для команды - 0x6D0017005500F7


Функция sub_13EA2B9A0, создается временный файл, для записи результата выполнения команды:


Далее, Rising Sun генерирует командную строку вида:

Для демонстрации в данном случае мы передали команду echo %USERNAME%, которая выводит имя текущего пользователя


Происходит выполнение командной строки, вызовом CreateProcess():


В результате временный файл содержит вывод выполненной команды (который сразу же отправляется на сервер злоумышленников):


Рассмотрим более реальный пример: получение команды с сервера по установке Rising Sun в виде сервиса. tLab определил факт закрепления ОС:


Среди списка созданных процессов можно увидеть sc.exe:


Детальный отчёт

Можно посмотреть все действия, связанные с конкретным файлом:


В "Цепочке событий" наглядно можно увидеть созданный сервис "Rising Sun":



Rising Sun: Запуск исполняемого файла

Константа для этой команды - 0x8300DA00C50092:


Запуск происходит вызовом CreateProcess(). Пример запуска:


В системе tLab, Rising Sun был запущен с командой запуска reg.exe и добавлением себя в автозагрузку:


0x8300DA00C50092 reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v test_reg /t REG_SZ /d c:\Users\Администратор\Desktop\RaisingSun_patched.bin

tLab определил добавление в автозагрузку:


Общая цепочка выполнения

Rising Sun: Чтение файлов

Константа для команды - 0x98009C0034002D


Rising Sun был запущен с командой чтения пользовательского файла:


0x98009C0034002D C:\\Users\\Администратор\\Desktop\\1_Ico.png

tLab определил подозрительное открытие файла:


tLab может показать список действий с конкретным файлом:



Rising Sun: Удаление файлов

Константа для команды - 0x78005D008B00C6


Rising Sun был запущен с командой удаления пользовательского файла:

0x78005D008B00C6 C:\Users\Администратор\Desktop\Report_OPENTEXT_1.odt

Можно выбрать конкретный файл и просмотреть действия с ним:




Заключение

Был наглядно показан способ динамического анализа образца Rising Sun в системе tLab, с помощью разработанного нами импланта, позволяющего тестировать вредоносное ПО, в отсутствии активных C&C серверов.