Шкідливе програмне забезпечення VOID#GEIST
Дослідники з кібербезпеки виявили складну багатоетапну кампанію шкідливого програмного забезпечення, яка використовує пакетні скрипти для доставки зашифрованих корисних навантажень трояна віддаленого доступу (RAT). Кампанія, ідентифікована як VOID#GEIST, використовує кілька сімейств RAT, включаючи XWorm, AsyncRAT та Xeno RAT.
Ланцюг атаки використовує завуальований пакетний скрипт, який ініціює послідовність дій, призначених для уникнення виявлення. Ці дії включають запуск додаткового пакетного скрипта, розміщення легітимного вбудованого середовища виконання Python та розшифрування зашифрованих корисних даних шелл-коду. Шелл-код виконується безпосередньо в пам'яті після введення в окремі екземпляри процесу Windows explorer.exe за допомогою техніки, відомої як ін'єкція асинхронного виклику процедур раннього птаха (APC).
Зміст
Доставка шкідливого програмного забезпечення за допомогою скриптів: сучасна модель загрози
Сучасні зловмисники все частіше відмовляються від традиційних автономних виконуваних програм на користь багаторівневих фреймворків доставки на основі скриптів, які імітують легітимну поведінку користувачів. Замість розгортання звичайних переносних виконуваних файлів (PE), зловмисники організовують багатокомпонентні конвеєри, що поєднують кілька легітимних технологій та середовищ сценаріїв.
Типові компоненти, що використовуються в цих рамках, включають:
- Пакетні скрипти, що використовуються для оркестрування послідовності зараження.
- Команди PowerShell, що сприяють прихованому розміщенню корисного навантаження.
- Вбудовані легітимні середовища виконання, що забезпечують портативність між системами.
- Необроблений шеллкод виконується безпосередньо в пам'яті для підтримки збереження персистенції та контролю.
Такий підхід до виконання без файлів значно зменшує можливості виявлення на основі диска. Кожен окремий етап виглядає відносно нешкідливим при окремому розгляді та часто нагадує рутинну адміністративну діяльність, що дозволяє зловмисникам діяти в скомпрометованих середовищах, не викликаючи негайних сповіщень безпеки.
Початковий доступ через фішинг та інфраструктуру Cloudflare
Точка входу атаки починається зі шкідливого пакетного скрипта, що доставляється через фішингові електронні листи. Скрипт отримується з інфраструктури, розміщеної на домені TryCloudflare. Після виконання скрипт навмисно уникає спроб ескалації привілеїв і натомість працює виключно в межах дозволів поточного користувача, який увійшов у систему.
Ця стратегія дозволяє шкідливому програмному забезпеченню закріпитися, одночасно інтегруючись у рутинні операції на рівні користувача. Уникаючи дій, що вимагають підвищених прав, атака зменшує ймовірність спрацьовування попереджень безпеки або адміністративних запитів.
Візуальна відволікаюча увага та методи прихованого виконання
Після виконання, перший етап шкідливого програмного забезпечення запускає документ-приманку, щоб відволікти жертву. Google Chrome відкривається в повноекранному режимі для відображення фінансового документа або рахунку-фактури у форматі PDF. Поки користувач зосереджений на документі, шкідлива діяльність продовжується у фоновому режимі.
Одночасно виконується команда PowerShell для перезапуску оригінального пакетного скрипта з прихованими параметрами виконання. Використання параметра -WindowStyle Hidden запобігає появі видимого вікна консолі, гарантуючи, що шкідлива активність залишається прихованою від користувача.
Збереження завдяки запуску на рівні користувача
Щоб забезпечити безперебійну роботу після перезавантаження системи, шкідливе програмне забезпечення розгортає допоміжний пакетний скрипт у каталозі автозавантаження користувача Windows. Це розташування гарантує, що скрипт автоматично виконуватиметься щоразу, коли жертва входить у систему.
Цей механізм збереження даних навмисно є малопомітним. Замість використання більш нав'язливих методів, таких як зміна розділів системного реєстру, створення запланованих завдань або встановлення служб, шкідливе програмне забезпечення покладається виключно на стандартну поведінку запуску на рівні користувача. Оскільки цей підхід працює повністю в контексті привілеїв поточного користувача, він уникає запуску запитів на підвищення привілеїв та зменшує ймовірність виявлення інструментами моніторингу реєстру.
Система отримання та дешифрування корисного навантаження
На наступному етапі ланцюжка зараження шкідливе програмне забезпечення зв'язується з доменом TryCloudflare, щоб отримати додаткові компоненти корисного навантаження, упаковані в ZIP-архіви. Ці архіви містять модулі, необхідні для розшифрування та виконання кінцевих корисних даних шкідливого програмного забезпечення.
Завантажений архів зазвичай містить такі компоненти:
- runn.py – завантажувач на основі Python, що відповідає за розшифрування та введення зашифрованих модулів шелл-коду в пам'ять
- new.bin – зашифроване корисне навантаження шелл-коду, пов'язане з XWorm
- xn.bin – зашифроване корисне навантаження шелл-коду, що відповідає Xeno RAT
- pul.bin – зашифроване корисне навантаження шелл-коду, що відповідає AsyncRAT
- a.json, n.json та p.json – ключові файли, що використовуються завантажувачем Python для динамічного розшифрування корисних даних шелл-коду під час виконання.
Така модульна конструкція дозволяє зловмисникам незалежно розміщувати різні корисні навантаження та активувати їх лише за потреби.
Вбудоване середовище виконання Python для портативності та прихованості
Після розпакування архіву шкідливе програмне забезпечення розгортає легітимне вбудоване середовище виконання Python, отримане безпосередньо з python.org. Вбудовування легітимного інтерпретатора усуває залежність від будь-якої інсталяції Python, яка може вже існувати на скомпрометованій системі.
З точки зору зловмисника, цей крок надає кілька стратегічних переваг. Шкідливе програмне забезпечення стає автономним середовищем виконання, здатним розшифровувати та вводити корисні навантаження без необхідності зовнішніх залежностей. Це покращує переносимість між різними системами, підвищує надійність та сприяє операційній прихованості завдяки використанню легітимних програмних компонентів.
Виконання кількох корисних навантажень RAT у пам'яті
Потім вбудоване середовище виконання Python використовується для виконання скрипта завантажувача runn.py. Завантажувач розшифровує шелл-код, пов'язаний з XWorm, та вставляє його в запущений екземпляр explorer.exe за допомогою APC-ін'єкції Early Bird.
Для розгортання Xeno RAT шкідливе програмне забезпечення використовує легітимний бінарний файл Microsoft під назвою AppInstallerPythonRedirector.exe, який використовується для виклику Python та виконання необхідних компонентів. Той самий метод ін'єкції згодом повторно використовується для розгортання AsyncRAT, що гарантує, що всі корисні навантаження виконуються повністю в пам'яті, не залишаючи традиційних виконуваних артефактів на диску.
Командно-контрольні маячки та модульна архітектура
Заключний етап атаки включає надсилання мінімального HTTP-маяка до контрольованої зловмисником інфраструктури командування та управління (C2), розміщеної на TryCloudflare. Цей маяк підтверджує, що систему успішно скомпрометовано та вона готова до отримання подальших інструкцій.
Хоча конкретні цілі кампанії залишаються невідомими, ланцюг зараження демонструє високомодульну архітектуру. Замість розгортання одного великого набору шкідливого програмного забезпечення, зловмисники впроваджують компоненти поступово на кількох етапах. Така конструкція підвищує операційну гнучкість та стійкість.
З точки зору виявлення, протягом усієї кампанії проявляється один помітний поведінковий показник: повторюване впровадження процесу в explorer.exe протягом коротких інтервалів часу. Ця закономірність може служити сильним сигналом для захисників, які намагаються співвіднести підозрілу активність на різних етапах життєвого циклу атаки.