12 февраля 2026 года я получил фишинговое письмо, замаскированное под уведомление Google Drive от юридической фирмы White & Case LLP. Вместо обычного credential harvesting за ссылкой скрывалась профессиональная система browser fingerprinting с anti-analysis cloaking. Рассказываю, как устроена атака изнутри - от email до перехваченного POST-запроса с эксфильтрированными данными.
Как всё началось
Письмо пришло с адреса drive-shares-dm-noreply@google[.]com - легитимный адрес Google Drive для шаринга файлов. Отправитель отображается как «Whitе § Cаsɐ Pay Immediately» - обратите внимание на символы: кириллические «е» и «а», перевёрнутая «ɐ», армянский символ в названии. Unicode-гомоглифы для обхода текстовых фильтров.
Тема письма: «Resolve Promptly - Dеbt Detected - Pаy Immediately!» - urgency-давление через тему долга.
Атакующий создал Google-аккаунт neyjardespbeg2002@secure.accessinformattention[.]com и расшарил через Google Drive HTML-файл, стилизованный под collection letter (требование об оплате задолженности) от White & Case. Рассылка ушла на 24 адреса (1 To + 23 CC) - NGO, корпорации и частные лица.
Вся страница в Google Drive - одна большая кликабельная область, ведущая на Google Cloud Storage.
Цепочка атаки: 7 этапов
Полная цепочка от клика до эксфильтрации:
# | Этап | Что происходит |
|---|---|---|
1 | Письмо от drive-shares-dm-noreply@google[.]com - легитимный Google | |
2 | Google Drive | HTML-страница как изображение collection letter. Вся область - ссылка на GCS |
3 | Google Cloud Storage | Бакет persontwelve, файл offer.html (128 байт): meta refresh на фишинговый домен |
4 | PHP-роутер | /?ref=... - сервер ставит cookies: PHPSESSID, ref (tracking ID из email), referer (Base64 от Referer). Редирект 302 на /secure/index_newest.html |
5 | Fingerprinting | FingerprintJS v4.2.1: 30+ параметров → visitorId. BotD определяет сканеры |
6 | Эксфильтрация | MutationObserver → FormData → JSON → Base64 → XHR POST на secure.php |
7 | Cloaking | secure.php возвращает 302 → msn[.]com. Чистый выход для всех |
Ключевой момент: вся цепочка доставки проходит через легитимную инфраструктуру Google Drive, Cloud Storage, Gmail. Почтовые фильтры доверяют googleapis[.]com и не блокируют ссылки.
Что внутри: разбор вредоносного кода
Финальная страница index_newest.html (77 018 байт, Last-Modified: 20.11.2025) содержит три JavaScript-модуля в Base64 (data: URI) и визуальную приманку.
Визуальная приманка
Фейковый экран «Checking your browser» с CSS-спиннером - имитация Cloudflare/DDoS-защиты. Пока жертва ждёт «проверку», в фоне работает fingerprinting. На странице - скрытая форма с полями:
ri - browser fingerprint (visitorId)
ib - бот или человек (0/1)
re - тип бота (base64)
rf - tracking ID из cookie
Скрипт 1: FingerprintJS v4.2.1
Open-source библиотека browser fingerprinting (~45 КБ). Собирает более 30 параметров:
Canvas fingerprint - рендерит скрытый элемент, хеширует результат
WebGL fingerprint - vendor, renderer, шейдерные параметры
Audio fingerprint - через OfflineAudioContext
Шрифты - проверка наличия 60+ шрифтов через side-channel (offsetWidth)
Экран - разрешение, device memory, hardware concurrency
Математика - константы Math.acos, Math.sinh, Math.cosh (различаются между движками)
Ad-блокеры - проверка 30+ списков фильтров
Timezone, plugins, languages и другие параметры
Результат: 32-символьный hex-хеш MurmurX64Hash128 → записывается в поле ri.
Скрипт 2: BotD (Bot Detection)
Библиотека обнаружения ботов от тех же авторов FingerprintJS. Детектирует:
Selenium - window._selenium_evaluate, $cdc
WebDriver - navigator.webdriver
Headless Chrome - plugins, window size, WebGL vendor «Brian Paul» / «Mesa OffScreen»
PhantomJS, Electron, Nightmare, CefSharp, SlimmerJS и другие фреймворки Результат: ib=0 (человек) или ib=1 (бот), плюс re=Base64(botKind).
Зачем это нужно? Автоматические сканеры (urlscan.io, VirusTotal, любые песочницы) определяются как боты. Для них страница ведёт себя одинаково - редирект на MSN. Но атакующий знает, что скан был, и может учесть это.
Скрипт 3: Эксфильтрация
Кастомный скрипт. MutationObserver ожидает заполнения полей ib и ri в скрытой форме. Когда оба поля заполнены:
FormData -> JSON -> Base64 -> XHR POST /secure/secure.php
Тело запроса: {"ed": "<Base64-данные>"}. После отправки - window.location.href = "../" → корень домена → редирект на MSN.com.
Важная деталь: при переходе на /?ref=... сервер ставит cookie referer с Base64-кодированным URL источника перехода. Если Referer header отсутствует (прямой заход, исследователь вставил URL в браузер), cookie явно удаляется (expires=1970). Сервер детектирует прямые заходы без реферера - это дополнительный слой anti-analysis.
Перехваченные данные
Из HAR-файла браузера удалось извлечь реальный POST-запрос на secure.php (13.02.2026, 11:17:48 UTC).
URL: hxxps://online.accessinformnotice[.]com/secure/secure.php
Метод: POST
Ответ: 302 -> hxxps://msn[.]com
Декодированное тело запроса:
{ "ri": "53d072c66a7d3a0a4c57203cc1368108", "ib": "0", "re": "", "rf": "4589cd89a09cfe09540" }
Расшифровка:
Поле | Значение | Что это |
|---|---|---|
ri | 53d072c66a7d3a0a4c57203cc1368108 | Уникальный browser fingerprint (MurmurX64Hash128) |
ib | 0 | BotD: человек (не бот) |
re | (пусто) | Тип бота не определён |
rf | 4589cd89a09cfe09540 | Tracking ID из email-рассылки |
Вот что происходит на стороне сервера: fingerprint жертвы (ri) привязывается к tracking ID из email (rf). Атакующий знает, кто из рассылки на каком браузере и устройстве.
Обратите внимание: в перехваченных данных нет ни логинов, ни паролей, ни данных кредитных карт - только метаданные браузера и tracking ID.
Это не credential harvesting
Это разведывательная операция, а не кража паролей.
Все жертвы после fingerprinting перенаправляются на MSN.com независимо от результата BotD. Нет фишинговой формы, нет запроса логина. Только сбор fingerprints, привязанных к email tracking ID.
Зачем собирать fingerprints?
Таргетированная атака второй волны - зная браузер, ОС, плагины жертвы, можно подготовить эксплойт или убедительный фишинг
Обход anti-fraud - fingerprint позволяет имитировать сессию жертвы
Идентификация при повторных визитах - fingerprint стабилен между сессиями
Продажа данных - база «email -> fingerprint» имеет коммерческую ценность
Инфраструктура: PROSPERO OOO
Фишинговый сервер расположен на IP 91[.]202[.]233[.]71 - AS200593, PROSPERO OOO, Санкт-Петербург.
PROSPERO - один из наиболее известных bulletproof-хостингов. По данным KrebsOnSecurity, Intrinsec и Spamhaus, на нём размещаются C2 для ransomware, SocGholish, GootLoader, SpyNote. Наивысший spam-рейтинг по Interisle. С декабря 2024 маршрутизирует трафик через Kaspersky Lab (AS209030). Связан с Proton66 OOO (AS198953).
Атакующие грамотно разделили инфраструктуру:
Компонент | Где размещён | Зачем |
|---|---|---|
Домен отправителя | Cloudflare | Скрытие IP, защита от блокировки |
Доставка | Google (Drive + GCS + Gmail) | Обход email-фильтров |
Fingerprinting | PROSPERO OOO | Bulletproof, игнорирует abuse |
DNS | Dyna DNS (dyna-ns[.]net) | Дешёвый DNS, быстрая смена IP |
Шаблон index_newest.html имеет Last-Modified 20 ноября 2025 - используется повторно в разных кампаниях. Это не одноразовый payload, а инфраструктурный инструмент.
IOC
Тип | Значение | Описание |
|---|---|---|
Domain | online.accessinformnotice[.]com | Фишинговый сайт |
Domain | accessinformattention[.]com | Домен отправителя |
IP | 91[.]202[.]233[.]71 | Фишинговый сервер (PROSPERO) |
ASN | AS200593 | PROSPERO OOO, bulletproof |
Netblock | 91[.]202[.]233[.]0/24 | Блок PROSPERO |
URL | hxxps://online.accessinformnotice[.]com/secure/index_newest.html | Fingerprinting |
URL | hxxps://online.accessinformnotice[.]com/secure/secure.php | Эксфильтрация |
GCS | hxxps://storage.googleapis[.]com/persontwelve/online/offer.html | Redirect |
Drive | hxxps://drive.google[.]com/file/d/18XPn0pHsygsvZcinTivBQ_I225l-xzpC | Приманка |
neyjardespbeg2002@secure.accessinformattention[.]com | Аккаунт атакующего | |
Server | Apache/2.4.41 (Ubuntu) | Веб-сервер |
MITRE ATT&CK
Техника | ID | Применение |
|---|---|---|
Spearphishing Link | T1566.002 | Ссылка на Google Drive через email |
Masquerading: Match Legitimate Name or Location | T1036.005 | Имитация White & Case LLP |
Masquerading | T1036 | Unicode-гомоглифы в имени отправителя |
User Execution | T1204.001 | Клик по DOWNLOAD E-SIGN |
Link Target | T1608.005 | Multi-hop: GCS → PROSPERO |
Execution Guardrails | T1480 | BotD определяет ботов, cloaking-редирект для сканеров |
Acquire Infrastructure | T1583.003 | Bulletproof hosting PROSPERO |
Exfiltration Over C2 | T1041 | JSON → Base64 → POST secure.php |
Gather Victim Host Information: Client Configurations | T1592.004 | FingerprintJS: 30+ параметров браузера |
Phishing for Information | T1598 | Сбор fingerprints, не credentials |
Что делать
Если вы кликнули по ссылке:
Очистите данные браузера (cookies, cache, localStorage)
Обновите браузер и GPU-драйверы - это может изменить часть параметров Canvas и WebGL fingerprint
Credentials не скомпрометированы - атака собирала только fingerprints
Будьте готовы к таргетированной второй волне
Для SOC/SIEM:
alert dns any any -> any any (msg:"Phishing - accessinformnotice.com"; dns.query; content:"accessinformnotice.com"; sid:2026021301;) alert dns any any -> any any (msg:"Phishing - accessinformattention.com"; dns.query; content:"accessinformattention.com"; sid:2026021302;) alert ip any any -> 91.202.233.0/24 any (msg:"PROSPERO OOO bulletproof hosting"; sid:2026021303;)
Среднесрочно:
Блокировка всей AS200593 - по данным Spamhaus и Interisle, PROSPERO имеет наивысший spam-рейтинг, легитимный трафик минимален
Фильтрация Google Drive shares с urgency-маркерами от внешних отправителей
Мониторинг Certificate Transparency для accessinform*[.]com
Выводы
Эта кампания интересна не payload'ом, а подходом. Атакующие не крадут пароли - они собирают разведданные. Browser fingerprint, привязанный к email через tracking ID, позволяет идентифицировать жертву, её устройство и подготовить таргетированную атаку второй волны.
Технический уровень высокий: multi-hop через Google, FingerprintJS + BotD для evasion, bulletproof-хостинг, чистый выход через MSN. Шаблон используется с ноября 2025 - это не разовая акция, а инструмент.
Полный отчёт (EN + RU, TLP:CLEAR) с IOC: github.com/afokin52/threat-intelligence
