В ходе охоты за угрозами специалисты компании Netskope обнаружили новый многофункциональный Python-троян с функцией удаленного администрирования (RAT, Remote Access Trojan), который использует API Telegram Bot в качестве канала управления командованием и контролем (C2, Command and Control). Это позволяет злоумышленникам извлекать похищенные данные и удаленно взаимодействовать с зараженными компьютерами.
Описание
Вредоносная программа пытается придать себе видимость легитимности, используя название "Nursultan Client" в механизмах постоянства и экранных обманах - это имя ассоциируется с легальным клиентом Minecraft, популярным среди игровых сообществ Восточной Европы и России. Троян объединяет широкий спектр вредоносных возможностей, включая захват скриншотов, фотографирование с веб-камеры пользователя, кражу конфиденциальных токенов аутентификации Discord и предоставление злоумышленнику возможности открывать произвольные URL-адреса на машине жертвы. Это продолжает давнюю тенденцию, когда субъекты угроз нацеливаются на игровое сообщество, внедряя вредоносное ПО в модификации, читы и пользовательские инструменты.
Ключевые выводы исследования показывают, что вредоносная программа выдает себя за легальное программное обеспечение Minecraft, используя название в фальшивых сообщениях установки и ключах реестра постоянства для обмана жертв. Хотя ее механизмы постоянства и возможности кражи токенов Discord специфичны для Windows, основное общение через C2 и несколько функций наблюдения построены на кроссплатформенных библиотеках, что позволяет им функционировать на Windows, Linux и Darwin.
Особенностью данного трояна является использование API Telegram Bot для всех коммуникаций C2, извлечения данных и получения команд через популярный мессенджер. Программа предназначена для кражи токенов аутентификации Discord из десктопного клиента и браузеров. Она включает функции наблюдения, такие как захват экрана и веб-камеры, а также функции рекламного ПО, такие как открытие и отображение произвольных URL-адресов, изображений и текста.
При первоначальном анализе был обнаружен исполняемый файл, созданный с помощью PyInstaller. Хотя PyInstaller является распространенным инструментом для упаковки Python-скриптов в автономные исполняемые файлы, авторы вредоносных программ также часто используют его для упаковки своего кода, как ранее наблюдалось в угрозах Evil Ant и Zeon ransomware. Размер образца составил 68,5 МБ, что является значительным показателем по сравнению с типичным вредоносным ПО. Известно, что субъекты угроз намеренно увеличивают размеры файлов, чтобы обойти средства безопасности, поскольку некоторые песочницы настроены на пропуск или частичное сканирование файлов, превышающих установленный порог размера.
При выполнении образец немедленно пытается скрыть свое присутствие. В системах Windows он скрывает собственное консольное окно от пользователя. Чтобы обмануть пользователя, который может наблюдать за выполнением, скрипт выводит в консоль фальшивую полосу прогресса установки, используя название "Nursultan client" для имитации легального программного обеспечения.
Для обеспечения выживания после перезагрузки системы вредоносная программа пытается добавить себя в процесс запуска Windows путем создания ключа реестра с именем "NursultanClient". Однако этот механизм постоянства содержит недостатки и, скорее всего, не сработает по двум причинам: неправильное указание пути к исполняемому файлу и использование временного каталога PyInstaller, который удаляется после завершения процесса.
Основой работы вредоносной программы является использование Telegram в качестве канала C2. Скрипт содержит жестко запрограммированный токен бота Telegram и жестко запрограммированный список разрешенных идентификаторов пользователей Telegram. Это гарантирует, что только авторизованный злоумышленник может отдавать команды зараженной машине. Все данные извлекаются к злоумышленнику через этот же канал Telegram.
Образец специально нацелен на токены аутентификации Discord и также выполняет профилирование системы. Эти функции доступны злоумышленнику через простые команды. Команда "/tokens" осуществляет кражу токенов Discord: один из основных показателей этой вредоносной программы - кража токенов аутентификации. Модуль поиска токенов ищет токены в файлах локального хранилища клиентов Discord, включая стабильные, PTB и Canary сборки. Он также сканирует каталоги данных пользователей основных веб-браузеров, таких как Chrome, Edge, Firefox, Opera и Brave, нацеливаясь на базы данных LevelDB и SQLite, где могут храниться токены. Команда "/info" выполняет системную разведку: эта команда собирает и извлекает подробный профиль системы. Собранная информация включает имя компьютера, имя пользователя, версию ОС, процессор, использование памяти и диска, а также локальные и внешние IP-адреса.
Помимо кражи данных, образец предоставляет злоумышленнику набор инструментов для наблюдения и рекламных функций. Команды "/screenshot" и "/camera" позволяют злоумышленнику захватывать скриншот рабочего стола жертвы или делать фотографию с использованием веб-камеры компьютера. Захваченные изображения отправляются непосредственно злоумышленнику через канал C2 Telegram.
Рекламная функция через "/text" и изображения работает следующим образом: если злоумышленник отправляет текстовое сообщение боту, вредоносная программа сначала проверяет, является ли текст URL-адресом. Если это так, URL-адрес автоматически открывается в браузере жертвы по умолчанию. Если это не URL-адрес, текст отображается на экране жертвы во всплывающем окне сообщения. Это может использоваться для показа вредоносной рекламы и фишинговых страниц. Если злоумышленник отправляет файл изображения боту, вредоносная программа загружает изображение, сохраняет его во временный файл на машине жертвы и открывает его с помощью средства просмотра изображений по умолчанию. Это может использоваться для показа шокирующего или отвлекающего контента, поддельных счетов или обманных инструкций.
Из этого анализа можно сделать вывод, что использование имени известного клиента Minecraft в его установке и артефактах постоянства является явной тактикой социальной инженерии, предназначенной для введения в заблуждение жертв, specifically геймеров. Зависимость этого нового Python-RAT от API Telegram для коммуникаций C2 позволяет субъектам угроз скрываться в мессенджере, ориентированном на конфиденциальность. Для предприятий эта угроза подчеркивает важность наличия глубокой видимости всего сетевого трафика, включая зашифрованные каналы. Мониторинг необычных вызовов API к легальным сервисам, таким как Telegram, также имеет решающее значение для обнаружения скрытых коммуникаций C2, которые в противном случае могут остаться незамеченными.
Дизайн вредоносной программы предполагает модель распространения Malware-as-a-Service (MaaS), а жестко запрограммированный идентификатор Telegram ALLOWED_USERS действует как простой механизм лицензирования. Автор вредоносной программы может легко изменить этот единственный идентификатор для каждого покупателя, перекомпилировать исполняемый файл и продать персонализированную копию, которой может управлять только покупатель. Эта модель в сочетании с подписью "by fifetka" и приманкой, ориентированной на геймеров, указывает на операцию, привлекающую других субъектов угроз низкого уровня, а не на одного злоумышленника, ведущего собственную кампанию.
Индикаторы компрометации
MD5
- c83807398d2ba1b05249b6424c6ac0b3
SHA1
- 6bfa35ee91f72bae2af0b2ab3559727218317b79
SHA256
- 847ef096af4226f657cdd5c8b9c9e2c924d0dbab24bb9804d4b3afaf2ddf5a61
Telegram Bot token
- 8362039368:AAGj_jyw6oYftV2QQYiYoUslJOmXq6bsAYs
Registry key
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\NursultanClient