html Разоблачение мошенников: анализ 4-х бэкэндов мошеннических схем
Вернуться к новостям
РАССЛЕДОВАНИЕ ПО НЕСКОЛЬКИМ ДЕЛАМ

Мошенники — это не хакеры: анализ 4 бэкендов, все из которых были взломаны без особых усилий

Firebase · Supabase · Express.js · Drainer-as-a-Service · Февраль 2026 года

Scam Infrastructure Exposed
Более 19 000
Украдены семенные фразы (1 кампания)
4
Полный доступ к бэкендам
0
Требуется аутентификация
267+
Связанные фишинговые домены

 Предупреждение: это анализ, а не нападки

Всё, что представлено в этой статье, является результатом пассивный анализ и общедоступные данные. Ни одна система не была взломана. Ни одна система аутентификации не была обойдена. В каждом случае именно собственные ошибки настройки мошенников сделали их инфраструктуру, данные жертв и рабочие учетные записи доступными для любого желающего. Все API-ключи были обнаружены в общедоступных пакетах JavaScript. Все базы данных были полностью открыты по замыслу самих операторов. Мы описываем это не для того, чтобы нападать, а чтобы показать, что люди, крадущие вашу криптовалюту не могут даже прибрать за собой инструменты.

 Основная идея: «скрипт-кидди» с украденными инструментами

В общественном сознании бытует устойчивый миф о том, что интернет-мошенники — это «хакеры», то есть технические гении, которые с помощью сложных и изощрённых методов взламывают системы. Это неверно.

Современные криптовалютные мошенники — это «скрипт-кидди», использующие готовые наборы инструментов. Они покупают пакеты «Drainer-as-a-Service» за 200–500 долларов, развертывают их на бесплатном или недорогом хостинге и молятся, чтобы их жертвы ничего не заметили. Они не пишут код. Они не разбираются в сетях. И уж точно не разбираются в безопасности.

Мы знаем об этом, потому что в феврале 2026 года PhishDestroy проанализировал 4 независимых мошеннических схемы — и в каждом отдельном случае мы могли бы:

Никаких уязвимостей. Никаких «нулевых дней». Никакого «взлома». Просто открыв входную дверь, которую они оставили незапертой.

 Пример 1: «Призрачный» API — server0002.mn19indexpre.xyz

 Express.js на Apache: полное отсутствие реальной безопасности

АУТЕНТИФИКАЦИЯ ОТСУТСТВУЕТ ПРОВЕРКА ВХОДНЫХ ДАННЫХ ОТСУТСТВУЕТ ОТСУТСТВИЕ ОГРАНИЧЕНИЯ СКОРОСТИ Курсы: *
ПараметрыЗначение
Доменserver0002.mn19indexpre.xyz
IP-адрес108.181.185.225
Серверный стекApache/2.4.58 (Ubuntu) → Express.js (Node.js)
Баннер SSHSSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.11
Эмитент TLSLet's Encrypt (E7), срок действия: январь–апрель 2026 г.
Регистратор DNSGoDaddy (ns39/ns40.domaincontrol.com)
Электронная почта (MX)mn19indexpre-xyz.mail.protection.outlook.com
Клиент MicrosoftNETORGFT19090185.onmicrosoft.com
Открытые порты22 (SSH), 80 (HTTP→301), 443 (HTTPS)

 «Аутентификация» — шутка

API поставляется с жестко запрограммированным токеном Bearer: thisisakeyforsecureserver. Но вот в чем суть — токен на самом деле не прошел проверку:

// Отсутствует заголовок аутентификации → принято POST / HTTP/1.1 Content-Type: application/json {"subject":"test","domain":"test","messages":["ping"]} → {"success": true} // Неверный токен → также принимается Авторизация: Bearer wrong_token_completely → {"success": true} // Любой тип контента → также допускается Тип содержимого: text/xml, text/plain, multipart/form-data → {"success": true}

 Отсутствие проверки входных данных

