Криптодрейнеры всё чаще превращаются в товар и распространяются как Drainer-as-a-Service (DaaS).
Ключевые характеристики:
Злоумышленники скомпрометировали интерфейс сайта и ввели поддельный запрос «Условия использования». Пользователи, взаимодействовавшие с подсказкой, неосознанно подписывали вредоносные транзакции, что приводило к немедленной потере активов.
Ключевые моменты:
Обсуждения на форумах Reddit о захвате Bonk.fun указывают, что один пользователь утверждал, что злоумышленник внедрил на сайт инструмент «HussDrainer».
Такие атаки обычно включают внедрение вредоносного JavaScript в фронтенд, изменение запросов на транзакции без изменения логики бэкенд-контракта.
Можно видеть как формируется структура ценообразования различных инструментов для слива криптовалют вместе с их заявленными возможностями.
Показано, что эти инструменты часто продаются как пакетные сервисы, предлагая такие функции, как поддержка мультичейн, автоматизированный слив активов и удобные панели управления.
Это отражает растущую коммерциализацию инструментов дренажа, расширение рынка и нюансов слива самой крипты.
где даже низкоквалифицированные злоумышленники могут получить доступ к продвинутым возможностям за определённую плату.
Анализируемое хранилище маскируется как:
Паттерны именования репозиториев, такие как «airdrop-claim-eip-7702», которые могут вводить в заблуждение и служить фишинговыми техниками. Такие проекты часто пытаются привлечь жертв, обещая возврат утраченных средств или бесплатные airdrop-услуги.
На самом деле такие репозитории могут содержать вредоносный код, который обманывает пользователей, заставляя их взаимодействовать с фейковыми функциями airdrop. Когда пользователи следуют инструкциям и подключают свои кошельки, их могут попросить одобрить или подписать транзакции. Именно здесь происходит атака — вместо возврата средств код может дать разрешение злоумышленнику, позволяя ему опустошить кошелёк.
Использование таких терминов, как «возврат кошелька», «претензия на аирдроп» и «лёгкая настройка» — это распространённая тактика социальной инженерии для укрепления доверия. Поскольку эти репозитории публично доступны, неопытные пользователи могут считать их легитимными инструментами, хотя на самом деле они могут быть созданы для кражи средств.
Механизмов сохранения не наблюдалось, что говорит о том, что атака основана на немедленном выполнении и быстром извлечении данных, а не на долгосрочной системе.
Архив содержит и скрипт запуска (), который выполняет полезную нагрузку на базе Lua (). Это отражает модель доставки, выполняемую пользователем, что нетипично для легитимных рабочих процессов Web3. Использование интерпретируемой Lua-полезной нагрузки усложняет статическое обнаружение, поскольку основная логика выполняется динамически во время выполнения, а не встроена в скомпилированные бинарные файлы.luajit.exeLauncher.cmduix.txt
Мы скачали приложение из приведённого выше хранилища github и обнаружили, что оно использует вебхук Discord как конечную точку для извлечения конфиденциальных данных через HTTPS. Он постоянно отслеживает файл .env на предмет изменений и передаёт обновлённую информацию. Поскольку файлы .env часто содержат критически важные секреты, такие как учётные данные криптокошелька, это представляет собой значительный риск для безопасности.
Вышеуказанный модуль отвечает за расшифровку URL, который использует веб-хук Discord в качестве конечной точки для извлечения данных
hxxps://discord.com/api/webhooks/1411056528018112634/6SeAntJD8PfBeKbT23dJnwdkk_xuGMosIcjeCH0bXPYoQCHfLIHV8hJpK0nvHxDVkrlr
(https://discord.com/api/webhooks/{webhook_id}/{webhook_token}), что указывает на вебхук-эндпойнт Discord, используемый для извлечения данных. Содержимое файла .env отправляется на этот конечный пункт через запрос HTTPS POST. Это поведение соответствует автоматическому удалению чувствительных переменных среды.
Аналогично поведению CryptoJS.AES.decrypt(), мы реализовали пользовательский скрипт для восстановления оригинального URL вебхука Discord. Зашифрованная строка (unwrap) была впервые декодирована Base64, что позволило получить данные в соленом формате OpenSSL (Salted__ | [8-байтная соль] | [шифротекст]). Используя извлечённую соль и известный пароль, мы получили ключ шифрования и IV через функцию EVP_BytesToKey. Затем шифротекст был расшифрован с помощью AES-256-CBC, в результате чего исходный URL вебхука Discord использовался для извлечения данных. После расшифровки URL Discord Webhook hxxps://discord.com/api/webhooks/1411056528018112634/6SeAntJD8PfBeKbT23dJnwdkk_xuGMosIcjeCH0bXPYoQCHfLIHV8hJpK0nvHxDVkrlr
Он постоянно читает файл .env и отслеживает его на предмет изменений. При каждом обновлении новые данные отправляются снова. Это способствует постоянной краже данных и постоянному наблюдению за конфиденциальной информацией.
env обычно содержит:
Ключевые характеристики:
- Распределение доходов по партнёрству (например, разделение 80/20)
- Готовые фишинговые наборы и смарт-контракты
- Поддержка мультицепочек
- Автоматические механизмы слива
Не удалось прогрузить медиа
Bonk.fun компромисс фронтенда
Инцидент Bonk.fun подчёркивает эффективность манипуляции фронтендом в атаках Web3.Злоумышленники скомпрометировали интерфейс сайта и ввели поддельный запрос «Условия использования». Пользователи, взаимодействовавшие с подсказкой, неосознанно подписывали вредоносные транзакции, что приводило к немедленной потере активов.
Ключевые моменты:
- Уязвимость смарт-контракта не была использована
- Атака полностью опиралась на взаимодействие пользователя с манипулируемым фронтендом
Не удалось прогрузить медиа
Обсуждения на форумах Reddit о захвате Bonk.fun указывают, что один пользователь утверждал, что злоумышленник внедрил на сайт инструмент «HussDrainer».
Не удалось прогрузить медиа
Такие атаки обычно включают внедрение вредоносного JavaScript в фронтенд, изменение запросов на транзакции без изменения логики бэкенд-контракта.
Мультичейновые дрейнеры и цена
Не удалось прогрузить медиа
Не удалось прогрузить медиа
Можно видеть как формируется структура ценообразования различных инструментов для слива криптовалют вместе с их заявленными возможностями.
Показано, что эти инструменты часто продаются как пакетные сервисы, предлагая такие функции, как поддержка мультичейн, автоматизированный слив активов и удобные панели управления.
Это отражает растущую коммерциализацию инструментов дренажа, расширение рынка и нюансов слива самой крипты.
где даже низкоквалифицированные злоумышленники могут получить доступ к продвинутым возможностям за определённую плату.
Эволюция: криптофильтры с помощью вредоносного ПО
В то время как традиционные дрейнеры работают исключительно за счёт злоупотребления транзакциями через браузер, недавние кампании демонстрируют переход к гибридным моделям, включающим полезные нагрузки на уровне конечных точек для расширения возможностей сбора и сохранения данных.Приманка на базе GitHub
Не удалось прогрузить медиа
Анализируемое хранилище маскируется как:
- «Инструменты для получения претензий Airdrop»
- "Решения для восстановления кошелька"
Паттерны именования репозиториев, такие как «airdrop-claim-eip-7702», которые могут вводить в заблуждение и служить фишинговыми техниками. Такие проекты часто пытаются привлечь жертв, обещая возврат утраченных средств или бесплатные airdrop-услуги.
На самом деле такие репозитории могут содержать вредоносный код, который обманывает пользователей, заставляя их взаимодействовать с фейковыми функциями airdrop. Когда пользователи следуют инструкциям и подключают свои кошельки, их могут попросить одобрить или подписать транзакции. Именно здесь происходит атака — вместо возврата средств код может дать разрешение злоумышленнику, позволяя ему опустошить кошелёк.
Использование таких терминов, как «возврат кошелька», «претензия на аирдроп» и «лёгкая настройка» — это распространённая тактика социальной инженерии для укрепления доверия. Поскольку эти репозитории публично доступны, неопытные пользователи могут считать их легитимными инструментами, хотя на самом деле они могут быть созданы для кражи средств.
Не удалось прогрузить медиа
Технический анализ:
Следующий анализ основан на статическом и поведенческом анализе извлеченного образца.Процесс исполнения:
Code:
User Execution → Launcher.cmd
↓
LuaJIT Invocation (luajit.exe)
↓
Lua Script Execution (uix.txt)
↓
Decryption of Embedded Configuration
↓
.env File Access & Monitoring
↓
HTTPS POST → Discord Webhook
↓
Loop for Continuous Data Exfiltration
Механизмов сохранения не наблюдалось, что говорит о том, что атака основана на немедленном выполнении и быстром извлечении данных, а не на долгосрочной системе.
Использование LuaJIT для выполнения полезной нагрузки
Наличие:- luajit.exe
- Выполнение на основе скриптов (nix.txt)
Не удалось прогрузить медиа
Архив содержит и скрипт запуска (), который выполняет полезную нагрузку на базе Lua (). Это отражает модель доставки, выполняемую пользователем, что нетипично для легитимных рабочих процессов Web3. Использование интерпретируемой Lua-полезной нагрузки усложняет статическое обнаружение, поскольку основная логика выполняется динамически во время выполнения, а не встроена в скомпилированные бинарные файлы.luajit.exeLauncher.cmduix.txt
Сбор учетных данных через файлы .env
Вредоносное ПО нацеливается на файлы, которые обычно хранят:.env- Ключи API
- Приватные ключи
- Конечные точки RPC
- Учетные данные кошелька
Мы скачали приложение из приведённого выше хранилища github и обнаружили, что оно использует вебхук Discord как конечную точку для извлечения конфиденциальных данных через HTTPS. Он постоянно отслеживает файл .env на предмет изменений и передаёт обновлённую информацию. Поскольку файлы .env часто содержат критически важные секреты, такие как учётные данные криптокошелька, это представляет собой значительный риск для безопасности.
Извлечение данных через вебхуки Discord
В примере используется инфраструктура вебхука Discord в качестве конечной точки для извлечения данных.- Данные отправляются через запросы HTTPS POST
- Нет доказательств двунаправленного исполнения команд
- Поведение соответствует лёгкой эксфильтрации, а не полному C2
Не удалось прогрузить медиа
Не удалось прогрузить медиа
Вышеуказанный модуль отвечает за расшифровку URL, который использует веб-хук Discord в качестве конечной точки для извлечения данных
hxxps://discord.com/api/webhooks/1411056528018112634/6SeAntJD8PfBeKbT23dJnwdkk_xuGMosIcjeCH0bXPYoQCHfLIHV8hJpK0nvHxDVkrlr
(https://discord.com/api/webhooks/{webhook_id}/{webhook_token}), что указывает на вебхук-эндпойнт Discord, используемый для извлечения данных. Содержимое файла .env отправляется на этот конечный пункт через запрос HTTPS POST. Это поведение соответствует автоматическому удалению чувствительных переменных среды.
Расшифровка встроенной конфигурации
URL вебхука хранится в зашифрованном формате с использованием совместимого с OpenSSL шифрования AES.Ключевые характеристики:
- Режим AES-256-CBC
- EVP_BytesToKey вывод
- Полезная нагрузка, закодированная Base64 с заголовкомSalted__
Технические данные:
The use of AES-256-CBC with EVP_BytesToKey suggests basic obfuscation rather than advanced cryptographic protection.
Python:
import base64
from Crypto.Cipher import AES
from hashlib import md5
# Key Derivation Function from Salt and Password
def evp_bytes_to_key(password, salt, key_len=32, iv_len=16):
d = b''
prev = b''
while len(d) < key_len + iv_len:
prev = md5(prev + password + salt).digest()
d += prev
return d[:key_len], d[key_len:key_len + iv_len]
def decrypt_discord_url():
# Encrypted Discord Server URL
unwrap = (
"U2FsdGVkX19qDrIIfOzOFIAYpU9XTtZJfACYULun2rz7zaju2HPfVS94utvtRO6I"
"d9h7cV5z5XOfVvHQk/u4cB7jlS0luARIAbCrx07OP+/f5rMbbuljSel5UEr3afOQ"
"6lpybut26iKPqK1jRfPMWi5gBl9Po/tdEFW3TwFQciP+OJC8lh+KqHuM89SMgTjM"
)
# Base64 Decoding
data = base64.b64decode(unwrap)
# Check OpenSSL salted format
if data[:8] != b"Salted__":
raise ValueError("Invalid data: missing OpenSSL Salted__ header")
# Extract salt and ciphertext
salt = data[8:16]
ciphertext = data[16:]
# Derive key and IV
key, iv = evp_bytes_to_key("tx".encode(), salt)
# AES-256-CBC Decryption
cipher = AES.new(key, AES.MODE_CBC, iv)
plaintext = cipher.decrypt(ciphertext)
# Remove PKCS7 padding
pad_len = plaintext[-1]
plaintext = plaintext[:-pad_len]
return plaintext.decode()
if __name__ == "__main__":
result = decrypt_discord_url()
print(result)
Аналогично поведению CryptoJS.AES.decrypt(), мы реализовали пользовательский скрипт для восстановления оригинального URL вебхука Discord. Зашифрованная строка (unwrap) была впервые декодирована Base64, что позволило получить данные в соленом формате OpenSSL (Salted__ | [8-байтная соль] | [шифротекст]). Используя извлечённую соль и известный пароль, мы получили ключ шифрования и IV через функцию EVP_BytesToKey. Затем шифротекст был расшифрован с помощью AES-256-CBC, в результате чего исходный URL вебхука Discord использовался для извлечения данных. После расшифровки URL Discord Webhook hxxps://discord.com/api/webhooks/1411056528018112634/6SeAntJD8PfBeKbT23dJnwdkk_xuGMosIcjeCH0bXPYoQCHfLIHV8hJpK0nvHxDVkrlr
Непрерывный мониторинг и тихий сбор данных
Не удалось прогрузить медиа
Он постоянно читает файл .env и отслеживает его на предмет изменений. При каждом обновлении новые данные отправляются снова. Это способствует постоянной краже данных и постоянному наблюдению за конфиденциальной информацией.
env обычно содержит:
- Приватные ключи
- Ключи API
- URL RPC
- Секреты кошелька
👍4
👏1
LIMB