Специалисты по информационной безопасности обнаружили новую многоступенчатую атаку, нацеленную на пользователей через вредоносный архив. Злоумышленники использовали сложную технику обфускации и подмены сетевого трафика, чтобы скрыть работу Cobalt Strike Beacon. Весь канал связи был замаскирован под легитимные запросы к сайту одного из крупнейших российских мобильных операторов.
Описание
Вредоносная кампания начинается с файла GR_Specialist_Riyadh_Application.zip. Архив весит около 14 мегабайт, но после распаковки занимает всего четыре мегабайта. Такой разительный перепад объясняется тем, что внутри упаковано множество дублирующихся скрытых файлов. Они добавляют избыточный вес и усложняют анализ. Среди них есть файлы с префиксами __init и __MACOS, а также несколько копий одних и тех же исполняемых компонентов. При отключенном отображении скрытых каталогов в проводнике пользователь видит лишь несколько основных элементов.
Ключевую роль в цепочке заражения играет ярлык с названием CV_Omar_AlFarsi_Government_Relations.pdf.lnk. Этот файл имитирует документ, связанный с приёмом на работу в правительственные структуры. При запуске ярлык обращается к системной утилите rundll32 и передаёт команду на выполнение программы msedge.exe из скрытой папки __init. Важно отметить, что msedge.exe на самом деле не имеет отношения к браузеру Microsoft Edge. Это легитимная сборка OpenVPN версии 2.7.0.0 с действующей цифровой подписью. Аналитики сообщили о находке, детально разобрав каждый этап атаки. Именно этот доверенный бинарный файл, по замыслу атакующих, должен был усыпить бдительность систем защиты.
После запуска msedge.exe загружает несколько динамических библиотек DLL из текущего каталога. Среди них две библиотеки - libpkcs11-helper-1.dll и libssl-3-x64.dll - являются безопасными копиями легитимных компонентов OpenVPN. А вот третья, libcrypto-3-x64.dll, несёт в себе вредоносный код. Исследование показало, что почти все экспортируемые функции этой DLL пусты. Исключение составляет лишь CRYPTO_get_ex_new_index, которая и содержит исполняемую логику.
В теле этой DLL записаны сотни строк, каждая из которых представляет собой IP-адрес. Однако эти адреса не являются ни серверами управления (C2), ни промежуточными прокси. Они выполняют роль зашифрованного контейнера. Вредоносный вызов преобразует каждый IP-адрес в 16-ричное представление с помощью стандартной системной функции RtlIpv4StringToAddressA. Полученный массив байтов затем подвергается операции XOR, в результате чего формируется настоящий шеллкод.
Сам шеллкод оказывается полезной нагрузкой Cobalt Strike Beacon. Это один из самых распространённых инструментов для имитации угроз и проведения тестов на проникновение, который активно используется и злоумышленниками. Чтобы скрыть код в памяти, вредоносная программа применяет дополнительные трюки. Сначала через VirtualAllocExNuma выделяется область памяти. Затем в неё записываются случайные данные, и только поверх них копируется истинный шеллкод. Такой приём затрудняет обнаружение вредоносной сигнатуры инструментами мониторинга.
Запуск самого шеллкода происходит через вызов EnumCalendarInfoA. Это штатная функция Windows для перебора календарных сведений, но злоумышленники передают ей адрес своего вредоносного кода в качестве колбэка. Способ хорошо известен специалистам и часто используется для обхода поведенческого анализа.
Параллельно с загрузкой основной нагрузки запускается ещё один элемент. В каталоге лежит файл document.pdf, но это вовсе не PDF-документ, а установочный пакет антивируса 360 Total Security. Видимо, таким образом авторы атаки пытались отвлечь внимание жертвы и убедить её, что система защищена. После запуска этого инсталлятора пользователь видит обычный процесс установки, в то время как в фоне уже работает встроенный Beacon.
Анализ конфигурации Cobalt Strike показал, что сервер управления расположен по адресу 111.229.112[.]67 на порту 8443. Этот IP принадлежит хостингу в Шанхае. Для сокрытия командной активности используется подмена HTTP-заголовка Referer. В GET-запросах указывается "https://10086[.]cn/", а в POST-запросах - "https://shop.10086[.]cn/mall_100_100.html". Таким образом трафик выглядит как обычное взаимодействие с интернет-магазином мобильного оператора. Также в конфигурации обнаружен идентификатор Watermark, равный 666666666. Это характерный маркер пиратских версий Cobalt Strike, что говорит о том, что злоумышленники использовали нелицензионный инструмент.
Время простоя (sleep time) установлено на 30 секунд с разбросом 37 процентов. Это значит, что обратный канал будет проверяться не строго раз в полминуты, а с определённой случайной задержкой, что затрудняет выявление периодичности. В POST-запросах также передаются поддельные параметры, имитирующие работу с интернет-магазином.
Подобные многоэтапные атаки становятся всё более изощрёнными. Использование легитимного бинарного файла OpenVPN, скрытие полезной нагрузки в IP-адресах и имитация трафика популярного сайта - всё это свидетельствует о высоком уровне подготовки атакующей группы. Пользователям и специалистам по безопасности рекомендуется обращать пристальное внимание на необычно большие архивы с множеством скрытых файлов, а также проверять подозрительные обращения к системным утилитам через ярлыки. Защита от подобных угроз требует комплексного подхода, включающего анализ поведения, контроль сетевых соединений и регулярное обновление сигнатур.
Индикаторы компрометации
IPv4 Port Combinations
- 111.229.112.67:8443
MD5
- 109887d26f3aef625300e537d2f41237
- 673ecdc537c00af133bb9689f09fb412