Все тестовые данные, которые мы вводили, принимались без каких-либо ошибок:

// Внедрение SQL-кода Тема: «ИЛИ 1=1--» → принято Тема: "'; DROP TABLE messages;--" → принято // SSTI (вставка шаблонов на стороне сервера) Тема: «{{7*7}}» → принято Тема: "{{config}}" → принято Тема: "{{self.__class__}}" → принято // SSRF (подделка запросов на стороне сервера) домен: «http://169.254.169.254/latest/meta-data/» → принято домен: "file:///etc/passwd" → принято // Сохраненный XSS-код Тема: «<script>alert(1)</script>» → принято

 Характеристики

Время отклика на запросы POST стабильно составляет около 7,5 секунд независимо от размера данных (принимаются данные от 10 байт до 10 МБ), что указывает на пересылку электронной почты или ретрансляцию веб-хуков на серверной стороне. Ответ на запрос GET поступает за 0,6 секунды. 10 параллельных запросов обрабатываются за 9,1 секунды — ограничение скорости не применяется.

 Возможность деанонимизации

Идентификатор арендатора Microsoft 365 NETORGFT19090185 является прямая ссылка на аккаунт организации зарегистрировавший этот домен. В сочетании с регистрационными записями GoDaddy и выделенным IP-адресом (не за CDN) этот оператор является легко идентифицируемый по законным каналам. Запись SPF (include:secureserver.net) подтверждает, что в случае хостинга электронной почты GoDaddy — все метаданные электронных писем могут быть предоставлены по судебному запросу.

 Пример 2: Firebase Wide Open — web3ledgar.com

 Firestore без правил безопасности

ПРАВИЛА FIRESTORE: ОТКРЫТЫЕ ВСЕ ДАННЫЕ О ЖЕРТВАХ ДОСТУПНЫ ДЛЯ ПРОСМОТРА Ключ API в публичном JS 12 ПОСТРАДАВШИХ
ПараметрыЗначение
Фишинговый доменweb3ledgar.com (типосквот слова «Ledger»)
Альтернативный доменweb3.ledgerscore.ltd
Проект Firebaseweb3ledger-210ab
Ключ APIAIzaSyCv8e-Gl7nK1RPpfNkJt-WjSZiaoe4AsL8
Идентификатор приложения1:1054258933515:web:9fb193fcd0093023f7fc0e
Пакет JS/static/js/main.7a5ec2fa.js
Правила FirestoreПолный доступ — чтение/запись без аутентификации
Общее число жертв12 записей в users коллекция
Найденные коллекцииusers, transactions

 Данные о жертвах — доступны для всех

Один неавторизованный запрос GET к REST-API Firestore вернул каждая украденная фраза-секрет:

GET /v1/projects/web3ledger-210ab/databases/(default)/documents/users?pageSize=300 → 200 OK → Всего документов: 12 // Пример записи о жертве (семенная фраза удалена в целях безопасности) { «walletId»: W3L-65285520, «walletType»: «WalletConnect», «электронная почта»: «[УДАЛЕНО]@gmail.com», «семенная фраза»: «████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████», «createdAt»: 15 февраля 2026 г., 00:14:52.804Z, «статус»: «активный» }

Среди 12 записей была одна, которая многое объясняла — кто-то уже протестировал систему с помощью fbi@fbi.gov как и в электронном письме. Мошенник либо тестировал свою собственную систему (что полезно для идентификации), либо кто-то другой уже проверил её.

 Ход атаки

Фишинговый сайт имитирует интерфейс кошелька Ledger. Жертва нажимает «Подключить кошелек» → вводит сед-фразу → React-фронтенд записывает данные напрямую в Firestore → мошенник считывает их из той же открытой базы данных. Сервера на стороне сервера нет вообще. Вся система работает в рамках бесплатного тарифа Google.

 Возможность деанонимизации

