Новий Вірус VVS Stealer націлився на акаунти Discord через обфусцированный код Python
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
VVS Stealer – це новий інформаційний крадій, написаний на Python, який продається в Telegram. Він обфусцьований за допомогою Pyarmor, упакований з PyInstaller і зберігається за допомогою папки автозавантаження Windows. Шкідливе програмне забезпечення збирає токени Discord, облікові дані браузера, куки, історію, паролі і скріншоти. Воно також може впроваджувати шкідливий JavaScript-код, щоб захопити активні сесії Discord.
Розслідування
Unit 42 з Palo Alto Networks розкрило це шкідливе програмне забезпечення, зазначивши, що воно пропонується на продаж з квітня 2025 року. Дослідники описали техніку обфускації, модель поширення і функціональність, включаючи крадіжку облікових даних та ін’єкцію в Discord. Звіт пов’язує інструмент з франкомовними зловмисниками, активними в Telegram-групах, що сконцентровані на крадіжках.
Захист
Організації повинні контролювати невідомі виконувані файли PyInstaller і неочікувані ярлики в папці автозавантаження. Запровадьте правила виявлення для обфускованих Python скриптів і підозрілих JavaScript навантажень. Застосуйте багато-факторну автентифікацію для облікових записів Discord і браузера і обмежте адміністративні привілеї, які можуть бути використані для збору облікових даних.
Реакція
Якщо виявлено VVS Stealer, ізолюйте уражену кінцеву точку, зберіть пам’ять та артефакти файлів і вилучте IOCs. Видаліть шкідливий запис автозавантаження, завершите будь-які ін’єктовані процеси Discord, і невідкладно змініть паролі для скомпрометованих облікових записів. Проведіть повне судово-експертне дослідження, щоб знайти додаткові вкрадені облікові дані і забезпечити блокування віддаленої C2 інфраструктури.
Потік атаки
Виявлення
Файл Python, створений в незвичайній директорії (через file_event)
Переглянути
Можливе зловживання Discord як C2 каналу (через dns_query)
Переглянути
Можливе зловживання Discord як C2 каналу (через проксі)
Переглянути
Підозрілі бінарні файли/скрипти в місцях автозавантаження (через file_event)
Переглянути
Можливе використання PyInstaller (через file_event)
Переглянути
Пакет PyInstaller VVS Stealer і завершення Discord [Створення процесу в Windows]
Переглянути
Виконання Симуляції
Передумова: перевірка наявності телеметрії та базового рівня повинна бути пройдена.
Обґрунтування: цей розділ деталізує точне виконання техніки суперника (TTP), розроблене для активації правила виявлення. Команди та оповідання МАЮТЬ безпосередньо відповідати ідентифікованим TTPs та прагнути генерувати точну телеметрію, очікувану логікою виявлення. Абстрактні або не пов’язані приклади призведуть до неправильного діагнозу.
-
Атака та команди розповіді:
Оппонент скомпрометував обліковий запис з низькими привілеями на робочій станції Windows. Використовуючи PowerShell-дроппер, вони запускають шкідливе виконуване у файлі, упаковане з PyInstaller (VVS_Stealer.exe), яке спочатку породжує процес з командним рядком, що містить рядок “PyInstaller”. Навантаження потім насильно завершує активний клієнт Discord, щоб підготувати сцену до ін’єкції крадіжки токенів. Всі дії відбуваються у контексті поточного користувача, генеруючи єдину Створення процесу подію, яка відповідає критеріям правила.Крок за кроком:
- Скопіюйте шкідливий пакет PyInstaller в
%TEMP%. - Виконайте його з командним рядком, який явно містить слово “PyInstaller”.
- Шкідливий бінарний файл внутрішньо викликає
taskkill /IM Discord.exe /Fщоб завершити Discord. - Завершення генерує Створення процесу подію, де
Imageполе вирішує шлях виконуваного файлу Discord (C:Users<user>AppDataLocalDiscordapp-... Discord.exe) та оригінальна команда запуску все ще містять “PyInstaller”.
- Скопіюйте шкідливий пакет PyInstaller в
-
Скрипт регресійного тесту: Наступний PowerShell-скрипт відтворює точну телеметрію, необхідну для запуску правила виявлення. Він навмисно уникає будь-яких реальних шкідливих навантажень; замість цього, він запускає безпечний
notepad.exeпроцес, але удає себе виконуваним файлом, упакованим з PyInstaller, шляхом вбудовування ключового слова в командний рядок. Він також завершує будь-який запущений процес Discord, щоб відобразити умову “Image endswith Discord.exe”.# ------------------------------------------------- # Скрипт симуляції – активує правило Sigma #f63685c4‑feea‑431b‑a749‑55cf8661e6ac # ------------------------------------------------- # 1. Переконайтеся, що Discord працює (необов'язково, щоб забезпечити завершення) $discordPath = "$env:LOCALAPPDATADiscordapp-1.0.9005Discord.exe" if (-Not (Get-Process -Name "Discord" -ErrorAction SilentlyContinue)) { Start-Process -FilePath $discordPath -WindowStyle Hidden Start-Sleep -Seconds 5 } # 2. Запустіть тупиковий процес з "PyInstaller" у його командному рядку. # Використовуючи notepad.exe як нешкідливий заповнювач. $dummyCmd = "C:WindowsSystem32notepad.exe" $cmdLine = "PyInstaller_dummy_execution -run $dummyCmd" Start-Process -FilePath $dummyCmd -ArgumentList $cmdLine -WindowStyle Hidden Write-Host "[+] Запущено тупиковий процес з ключовим словом PyInstaller." # 3. Негайно завершити Discord, щоб згенерувати подію образу Discord.exe. if (Get-Process -Name "Discord" -ErrorAction SilentlyContinue) { Stop-Process -Name "Discord" -Force Write-Host "[+] Discord.exe завершено." } # 4. Опціонально: після короткої затримки закрити вікно з блокнотом. Start-Sleep -Seconds 8 Get-Process -Name "notepad" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[+] Очищення завершено." -
Команди очищення: Переконайтеся, що не залишилося залишкових процесів.
# Видаліть будь-які залишкові процеси з блокнотом Get-Process -Name "notepad" -ErrorAction SilentlyContinue | Stop-Process -Force # Перезапустіть Discord, якщо це необхідно для подальшої роботи тесту $discordPath = "$env:LOCALAPPDATADiscordapp-1.0.9005Discord.exe" if (-Not (Get-Process -Name "Discord" -ErrorAction SilentlyContinue)) { Start-Process -FilePath $discordPath Write-Host "[+] Discord перезапущено для нормальної роботи." }