Таблица Содержание:
- Введение
- Первоначальные результаты.
- Цепочка заражения.
- Технический анализ.
- Первоначальное заражение – вредоносный документ.
- Второй этап – вредоносный исполняемый файл PyInstaller.
- Финальная стадия – вредоносные скрипты Python.
- Возможности Discord-бота.
- Особенности программ-вымогателей.
- Заключение
- Seqrite Защита.
- МНК
- MITRE ATT&CK.
- Авторы
Введение
Seqrite Лаборатория APT-Team недавно обнаружила несколько кампаний, связанных с поддельными описаниями вакансий в Food Corporations of India (FCI). Цель этих кампаний – люди, претендующие на различные технические должности в FCI, с использованием варианта программы-вымогателя, известного как Xelera. В данном случае, вредоносных программ написан на Python и упакован с помощью PyInstaller, который выполняется на целевой машине.
В этой статье мы рассмотрим технические детали кампании, с которой мы столкнулись в ходе телеметрического анализа. Мы рассмотрим различные этапы этой кампании, начиная с первоначального вредоносного документа и его содержимого, затем извлечём и проанализируем вредоносный PyInstaller и извлечённые вредоносные скрипты Python, а затем рассмотрим сам файл вредоносного вируса-вымогателя.
Первоначальные результаты
Недавно, 18 января 2025 года, наша команда обнаружила вредоносный документ, который появился на VirusTotal . В зависимости от правил поиска, которые мы используем для обнаружения файлов документов, содержащих вредоносное встроенное содержимое внутри OLE-потоков, это зависит от используемых нами правил поиска.
В ходе первоначального анализа мы обнаружили, что вредоносная приманка, известная как FCEI-job-notification.doc, была нацелена на соискателей вакансий, претендующих на различные должности, такие как инженеры и другие технические и полутехнические должности. После извлечения вредоносной нагрузки из одного из потоков OLE мы обнаружили, что она представляет собой исполняемый файл на базе PyInstaller, известный как jobnotification2025.exe. Он содержит вредоносные скрипты Python, запускающие программы-вымогатели и другие непреднамеренные задачи на целевой машине с помощью Discord-бота, управляемого автором программы-вымогателя.
PyInstaller является одним из любимых инструментов разработчиков вредоносного ПО, которые предпочитают использовать скрипты Python в качестве одного из своих вариантов. Ранее HolyCrypt и другие известные блокировщики и похитители данных использовали PyInstaller для развертывания вредоносного ПО в дикой природе.
Цепочка заражения

Технический анализ
Мы разделим анализ на три части.
Первоначальное заражение – вредоносный документ.
Первоначальное заражение вызвано вредоносным текстовым документом, который распространяется через фишинговое вложение. Прежде чем углубляться в вредоносные OLE-потоки документа, давайте рассмотрим саму приманку.

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

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

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

Проанализировав вредоносный документ, мы обнаружили, что он содержит встроенный OLE-объект (Ole10Native), расположенный внутри структуры ObjectPool и имеющий размер 31.5 МБ.
![]()
После извлечения встроенного содержимого из вредоносного потока OLE и загрузки файла в инструмент анализа мы выяснили, что это двоичный файл PE64, который по сути является сжатым двоичным файлом PyInstaller.

Второй этап – вредоносный исполняемый файл PyInstaller
После извлечения содержимого исполняемого файла с помощью pyinstxtractor мы обнаружили интересные файлы и папки, содержащие скомпилированные на Python файлы, такие как mainscript.pyc — скомпилированный скрипт на Python, который служит основной логикой вредоносного файла.

Также присутствовали вспомогательные каталоги и библиотеки, такие как psutil, aiohttp и asyncio, что предполагало возможности для мониторинга системы и асинхронных сетевых операций, обычно используемых вредоносными программами для сбора данных или связи команд и управления (C2).