Идентификатор проекта Firebase web3ledger-210ab и идентификатор приложения 1:1054258933515 являются привязанный к аккаунту Google. Google хранит данные о выставлении счетов, журналы IP-адресов и информацию о создании учетных записей для всех проектов Firebase. Один-единственный запрос правоохранительных органов в адрес Google позволяет установить личность оператора. Кроме того, тот факт, что правила Firestore полностью открыты, означает, что мы могли бы внести записи в их базу данных, оповещал пострадавших в режиме реального времени или удалял всю коллекцию.

 Пример 3: Supabase с полным набором функций CRUD — web3safe-pal.com

 Безопасность на уровне строк отключена, GraphQL полностью открыт

Функция RLS отключена ПОЛНЫЙ ДОСТУП К ОПЕРАЦИЯМ CRUD ПОДДЕРЖКА GRAPHQL ОБЗОР ФУНКЦИЙ EDGE Локализация на русский язык
ПараметрыЗначение
Фишинговый доменweb3safe-pal.com (типосквот от «SafePal»)
Проект Supabasegzqsadraigchwdhblavp
В чём секрет?Опубликовано в /assets/index-b025f4a6.js (748 КБ)
Таблица базы данныхseeds — чтение, вставка, обновление, удаление
GraphQLВключена полная интроспекция + мутации
Функции на границеsend-wallet-import-email, send-email
Электронная почтаAPI повторной отправки (RESEND_API_KEY в переменной среды)
Регистрация жертвИдентификаторы 130–131 (идентификатор 129 ранее удален)
Язык интерфейсаRussian ("Основной кошелек", "Ваш кошелек загружается...")

 Полный доступ к базе данных — чтение, запись, удаление

Ключ Supabase anon, содержащийся в сжатом пакете JavaScript, предоставляет полный доступ CRUD в seeds таблица:

// ЧТЕНИЕ — получить все похищенные фразы-семена GET /rest/v1/seeds?select=*&id=id.asc → 200 OK [ {идентичность:130, "фраза":«████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████», «имя»:"Основной кошелек"}, {идентичность:131, "фраза":«████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████ ████», «имя»:"Основной кошелек"} ] // INSERT — мы можем записывать данные в базу данных мошенника POST /rest/v1/seeds {"phrase":"PHISHDESTROY_WAS_HERE","name":"test"} → Создано 201 {идентичность:132} Обновление через GraphQL mutation { updateseedsCollection(filter:{id:{eq:131}}, set:{name:"PhishDestroy was here"}) { affectedCount } } → {"affectedCount": 1} Удалить через GraphQL mutation { deleteFromseedsCollection(filter:{id:{eq:131}}, atMost:1) { affectedCount } } → {"affectedCount": 1}

Идентификаторы начинаются с 130 — то есть записи с 1 по 129 были ранее удалены оператором. Через эту систему прошло не менее 131 семенной фразы.

 Функции Edge: цепочка электронных писем

Активны две функции Supabase Edge. Мы провели обратную разработку send-email ожидаемый формат входных данных функции путем тестирования наборов данных:

// Проверка работоспособности конечной точки отправки электронной почты {"seed":"тестовая фраза","name":"test"} → 200 OK {"id":"f2749592-..."} {"seed_phrase":"...","wallet_name":"..."} → 400 «Данные о семенах не указаны». {"phrase":"...","name":"..."} → 400 «Данные о семенах не указаны». // Функция принимает {seed, name} и отправляет их злоумышленнику через API Resend // Исходный код функции Edge (восстановлен из JS-пакета): // NB.functions.invoke("send-wallet-import-email", // {body: {имя_кошелька, секретная_фраза, IP-адрес}})

Повторно отправить ключ API (RESEND_API_KEY) хранится в переменных среды Supabase. Сервис Resend ведет учет данных по проверке отправителей и данных для выставления счетов — еще один прямой путь к идентификации оператора.

 Возможность деанонимизации

