Мошенники — это не хакеры: анализ 4 бэкендов, все из которых были взломаны без особых усилий
Firebase · Supabase · Express.js · Drainer-as-a-Service · Февраль 2026 года
Предупреждение: это анализ, а не нападки
Всё, что представлено в этой статье, является результатом пассивный анализ и общедоступные данные. Ни одна система не была взломана. Ни одна система аутентификации не была обойдена. В каждом случае именно собственные ошибки настройки мошенников сделали их инфраструктуру, данные жертв и рабочие учетные записи доступными для любого желающего. Все API-ключи были обнаружены в общедоступных пакетах JavaScript. Все базы данных были полностью открыты по замыслу самих операторов. Мы описываем это не для того, чтобы нападать, а чтобы показать, что люди, крадущие вашу криптовалюту не могут даже прибрать за собой инструменты.
Основная идея: «скрипт-кидди» с украденными инструментами
В общественном сознании бытует устойчивый миф о том, что интернет-мошенники — это «хакеры», то есть технические гении, которые с помощью сложных и изощрённых методов взламывают системы. Это неверно.
Современные криптовалютные мошенники — это «скрипт-кидди», использующие готовые наборы инструментов. Они покупают пакеты «Drainer-as-a-Service» за 200–500 долларов, развертывают их на бесплатном или недорогом хостинге и молятся, чтобы их жертвы ничего не заметили. Они не пишут код. Они не разбираются в сетях. И уж точно не разбираются в безопасности.
Мы знаем об этом, потому что в феврале 2026 года PhishDestroy проанализировал 4 независимых мошеннических схемы — и в каждом отдельном случае мы могли бы:
- 📖 Прочитать все данные о потерпевших от краж (семенные фразы, адреса электронной почты, IP-адреса, типы кошельков)
- ✏️ Изменено или удалено база данных мошенников
- 🔍 Определен оператор через утечку ключей API, адресов электронной почты и отпечатков инфраструктуры
- 🔄 Воспроизвели атаку на мошенника — используя те же уязвимости, которые они оставили незакрытыми
Никаких уязвимостей. Никаких «нулевых дней». Никакого «взлома». Просто открыв входную дверь, которую они оставили незапертой.
Пример 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) |
| Баннер SSH | SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.11 |
| Эмитент TLS | Let's Encrypt (E7), срок действия: январь–апрель 2026 г. |
| Регистратор DNS | GoDaddy (ns39/ns40.domaincontrol.com) |
| Электронная почта (MX) | mn19indexpre-xyz.mail.protection.outlook.com |
| Клиент Microsoft | NETORGFT19090185.onmicrosoft.com |
| Открытые порты | 22 (SSH), 80 (HTTP→301), 443 (HTTPS) |
«Аутентификация» — шутка
API поставляется с жестко запрограммированным токеном Bearer: thisisakeyforsecureserver. Но вот в чем суть — токен на самом деле не прошел проверку:
Отсутствие проверки входных данных
Все тестовые данные, которые мы вводили, принимались без каких-либо ошибок:
Характеристики
Время отклика на запросы 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 без правил безопасности
| Параметры | Значение |
|---|---|
| Фишинговый домен | web3ledgar.com (типосквот слова «Ledger») |
| Альтернативный домен | web3.ledgerscore.ltd |
| Проект Firebase | web3ledger-210ab |
| Ключ API | AIzaSyCv8e-Gl7nK1RPpfNkJt-WjSZiaoe4AsL8 |
| Идентификатор приложения | 1:1054258933515:web:9fb193fcd0093023f7fc0e |
| Пакет JS | /static/js/main.7a5ec2fa.js |
| Правила Firestore | Полный доступ — чтение/запись без аутентификации |
| Общее число жертв | 12 записей в users коллекция |
| Найденные коллекции | users, transactions |
Данные о жертвах — доступны для всех
Один неавторизованный запрос GET к REST-API Firestore вернул каждая украденная фраза-секрет:
Среди 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 полностью открыт
| Параметры | Значение |
|---|---|
| Фишинговый домен | web3safe-pal.com (типосквот от «SafePal») |
| Проект Supabase | gzqsadraigchwdhblavp |
| В чём секрет? | Опубликовано в /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 таблица:
Идентификаторы начинаются с 130 — то есть записи с 1 по 129 были ранее удалены оператором. Через эту систему прошло не менее 131 семенной фразы.
Функции Edge: цепочка электронных писем
Активны две функции Supabase Edge. Мы провели обратную разработку send-email ожидаемый формат входных данных функции путем тестирования наборов данных:
Повторно отправить ключ API (RESEND_API_KEY) хранится в переменных среды Supabase. Сервис Resend ведет учет данных по проверке отправителей и данных для выставления счетов — еще один прямой путь к идентификации оператора.
Возможность деанонимизации
The Russian UI localization ("Основной кошелек", "Ваш кошелек загружается...") indicates a Русскоговорящий оператор. Проект Supabase (gzqsadraigchwdhblavp) привязана к учетной записи с данными о счетах. Сервис «Повторно отправить письмо» содержит адрес электронной почты получателя. Интроспекция GraphQL раскрывает полную схему базы данных. Мы продемонстрировали полный доступ на запись — мы могли бы заменить каждую украденную семенную фразу предупреждением для пострадавшихили удалил всю таблицу. Оператор не смог бы восстановить эти данные.
Пример 4: Дренажная система промышленного масштаба — aipolypredictor.xyz
19 000 фраз-семян за 5,8 дня
| Параметры | Значение |
|---|---|
| Домен интерфейса | aipolypredictor.xyz («PolySniper | Ставки инсайдеров на фаворитов») |
| API C2 | api.yfhikblkhghdyteiuyf54.run |
| IP-адреса C2 | 172.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) |
| Комплект для дренажа CDN | renderer-postcard.defex.cc (601 КБ зашифрованного JS) |
| Бот в Telegram | Активный, с поддержкой уведомлений |
| Ограничение частоты запросов | 10 запросов за 60 секунд (единственное обнаруженное ограничение) |
Масштаб, отображаемый с помощью последовательных идентификаторов
Самая роковая ошибка: последовательные идентификаторы заданий. При каждой отправке семенной фразы выдается увеличивающийся идентификатор, что позволяет любому пользователю рассчитать общий объем:
Многоцепочечная архитектура
Сервер C2 генерирует ключи для всех основных цепочек, используя пути вывода длиной 100:
Инфраструктура кампании
11 подтвержденных доменов в 2 группах операторов, отслеживаемых по идентификаторам пакетов:
| Идентификатор пакета | Домены | Статус |
|---|---|---|
88ef78f5... | Aipolypredictor.xyz | ПРЯМОЙ ЭФИР |
4446ea5d... | solana.onspace.app, solxjup.onspace.app | ПРЯМОЙ ЭФИР |
| Комплект defex.cc | jup-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 | Повторная отправка + Биллинг Supabase | PDR + Telegram |
| Предполагаемое число жертв | Неизвестно | 12 | 131+ | Более 19 000 |
| Язык оператора | Неизвестно | английский | русский | Неизвестно |
Почему мошенники — это не хакеры
Факты говорят сами за себя. Во всех четырёх операциях мы наблюдаем одну и ту же картину:
- Купить готовые комплекты для сушки посуды (200–500 долларов)
- Развертывание на бесплатных тарифных планах (Firebase, Supabase)
- Не изменяйте настройки по умолчанию
- Используйте жестко запрограммированные токены, которые не проверяются
- Никогда не включайте RLS, никогда не ограничивайте CORS
- Указывать свою идентичность в метаданных
- Используйте последовательные идентификаторы, отражающие масштаб
- Написать собственные инструменты для вывода данных
- Используйте зашифрованные каналы связи с аутентификацией
- Использовать случайные идентификаторы, чередовать инфраструктуру
- Обеспечить надлежащий контроль доступа
- Используйте Tor и цепочки прокси-серверов, анонимные платежи
- Разделить операционную идентичность и хостинг
- Применять методы противодействия криминалистической экспертизе
Типичный клиент сервиса «Drainer-as-a-Service» — это социальный инженер с кредитной картой, а не технический специалист. Они умеют зарегистрировать домен и вставить код в панель управления хостингом. Но они не умеют:
- Настройте правила безопасности Firestore (это займет 2 минуты)
- Включить защиту на уровне строк в Supabase (займет 5 минут)
- Проверить и очистить входные данные (займет 30 минут)
- Используйте UUID вместо последовательных целых чисел (на это уйдет всего одна строка кода)
- Ограничить CORS собственными доменами (для этого потребуется всего одна строка в конфигурации)
Это не особо искушенные противники. Это люди, которые не умеют настраивать базу данных.
Показатели взлома (IOC)
Домены
IP-адреса
Ключи API и идентификаторы проектов
Вывод: «Король голый»
Вывод
Каждая из проанализированных нами мошеннических схем могла бы полностью взломан, лишен анонимности и выведен из строя используя лишь веб-браузер, утилиту curl и общедоступную документацию. В каждом случае злоумышленники оставляли свои базы данных полностью открытыми, ключи API — в общедоступных файлах JavaScript, свои идентификационные данные — в метаданных, а данные своих жертв — в открытом доступе для любого, кто захотел бы их посмотреть.
Вывод прост: мошенники — это не хакеры. Это обычные воришки, которые купили набор отмычек на AliExpress и забыли запереть собственную входную дверь. Используемые ими инструменты выглядят сложными — потому что их создал кто-то другой. Сами операторы — дилетанты, которые без труда подвергают риску свою инфраструктуру, данные своих жертв и собственные личности перед любым человеком, обладающим элементарными техническими знаниями.
Если вы вводили свою семенную фразу на любом из этих сайтов — считайте, что ваш кошелек взломан, и немедленно переведите средства.
Обо всех выявленных фактах было сообщено соответствующим поставщикам услуг (Google/Firebase, Supabase, Cloudflare, регистраторам доменов) и зафиксировано для правоохранительных органов. Указанные выше индикаторы угрозы (IOC) были добавлены в PhishDestroy: список уничтожения.