Мы также обнаружили несколько интересных папок, содержащих скомпилированные файлы Python, такие как notoken887 и command, а также многие другие, что даёт нам основания полагать, что кампания связана не только с развертыванием программы-вымогателя XELERA, но и со многими другими аспектами. В следующем разделе мы проанализируем декомпилированные файлы Python.

Финальный этап – вредоносные скрипты Python
После декомпиляции файла main.pyc мы обнаружили, что он импортирует множество интересных библиотек, таких как notoken887 , start , command и многие другие. Тщательный анализ показал, что злоумышленник, по сути, использует Discord в качестве командного пункта для выполнения удалённых команд и, в конечном итоге, запускает программу-вымогатель XELERA.

Возможности Discord-бота
Теперь давайте рассмотрим некоторые интересные команды, которые Discord-бот может выполнить на целевой машине, а также работу программы-вымогателя.

Как только жертва подвергнется воздействию вредоносного документа, злоумышленник использует Discord-бот для выполнения определенных гнусных задач, таких как кража учетных данных браузера, рассылка жертве спама с определенными уничижительными сообщениями и многое другое.
Повышение привилегий и контроль системы
- Запрос на выполнение администратором: Бот включает команду (admin), которая проверяет, запущен ли процесс бота от имени администратора, используя API IsUserAdmin, и если это не так, он использует API ShellExecuteW с формой runas для выполнения операции.

- Управление блокировкой и выключением: Бот может заблокировать систему (🔒 lockpc) или принудительно завершить работу/перезапустить ее (📤 shutdown, 🔄 restartpc), создавая неудобства на целевой машине.


Учетные данные браузера и кража файлов
- Кража файлов: Discord-бот может извлекать файлы с целевого компьютера.

- Кража учетных данных браузера: Бот Discord может красть с целевого компьютера конфиденциальную информацию, такую как файлы cookie, имена пользователей и пароли из различных браузеров, таких как Google Chrome, Microsoft Edge и многое другое.


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



- Сенсорные нарушения: Злоумышленник создает сенсорные помехи, блокируя ввод с мыши и воспроизведение звука на целевом компьютере, что приводит к возникновению проблем на целевом компьютере.