The Russian UI localization ("Основной кошелек", "Ваш кошелек загружается...") indicates a Русскоговорящий оператор. Проект Supabase (gzqsadraigchwdhblavp) привязана к учетной записи с данными о счетах. Сервис «Повторно отправить письмо» содержит адрес электронной почты получателя. Интроспекция GraphQL раскрывает полную схему базы данных. Мы продемонстрировали полный доступ на запись — мы могли бы заменить каждую украденную семенную фразу предупреждением для пострадавшихили удалил всю таблицу. Оператор не смог бы восстановить эти данные.

 Пример 4: Дренажная система промышленного масштаба — aipolypredictor.xyz

 19 000 фраз-семян за 5,8 дня

Украдено более 19 тысяч семян ПОСЛЕДОВАТЕЛЬНЫЕ ИДЕНТИФИКАТОРЫ ЗАДАНИЙ ОТСУТСТВИЕ ОГРАНИЧЕНИЙ CORS DaaS KIT (defex.cc) ПОДТВЕРЖДЕНО 11 ДОМЕНОВ
ПараметрыЗначение
Домен интерфейсаaipolypredictor.xyz («PolySniper | Ставки инсайдеров на фаворитов»)
API C2api.yfhikblkhghdyteiuyf54.run
IP-адреса C2172.67.168.147, 104.21.26.231 (Cloudflare)
БэкендExpress.js (Node.js) версия 1.0.0
Регистрация (интерфейс)Компания «NiceNIC International Group»
Зарегистрироваться (C2)PDR Ltd. (PublicDomainRegistry.com)
Время безотказной работы~139 часов (начало ~10 февраля 2026 г., 21:00 UTC)
Комплект для дренажа CDNrenderer-postcard.defex.cc (601 КБ зашифрованного JS)
Бот в TelegramАктивный, с поддержкой уведомлений
Ограничение частоты запросов10 запросов за 60 секунд (единственное обнаруженное ограничение)

 Масштаб, отображаемый с помощью последовательных идентификаторов

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

POST /api/check-seed-full { «семенная фраза»: «Тестовая фраза», "bundleId": 88ef78f56e0837dd0339e40a882bf563, «глубина»: 100, «домен»: Aipolypredictor.xyz, «sourceInfo»: {«walletName»:MetaMask, isBot:false} } → {"success": true, "message": "Запрос добавлен в очередь", "jobId": "19358"} // Следующий запрос: jobId 19359, затем 19360... // Около 19 000 фраз-семян за ~139 часов = ~137 в час

 Многоцепочечная архитектура

Сервер C2 генерирует ключи для всех основных цепочек, используя пути вывода длиной 100:

⛓️
Целевые сети
Эфириум / Биткойн / Солана / Монеро
🔑
Глубина вложенности
100
🌐
Подтвержденные домены
11
🕸️
defex.cc — ссылка
255+

 Инфраструктура кампании

11 подтвержденных доменов в 2 группах операторов, отслеживаемых по идентификаторам пакетов:

Идентификатор пакетаДоменыСтатус
88ef78f5...Aipolypredictor.xyzПРЯМОЙ ЭФИР
4446ea5d...solana.onspace.app, solxjup.onspace.appПРЯМОЙ ЭФИР
Комплект defex.ccjup-v2.com, events-charizard.fun, events-llquid.fun, events-blackswan.fun, soljup.onspace.buildСмешанный

 Анализ полезной нагрузки JavaScript

