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
slavius
Отдельное спасибо за "Для SOC/SIEM"
Жаль только что это было уже достаточно давно:(