Список команд
| Command | Цель | |
| 1 | 🔧 администратор | Попросите запустить вредоносное ПО от имени администратора. |
| 2 | 🚫 nomouse (старт/стоп) | Запретить пользователю использовать мышь и клавиатуру |
| 3 | контрольный файл | Проверьте наличие определенного файла и при необходимости удалите его. |
| 4 | BSOD | Вызвать синий экран смерти (BSOD) |
| 5 | 🌊 размытие | Применить экстремальный эффект размытия GDI |
| 6 | 🔥 таять | Создайте эффект расплавленного экрана |
| 7 | 🌎 проведите пальцем по экрану | Проведите пальцем по экрану и согните его. |
| 8 | ⚡ припадок | Вспышка экрана, вызывающая припадки |
| 9 | 🌪 торнадо | Создайте эффект торнадо на экране |
| 10 | 👴 отбеливать | Забелить экран |
| 11 | 🚫 блок-экран | Отобразить изображение Гитлера как блок экрана |
| 12 | 🥏 ультраприступ | Более интенсивная версия приступа, с аргументами «старт/стоп» |
| 13 | 📂 дерево | Получить дерево файлов из системы жертвы |
| 14 | 📤 поделиться | Загрузить и запустить файл на компьютере жертвы |
| 15 | 🔗 поделиться ссылкой | Загрузите и запустите файл с URL-адресом на компьютере жертвы. |
| 16 | 📊 лп | Список активных процессов |
| 17 | 🔨 кп | Завершить определенный процесс |
| 18 | 📂 получить файлы | Украсть файлы из системы жертвы |
| 19 | 📁 компакт-диск | Навигация по файловой системе жертвы |
| 20 | 📸 сс | Сделать снимок экрана |
| 21 | 📷 вебкемп | Сделайте снимок с веб-камеры жертвы |
| 22 | 📥 thugfiles | Переименовать и повредить все файлы в папке «Загрузки/Документы» навсегда |
| 23 | 🌍 openurl | Откройте веб-сайт в браузере жертвы |
| 24 | 🔎 поиск | Выполните поиск в Интернете |
| 25 | 🔐 getpwds | Извлечь сохраненные пароли из Microsoft Edge |
| 26 | 📜 получить историю браузера | Извлечь историю браузера из системы жертвы |
| 27 | 😂 ккк | Отображать мемы, связанные с Ку-клукс-кланом, на экране жертвы |
| 28 | 🔔 spamnotify | Отправлять повторные уведомления о спаме |
| 29 | 🔊 усиление басов | Увеличьте громкость до 100% |
| 30 | 😈 fuckbrowser | Повреждение Chrome, если он установлен на компьютере жертвы |
| 31 | 🛑 свастика | Установить вращающуюся свастику в качестве обоев (старт/стоп) |
| 32 | 🤯 ядерный ПК | Осуществить серьезную атаку на ПК жертвы |
| 33 | 🔄 перезагрузите ПК | Перезагрузите компьютер жертвы. |
| 34 | 📤 выключение | Выключите компьютер жертвы. |
| 35 | ❌ близко | Закройте приложение thugware |
| 36 | 🧹 чистый | Удалить все каналы Discord, кроме текущего |
| 37 | ❌ ошибкиспамз | Забавные спам-сообщения об ошибках |
| 38 | 🌐 ip | Получить IP-адрес жертвы |
| 39 | 🎵 играет звук | Воспроизвести фоновый звук из загруженного файла |
| 40 | 💻 системная информация | Извлечь системную информацию |
| 41 | 🖼 обои | Изменить обои рабочего стола жертвы |
| 42 | ℹ помощь | Показывать справочное сообщение по всем командам |
| 43 | 🔄 перезагрузка | Перезапустите бота thugware |
| 44 | 🔒 блокировка ПК | Блокировка ПК жертвы (принудительный вход в систему) |
Особенности программ-вымогателей.
Наряду со вредоносным ПО, использующим Discord, злоумышленник также применяет программу-вымогатель XELERA . Рассматривая функцию предупреждения, мы видим, что всего существует 6 важных функций, связанных с различными задачами, касающимися программ-вымогателей.

Видно сообщение о программе-вымогателе с адресом Litecoin для отправки суммы выкупа. Давайте рассмотрим другие функции.

Рассмотрим первую функцию: функция kill_explorer в непрерывном цикле перебирает запущенные процессы , проверяя наличие memz.exe. Если memz.exe не найден , она ищет explorer.exe и пытается его завершить . Этот цикл повторяется бесконечно, гарантируя, что проводник Windows не будет запущен, если memz.exe не активен.

С другой стороны, файл create_memz_in_startup, на который ссылается эта программа-вымогатель, по сути загружает исполняемый файл, основанный на повреждении MBR.

Теперь, прежде чем рассматривать следующие функции, давайте рассмотрим работу инструмента повреждения MBR, который можно загрузить как MEMZ.exe здесь.

Вредоносная программа MEMZ.exe начинает свою работу с анализа аргументов командной строки для определения режима своей деятельности. Если присутствует аргумент /watchdog, она активирует режим «сторожевого таймера», который создает поток мониторинга и регистрирует скрытое окно. Это гарантирует, что вредоносная программа будет продолжать работать и не сможет быть завершена, используя цикл обработки сообщений Windows.

В этой части MBR происходит перезапись основной загрузочной записи (MBR) диска, что делает систему незагружаемой. Вредоносная программа открывает \\.\PhysicalDrive0 для получения прямого доступа к основному диску и выделяет буфер размером 64 КБ для подготовки вредоносной нагрузки.

Затем вредоносный код MBR создаёт текстовый файл note.txt с насмешливым сообщением. Этот файл содержит текст, информирующий пользователя о заражении его системы трояном MEMZ. В сообщении также содержится предостережение от попыток остановить вредоносную программу, утверждая, что это приведёт к немедленному уничтожению системы.
Теперь, когда мы закончили изучать вредоносное ПО MBR Corruption, перейдем к рассмотрению другого набора функций.
Рассматривая вторую функцию, change_wallpaper по сути меняет обои рабочего стола на изображение замка.

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