Три зашифрованных JS-кода служат для сбора данных:

  • wallet-connect.js (46 КБ) — Обеспечивает интерфейс подключения кошелька, перехватывает ввод седа. Запутывание кода с помощью ротации массива строк.
  • wallet-specific-modals.js (134 КБ) — Содержит Полный список английских слов для BIP39 и Список слов для Monero (1 626 слов). Защита от отладки с помощью переопределения console.log/trace. Поддержка модальных окон для нескольких кошельков.
  • defex.cc/index.js (601 КБ) — Код, зашифрованный с использованием Unicode и имена переменных на китайском языке. Логика drainer, специфичная для Solana. Кодировщик Base58, примитивы вывода криптографических ключей. Версия 3.0.0.

 Возможность деанонимизации

Этот CORS: * заголовок и отсутствие средств аутентификации любой пользователь может отправлять запросы и отслеживать изменение идентификаторов заданий в режиме реального времени. Благодаря интеграции с ботом Telegram оператор получает уведомления на свой аккаунт в Telegram — при этом метаданные Telegram могут быть запрошены по судебному предписанию. NiceNIC (регистратор для интерфейса) — это известный «непробиваемый» регистратор, с которым мы ранее исследованный, но компания PDR Ltd. (регистратор доменов C2) действительно реагирует на запросы правоохранительных органов. defex.cc Комплект инструментов для слива данных обслуживает более 255 доменов — взлом defex.cc приведет к раскрытию всей деятельности DaaS и всех её клиентов.

 Сравнение: 4 операции, один и тот же шаблон

Метрическая система mn19indexpre
Express.js
web3ledgar
Firebase
Web3SafePal
Supabase
aipolypredictor
Дренаж C2
АутентификацияНет (токен игнорируется)НетАнонимный ключ в JSНет (CORS: *)
Данные доступны для чтенияСообщения/ретрансляцияВсе семенные фразыВсе семенные фразыИдентификаторы заданий / масштаб
Данные, доступные для записиДа (без ограничений)ДаДа (полный набор операций CRUD)Да (отправить)
Проверка вводимых данныхНольНольНольМинимальный
Ограничение частоты запросовНетНетНет10 повторений за 60 секунд
поддающийся деанонимизацииарендатор MS365Аккаунт GoogleПовторная отправка + Биллинг SupabasePDR + Telegram
Предполагаемое число жертвНеизвестно12131+Более 19 000
Язык оператораНеизвестноанглийскийрусскийНеизвестно

 Почему мошенники — это не хакеры

Факты говорят сами за себя. Во всех четырёх операциях мы наблюдаем одну и ту же картину:

 Как действуют мошенники
  • Купить готовые комплекты для сушки посуды (200–500 долларов)
  • Развертывание на бесплатных тарифных планах (Firebase, Supabase)
  • Не изменяйте настройки по умолчанию
  • Используйте жестко запрограммированные токены, которые не проверяются
  • Никогда не включайте RLS, никогда не ограничивайте CORS
  • Указывать свою идентичность в метаданных
  • Используйте последовательные идентификаторы, отражающие масштаб
 Что бы сделали хакеры
  • Написать собственные инструменты для вывода данных
  • Используйте зашифрованные каналы связи с аутентификацией
  • Использовать случайные идентификаторы, чередовать инфраструктуру
  • Обеспечить надлежащий контроль доступа
  • Используйте Tor и цепочки прокси-серверов, анонимные платежи
  • Разделить операционную идентичность и хостинг
  • Применять методы противодействия криминалистической экспертизе

Типичный клиент сервиса «Drainer-as-a-Service» — это социальный инженер с кредитной картой, а не технический специалист. Они умеют зарегистрировать домен и вставить код в панель управления хостингом. Но они не умеют:

Это не особо искушенные противники. Это люди, которые не умеют настраивать базу данных.

 Показатели взлома (IOC)

Домены

# Case 1: Express.js API server0002.mn19indexpre.xyz # Case 2: Firebase Stealer web3ledgar.com web3.ledgerscore.ltd # Case 3: Supabase Stealer web3safe-pal.com # Case 4: Drainer Campaign aipolypredictor.xyz api.yfhikblkhghdyteiuyf54.run yfhikblkhghdyteiuyf54.run renderer-postcard.defex.cc solana.onspace.app solxjup.onspace.app jupag.onspace.app jupiverse.onspace.app stakepayment.icu jup-v2.com events-charizard.fun events-llquid.fun events-blackswan.fun soljup.onspace.build

