Start Grinding for FREE!
Это чуть более техническое описание того, как сработала брешь. Оно здесь, чтобы любой мог проследить: что делает обычное обновление, что изменили и почему мы знаем, что обновление, которое люди получают сейчас, не скомпрометировано.
Это можно подтвердить, потому что Amazon S3 сохранил каждую предыдущую загрузку. Мы сравнили все. Файл, который этот адрес отдаёт сегодня, — обычная сборка. Скомпрометированные загрузки есть только в истории за ним, и именно история даёт им даты.
Два отдельных трюка. Один менял, какой zip скачивает группа. Другой менял содержимое этого zip. Подписанный launcher менять не пришлось.
Имя группы ниже — пример. Это не настоящее имя.
Обычное обновление и изменённое
Обе колонки — одна и та же последовательность. Имя группы ниже — пример. Группа — это метка на аккаунте, и люди в ней делят один адрес загрузки. Это имя и адрес, который использует установщик, хранятся отдельно. Официальные обновления записывают легитимный адрес.
В изменённой колонке в этом адресе меняется одна буква: с заглавной N на строчную n. Amazon S3 хранит их как два разных пути и отдаёт тот, который совпадает с URI, сохранённым у группы. launcher.exe по-прежнему запускает файл с именем JurojinUI.exe, поэтому новая сборка ему не понадобилась. Внутри подменённого zip этот файл — подставка: в этот момент он ставит Mesh из ProcessCommunicator.exe, имя которого в обычном zip принадлежит легитимному подписанному хелперу.
аккаунт в группе NorthstarNorthstar → URI в S3versions/Northstar/Jurojin.zipGET versions/Northstar/Jurojin.zipstart JurojinUI.exeJurojinUI.exe · подписан · мегабайтыJurojinUI.exeБольшой и подписанный. Это приложение, которое открывается.ProcessCommunicator.exeЛегитимный хелпер. Подписан.Jurojin.exeВ этом zip его нет.имя группы по-прежнему NorthstarNorthstar → URI в S3versions/northstar/Jurojin.zipGET versions/northstar/Jurojin.zipstart JurojinUI.exeJurojinUI.exe · меньше 1 МБ · без подписиJurojinUI.exeПодставка. Запускается сейчас, ставит Mesh и стартует настоящее приложение.ProcessCommunicator.exeВ чистом zip это имя — легитимный подписанный хелпер. Здесь под тем же именем был спрятан неподписанный установщик Mesh.Jurojin.exeНастоящее приложение, всё ещё подписанное, открывалось под этим другим именем.Включали и выключали, чтобы группа выглядела обычной
Подменённый zip не оставляли на месте. Аккаунты заводили в группу и выводили обратно, а URI группы возвращали на исходный путь. После этого у группы был обычный адрес и другой набор людей. Поэтому это не бросалось в глаза.
S3 сохранил каждую загрузку на изменённом пути. С 11 июня 2025 по 28 января 2026 сначала появлялся подменённый zip, потом его сменял чистый, потом снова подменённый. Это 92 окна, а не один сплошной период. В сумме подменённый файл был тем, что клиент скачал бы в течение 72,7 дня. 158 дней в том же промежутке текущим файлом была обычная сборка.
группа Northstarversions/northstar/Jurojin.zipversions/Northstar/Jurojin.zipПоследний файл оставили чистым
Текущая версия на изменённом адресе — легитимная сборка: большой подписанный JurojinUI.exe и без переименованного Jurojin.exe. Если смотреть только на файл, который там сейчас, адрес выглядит обычным. Подменённые загрузки по-прежнему в истории версий за ним. Именно история показывает даты, какие загрузки были подменены и какого они были вида.
Как ставился инструмент удалённого доступа
Он попадал к тем, кто был в группе и обновился, пока пакет с ним был текущим файлом. Покерные ники не проверялись. Вариант этой операции у IntuitiveTables, насколько нам известно, это делал. Этот — нет.
Получить подменённый пакет — не то же самое, что оказаться с инструментом на устройстве. Не в каждом подменённом zip он был, и не все в группе обновлялись в одно из этих окон.