В марте специалисты киберразведки PT ESC зафиксировали активность группировки Rare Werewolf (Rezet, Librarian Ghouls). На этот раз был обнаружен архив data.zip, содержащий следующую структуру файлов:

• Структура компании1111.docx

• any_svc.exe

• clean.ps1

• deploy.ps1

• hider.exe

• monitor.ps1

• run.bat

• svc.conf

🤔 Кратко разберем назначение каждого из файлов

Структура компании1111.docx — документ-приманка, пример которого можно видеть на рискнке 1. any_svc.exe — исполняемый файл AnyDesk, а svc.conf — файл с конфигурацией AnyDesk. hider.exe — исполняемый файл NirCmd.

Рисунок 1
Рисунок 1

Однако самая интересная часть — цепочка PowerShell-скриптов, которая запускается через скрипт run.bat. Файл clean.ps1 отвечает за удаление уже установленных экземпляров AnyDesk на системе жертвы (пример скрипта можно видеть на рисунке 2). Код скрипта останавливает все рабочие процессы и пытается найти установленное приложение по стандартным путям в файловой системе и реестре.

Рисунок 2
Рисунок 2

После очистки запускается файл deploy.ps1.

Рисунок 3
Рисунок 3

Алгоритм работы скрипта следующий:

1️⃣ Подготовка директорий и конфигурации для закрепления AnyDesk (список директорий будет ниже)

2️⃣ Установка для всех файлов конфигурации прав доступа ReadOnly

3️⃣ Запуск исполняемых файлов any_svc.exe и hider.exe

4️⃣ Получение AnyDesk ID через команду --get-id

5️⃣ Отправка полученного ID в heartbeat-запросе на Gist-страницу на GitHub в виде комментария. 

Рисунок 4
Рисунок 4

Для отправки подобного запроса используется API-ссылка https://api.github.com/gists/

<gist-id>/comments, где gist-id — идентификатор заметки, который находится в скрипте. Сам комментарий можно увидеть далее.

6️⃣ Формирование LNK-файла SystemCheck.lnk в папке автозагрузки, который запускает скрипт monitor.ps1

monitor.ps1 (рисунок 5) — это скрипт, который использует команды NirCmd для сокрытия окон процессов any_svc.exe и AnyDesk.exe. В случае, если процесс any_svc.exe не запущен, hider.exe его запускает. Помимо этого, скрипт используется для автоматического нажатия кнопок в окнах с заголовками «Оповещение системы безопасности», то есть кнопок в окне уведомлений брандмауэра Windows. Примечательно, что в коде скрипта заголовок окна указан на трех языках — русском, английском и украинском.

Рисунок 5
Рисунок 5

😲 Остается важный вопрос: откуда вообще взялся data.zip? Не его же отправляют в фишинговом письме. Давайте ответим и на этот вопрос.

На основе поиска схожих с deploy.ps1 скриптов был найден load.ps1, который находился в другом архиве. 

Рисунок 6
Рисунок 6

И уже по новому архиву был найден родительский файл — исполняемый файл на C# (фрагмент на рисунке 7), который расшифровывает байты архива и помещает его в систему жертвы. 

Рисунок 7
Рисунок 7

Расшифровка идет в два этапа. Во-первых, массив байтов проходит через операцию XOR с ключом длиной 8 байтов. Затем в массиве декодированных данных ищется заголовок ZIP-архива, и подменяется байт заголовка, отвечающий за метод сжатия (выставляется метод Deflate). Все действия проходят во временной директории, туда же в отдельный файл ghost_trace.log записываются логи работы дроппера.

NEW TARGET: ID=$cid | PC=$cn | USER=$un
# cid = идентификатор AnyDesk-ID
# cn - имя компьютера ($env:COMPUTERNAME)
# un - имя пользователя ($env:USERNAME)
Индикаторы компрометации

Дроппер: c6663dec26224dd3566b4967e9440a7c865ee96af898a444771ba90d033afa55

Архивы: e7302d00c3bef6ff247a37260abdd5ff7eca7c3225b43f56abf3950cc86bf3a8 ca32442aecd8b050dabb5585955df292c4c5b3a9384b90b3377eca3c6200ed21

Powershell-скрипты с обращением на GitHub: 20843993517d8930a56445554b9c93615e4dbaeb6ac66131f2920ea0c966e194 63cf2d21091ca3041f51d3b50f84056909cd44996202557f9161895335e3271c

Индикаторы атаки

%LocalAppData%\GhostExt %LocalAppData%\GhostExt\svc.conf

%LocalAppData%\GhostExt\service.conf %LocalAppData%\GhostExt\any_svc.exe

%LocalAppData%\GhostExt\hider.exe

%TEMP%\GhostExt\ghost_trace.log %TEMP%\GhostExt\data.zip

%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\SystemCheck.lnk

Группа киберразведки экспертного центра Positive Technologies

(Источник: https://t.me/ptescalator)