IP-адреса

108.181.185.225 # Пример 1 — Express.js (специализированный) 172.67.168.147 / 104.21.26.231 # Пример 4 — API C2 (Cloudflare) 172.67.178.251 / 104.21.67.171 # Пример 4 — Фронтенд (Cloudflare) 172.67.209.39 / 104.21.37.139 # Пример 4 — defex.cc (Cloudflare) 43.130.171.152 / 43.130.171.225 # Пример 4 — домены onspace (Tencent)

Ключи API и идентификаторы проектов

# Firebase (Case 2) Проект: web3ledger-210ab Ключ API: AIzaSyCv8e-Gl7nK1RPpfNkJt-WjSZiaoe4AsL8 Идентификатор приложения: 1:1054258933515:web:9fb193fcd0093023f7fc0e # Supabase (Case 3) Проект: gzqsadraigchwdhblavp Анонимный ключ: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... # Campaign Tracking (Case 4) Пакет 1: 88ef78f56e0837dd0339e40a882bf563 Пакет 2: 4446ea5ddb308b2494db8ad4b12196c3 # Microsoft Tenant (Case 1) NETORGFT19090185.onmicrosoft.com

 Вывод: «Король голый»

 Вывод

Каждая из проанализированных нами мошеннических схем могла бы полностью взломан, лишен анонимности и выведен из строя используя лишь веб-браузер, утилиту curl и общедоступную документацию. В каждом случае злоумышленники оставляли свои базы данных полностью открытыми, ключи API — в общедоступных файлах JavaScript, свои идентификационные данные — в метаданных, а данные своих жертв — в открытом доступе для любого, кто захотел бы их посмотреть.

Вывод прост: мошенники — это не хакеры. Это обычные воришки, которые купили набор отмычек на AliExpress и забыли запереть собственную входную дверь. Используемые ими инструменты выглядят сложными — потому что их создал кто-то другой. Сами операторы — дилетанты, которые без труда подвергают риску свою инфраструктуру, данные своих жертв и собственные личности перед любым человеком, обладающим элементарными техническими знаниями.

Если вы вводили свою семенную фразу на любом из этих сайтов — считайте, что ваш кошелек взломан, и немедленно переведите средства.

Обо всех выявленных фактах было сообщено соответствующим поставщикам услуг (Google/Firebase, Supabase, Cloudflare, регистраторам доменов) и зафиксировано для правоохранительных органов. Указанные выше индикаторы угрозы (IOC) были добавлены в PhishDestroy: список уничтожения.

Поделиться этим расследованием

X / Twitter Telegram Reddit LinkedIn

Связанные расследования

BUYTRX Exposed: 55 Domains & TRON Approval Drainer
РАССЛЕДОВАНИЕ
Разоблачение BUYTRX: 55 доменов и схема похищения средств с TRON
Crypto Drainer Toolkit: Angel Drainer Resellers Exposed
Тщательное расследование
Набор инструментов Crypto Drainer: раскрыты имена реселлеров Angel Drainer
Keitaro TDS: 1,500 Panels Exposed, Zero Legit Uses
РАССЛЕДОВАНИЕ
Keitaro TDS: 1 500 панелей подверглись утечке, легальных вариантов использования нет
Уведомление о прозрачности. PhishDestroy — это некоммерческий проект, основанный на волонтерской работе. Наши исследования могут отражать некоторую предвзятость в отношении инфраструктуры мошенничества и сервисов, способствующих её функционированию. Мы призываем читателей критически и независимо оценивать все представленные материалы. Ознакомьтесь с полным текстом нашего заявления о прозрачности →