В этом примере мы разберем фишинговую кампанию, которая маскируется под Netflix и использует real-time управление жертвой. Это не обычная статическая HTML-форма, а полноценный phishing service: пользователь проходит через несколько этапов, а оператор из панели управления решает, куда направить его дальше — на ввод логина, карты, SMS-кода, PIN-кода или подтверждение в приложении.

Отдельно мы подтвердили механику через получение доступа и изучение панели управления этим фишинговым сайтом.

В этой статье мы не описываем способ получения доступа к панели, но используем сам факт ее наличия как подтверждение операционной модели: атака управлялась вручную или полуавтоматически через backend-интерфейс.

0. The Hook

Фишинговое письмо
Фишинговое письмо

Первое, что получает пользователь, — письмо с стандартной тактикой социальной инженерии о необходимости действия. Они надеются получить внимание пользователя о том что его просмотр любимых телешоу может быть приостановлен. Чтобы обойти почтовые фильтры и скрыть финальный фишинговый домен, злоумышленники используют укороченную ссылку через инфраструктуру социальной сети X: https://t.co/XXXXXXX

На первый взгляд это обычная ссылка через t.co, поэтому она выглядит менее подозрительно как для пользователя, так и для некоторых автоматических фильтров.

После клика пользователь не сразу попадает на основную фишинговую страницу. Сначала его отправляют на промежуточный ресурс.

1. Public S3 Bucket как промежуточный редиректор

Ссылка ведет на публичный S3 Bucket: https://access-authority-2faXXXXX.s3.eu-north-1.amazonaws.com/index.html

Этот этап выполняет роль фильтра и редиректора.

index.html содержит фильтрацию по странам и заранее известным IP-адресам. Это позволяет не показывать настоящий фишинговый сайт исследователям, автоматическим сканерам, песочницам и защитным системам.

После прохождения фильтра пользователь получает простой HTML-редирект:

<meta http-equiv="refresh" content="1;url=https://www.XXXXX.help/index.html">

Домен маскируется под сервис для решения CAPTCHA. Это удобная легенда: пользователь видит техническое название и может подумать, что перед ним промежуточная проверка браузера, CAPTCHA или security validation.

Фейковая капча
Фейковая капча

На практике это фишинговая инфраструктура.

Уже на этом этапе ведется фингерпринтинг устройства. Код собирает пользовательские события:

  • mousemove
  • touchmove
  • keyup
  • Backspace
  • deviceorientation

Скрипт анализирует не только сам факт событий, но и их параметры:

  • скорость движения;
  • интервалы между событиями;
  • нормализованные координаты;
  • резкость изменения направления;
  • поведение клавиатуры;
  • ориентацию устройства;
  • touch/mouse profile.

Это используется для оценки того, является ли посетитель реальным человеком.

Обфускация и “шифрование” телеметрии

Часть телеметрии перед отправкой шифруется через AES-CBC: crypto.subtle.encrypt({ name: 'AES-CBC', iv: ... }, key, data)

В коде есть антиотладочная логика. Скрипт собирает слово debugger из числового массива и вызывает его через new Function(). Если выполнение задерживается, страница отправляет beacon-запрос на /misc/index.php?r=<random> с параметром bcl

Это похоже на попытку определить, что пользователь открыл DevTools или что выполнение JavaScript было остановлено на breakpoint, backend может изменить поведение, скрыть настоящий flow и показать ошибку или отправить пользователя на легитимный сайт Netflix.

После успешного прохождения "капчи" идет редирект на main/prepare.php

2. Первая фаза: сбор логина и пароля

Фейковое окно авторизации
Фейковое окно авторизации


Первый реальный этап атаки — не карта и не SMS. Сначала пользователь попадает на страницу, имитирующую вход в Netflix.

На этом этапе злоумышленники собирают емейл и пароль.

Это важно: атака начинается с компрометации учетной записи, а уже потом переходит к платежным данным.

После отправки POST формы, сраница переводит пользователя на следующий этап — “проверку платежной карты”.

Таким образом, даже если дальнейшие платежные шаги не будут завершены, злоумышленники уже получают ценный результат: доступ к учетной записи.

3. Вторая фаза: ввод данных карты

После ввода логина и пароля пользователь перенаправляется на страницу платежной проверки.

На этом этапе сценарий имитирует необходимость подтвердить карту, привязанную к Netflix. Пользователь видит интерфейс, похожий на легитимный billing-flow, и вводит платежные данные.

Цель этого этапа — собрать:

  • cardholder name
  • card number
  • expiration date
  • CVV/CVC

В процессе все время отправляется телеметрия:

Телеметрия
Телеметрия

4. Третья фаза: loading screen и ожидание оператора

После ввода карты пользователь попадает на страницу ожидания. Именно этот HTML мы видим в изученном артефакте.

Страница сообщает:

Additional validation is required to complete your card verification
You will receive a short message on your mobile phone...

Визуально это выглядит как обычное ожидание банковского подтверждения. Но технически это не просто “экран ожидания”, это точка, где пользователь удерживается в сессии, пока backend или оператор решает, какой следующий шаг показать.

5. Real-time управление через WebSocket


Главный механизм управления — WebSocket. Мы можем заметить открытый wss:// внизу запросов. Страница подключается к WebSocket и ожидает команду от backend. В HTML зашита логика где оператор может направить пользователя на разные экраны:

КодПутьОписание
1./app.phpСтраница запроса подтверждения в банковском приложении
2./payment.phpПовторный запрос ввода информации о карте с ошибкой
3./sms.phpСтраница ввода кода из СМС
4./pin.phpСтраница ввода пинкода от карты
5https://netflix.comРедирект на настоящий сайт Netflix

Карта которую вводит пользователь автоматически или в полу-автоматическом режиме начинает использоваться для оплат в разных магазинах. Скорее всего это подконтрольные злоумышленникам мерчанты.

Именно здесь real-time компонент становится особенно опасным. Оператор может видеть, какой тип подтверждения запросила платежная система, и адаптировать фишинговую страницу под конкретный момент атаки. Запрашивая то подтверждение в приложении, то код из СМС или ПИН код от карты.

6. Подтверждение через admin-панель

Изучив работу фишинг сайта мы приняли решение искать уязвимости данной панели. Попутно получая довольно странные "пасхалки" от создателя данной панели.

По логам можно утверждать что за 24 часа как минимум 4 разных администраторы панели входили в админ панель через интервал 4-7 часов.

Так же мы обнаружили дополнительные открытые порты на панели 2082, 2095, 8880, 1010 которые позволили выявить настоящий IP, ведь сайт мошенников находиться за CloudFlare.

Провайдеры получили уведомление.

7. Индикаторы компрометации

Домены

*.solvecaptcha.help

8. Вывод

Эта кампания показывает, как современные phishing services превращают обычную страницу входа в управляемую real-time операцию.

Злоумышленники сначала получают логин и пароль, затем платежные данные, после чего удерживают пользователя на loading screen. В этот момент оператор из backend/admin-панели решает, какой следующий шаг показать: SMS-код, PIN-код, подтверждение в приложении или финальный редирект на настоящий Netflix.

Главный технический признак этой схемы — WebSocket-управление. Именно оно делает атаку интерактивной и позволяет операторам адаптировать сценарий под конкретную жертву и конкретный банковский flow.

Это уже не “фишинговая страница”. Это live phishing operation.