Пятая функция предназначена для запуска вредоносного ПО, основанного на повреждении MBR. Сначала она просматривает папку автозагрузки Windows и, если вредоносное ПО обнаружено, запускает его. Шестая функция загружает обои и меняет текущий рабочий стол на загруженный. Затем она использует функцию преобразования текста в речь (TTS) в бесконечном цикле для воспроизведения аудиосообщения.


После запуска программы-вымогателя на экране появляется следующее сообщение. Далее, проверив адрес упомянутого криптовалютного кошелька, мы видим, что с использованием этого адреса было совершено в общей сложности 16 транзакций.

Заключение
Обнаружен вирус-вымогатель XELERA, написанный на Python. В настоящее время это совершенно новая операция, включающая кражу данных и учетных данных, а также внедрение программы-вымогателя, которая в настоящее время не использует криптографические методы шифрования. Программа активно распространяется, и в настоящее время описанный выше метод является основным для внедрения программы-вымогателя на различные целевые устройства.
Seqrite Protection
- OLE.Ransom.49280.GC
- Ransom.Xelera
МНК
| Имя файла | SHA-256 |
| FCEI-job-notification.doc | ff06ce3fd6fe994aeaa0edc5162989d08f34440e9cacbc9e49e5db8ef98a74e3 |
| mainscript.exe (jobnotification2025.exe) | 519401c998fe5d6eb143415f7c17ad5f8e5ef5ebae57ac91e9fa89a0bfcf0c7f |
| URL |
| hxxps[:]//github[.]com/Sam-cpu999/stuff/raw/main/MEMZ[.]exe |
| hxxps[:]//th[.]bing[.]com/th/id/OIP.nQu9CQ9gM84Pblh6AgykIgHaHa?rs=1&pid=ImgDetMain |
| hxxps[:]//pghnetworks[.]com/wp-content/uploads/2018/06/Blog-pic[.]jpg |
| hxxps[:]//thugging[.]org/static/kkk[.]png |
| hxxps[:]//thugging[.]org/static/3[.]mp4 |
| hxxps[.]//chochox[.]com/wp-content/uploads/2016/10/Geto 29[.]jpg |
LTC Address: LaHL1jGMk2VUgn6c4QtFVLi7BjycWrQorB
MITRE ATT & CK
| тактика | Идентификатор техники | Имя |
| Первоначальный доступ | T1566.001 | Фишинг: Вложение для целевого фишинга.
|
| Типы | T1204.002
T1059.006 |
Пользовательское исполнение: вредоносный файл.
Python. |
| Настойчивость | T1547.001 | Ключи запуска реестра / Папка автозагрузки. |
| Уклонение от защиты | T1562.001 | Ослабьте защиту: отключите или измените инструменты. |
| Доступ к учетным данным | T1555.003 | Учетные данные из веб-браузера. |
| Дискавери | T1033
T1217
T1010
T1083
T1016 |
Обнаружение владельца/пользователя системы.
Обнаружение информации о браузере.
Обнаружение окна приложения.
Обнаружение файлов и каталогов.
Обнаружение конфигурации системной сети. |
| | T1560.002
T1056.001 T1113
|
Архив через библиотеку.
Кейлоггерство. Screen Capture.
|
| Управление и контроль | T1102.002 | Двусторонняя связь. |
| Влияние | T1531
T1486 T1657 T1491.001 T1561.001 T1489 T1529
|
Удаление доступа к учетной записи.
Данные зашифрованы для достижения максимального эффекта. Финансовое воровство. Внутреннее Порча. Очистка содержимого диска. Остановка обслуживания. Выключение/перезагрузка системы.
|
Авторы
- Субхаджит Сингха
- Картикумар Ишварбхай Дживани




