Сучасні кібератаки дедалі рідше виглядають як прямий злам. Натомість вони маскуються під звичайні листи, файли чи робочі процеси й непомітно запускають ланцюг подій, який важко виявити одразу. У цьому матеріалі розбирається нова хвиля загроз, пов’язаних із сервісною моделлю поширення шкідливого ПЗ, що вже використовується проти українських організацій. Стаття допомагає зрозуміти загальну логіку таких атак, чому вони стають масовими та на що варто звертати увагу бізнесу й фахівцям з безпеки.
У квітні 2025 року було зафіксовано діяльність Malware-as-a-Service (MaaS)-операції, у межах якої для доставки шкідливих компонентів використовувався Amadey. Оператори цієї схеми застосовували підроблені облікові записи на GitHub для розміщення payload’ів, інструментів і плагінів Amadey. Імовірно, це робилося для обходу вебфільтрації та спрощення розповсюдження шкідливого ПЗ.
Частина тактик, технік і процедур цієї операції перетинається з фішинговою кампанією SmokeLoader, виявленою на початку 2025 року, яка була спрямована проти українських організацій. У межах MaaS-схеми використовувався той самий варіант завантажувача Emmenhtal, що й у кампанії зі SmokeLoader, – саме через нього завантажувалися Amadey та інші інструменти.
На початку лютого 2025 року було помічено серію фішингових листів на теми рахунків та оплат, які, ймовірно, були націлені на українські організації. Листи містили стиснуті вкладення (ZIP, 7Zip або RAR) з щонайменше одним JavaScript-файлом. Цей файл був багатошарово обфускований і приховував PowerShell-завантажувач. Після запуску JavaScript і PowerShell-скриптів на системі жертви завантажувався та запускався SmokeLoader. Використані JavaScript-завантажувачі були ідентифіковані як Emmenhtal через характерні методи обфускації, схожі на раніше описані іншими дослідниками.
Під час аналізу Emmenhtal-зразків, отриманих у межах цієї фішингової кампанії, було знайдено інші дуже схожі за структурою зразки на VirusTotal, які, однак, не належали до початкового кластера активності. Ключова відмінність полягала в тому, що ці файли поширювалися не через електронну пошту, а були розміщені в публічних репозиторіях GitHub. Крім того, замість SmokeLoader вони використовувалися для доставки Amadey, який уже далі завантажував різні кастомні payload’и з окремих відкритих GitHub-репозиторіїв.
Подальший аналіз пов’язаних GitHub-акаунтів і файлів у відповідних репозиторіях показав, що вони можуть бути частиною більш масштабної MaaS-операції. У цій схемі публічні репозиторії GitHub фактично використовуються як відкриті каталоги для зберігання та розповсюдження кастомних шкідливих компонентів.
Malware-as-a-Service (MaaS) – це бізнес-модель, за якої оператори продають доступ до шкідливого ПЗ або вже готової інфраструктури. У цій операції для завантаження різних сімейств malware на заражені системи використовувався Amadey, а самі payload’и розміщувалися у підроблених публічних репозиторіях GitHub. Перші ознаки такої активності з’явилися у лютому 2025 року – приблизно в той самий період, що й кампанія зі SmokeLoader.
Те, що з однієї й тієї ж інфраструктури поширюється одразу кілька різних типів шкідливого ПЗ, вказує на сервісний характер операції. Це означає, що оператори Amadey, ймовірно, доставляють payload’и не лише для себе, а й для інших осіб або груп. Додатково на це натякає й те, що інфраструктури керування (C2) для другорядних payload’ів не перетинаються з C2 самого Amadey, що свідчить про участь кількох незалежних замовників у межах однієї MaaS-схеми.
Emmenhtal це багатоступеневий завантажувач, про який раніше повідомляли різні дослідницькі команди. Назву Emmenhtal він отримав у серпні 2024 року, хоча іноді його також називають PEAKLIGHT. Так зазвичай позначають фінальну стадію PowerShell-завантажувача. Активність, пов’язана з окремими елементами цього loader’а, простежується щонайменше з квітня 2024 року.
Різні варіанти Emmenhtal знаходили як вбудованими в інші файли, так і у вигляді окремих самостійних зразків. Типова структура такого завантажувача складається з чотирьох рівнів. Три з них виконують роль обфускації та приховують справжнє призначення коду, а фінальний рівень являє собою PowerShell-скрипт, який відповідає за подальше завантаження шкідливого ПЗ.
Amadey, також відомий як Amadey bot, з’явився наприкінці 2018 року на російськомовних хакерських форумах і продавався приблизно за 500 доларів. Спочатку його використовували для створення ботнетів, але з часом він перетворився на універсальний інструмент доставки інших типів malware. Зокрема, за його допомогою поширювалися RedLine, Lumma, StealC та SmokeLoader.
Основні завдання Amadey це збір інформації про заражену систему та завантаження другорядних payload’ів. Водночас цей malware має модульну архітектуру, яка дозволяє розширювати його можливості за допомогою плагінів. Такі плагіни реалізовані у вигляді DLL-файлів і можуть додавати додаткові функції, наприклад створення скріншотів або викрадення облікових даних. Саме через цю гнучкість і широкий функціонал Amadey залишається серйозною загрозою, навіть якщо на перший погляд виглядає лише як завантажувач.
Під час дослідження MaaS-операції було виявлено три облікові записи GitHub, які використовувалися як відкриті каталоги для зберігання інструментів, другорядних payload’ів і плагінів Amadey:
Legendary99999
DFfe9ewf
Milidmdds
Окрім зручності для зберігання файлів, завантаження з репозиторіїв GitHub часто дозволяє обходити вебфільтрацію, якщо в організації не налаштовано блокування домену GitHub. Частина компаній дійсно обмежує доступ до GitHub, щоб зменшити ризики використання offensive-інструментів з відкритого коду або поширення malware. Проте для багатьох організацій, особливо з командами розробників, доступ до GitHub є необхідним. У такому середовищі шкідливе завантаження з GitHub може виглядати як звичайний легітимний вебтрафік і не викликати підозр.
Виявлені облікові записи були передані адміністрації GitHub, після чого їх оперативно видалили. Це фактично припинило використання цих репозиторіїв у межах описаної схеми.
Акаунт Legendary99999 використовувався найактивніше. У ньому знаходилося понад 160 репозиторіїв із випадковими назвами. Кожен із цих репозиторіїв містив лише один файл, розміщений у розділі Releases, що вказує на цілеспрямоване використання GitHub як простого сховища для розповсюдження шкідливих компонентів.

Файли, розміщені в обліковому записі Legendary99999, являють собою добірку payload’ів з різних сімейств шкідливого ПЗ. Завдяки розміщенню цих файлів у репозиторіях GitHub їх можна було без зайвих труднощів завантажувати напряму за URL-адресами з розділу Releases відповідних репозиторіїв.
https://github.com/[account_name]/[repository_name]/releases/download/[release_name]/[file_name]
Після зараження системи Amadey оператори цього сервісу могли обирати, який саме payload буде доставлено далі. Для цього їм було достатньо просто завантажити потрібний файл за відповідним URL.
Також було виявлено інші облікові записи GitHub, які, ймовірно, пов’язані з цим оператором. На це вказують схожі назви акаунтів, імена файлів, структура репозиторіїв і тип розміщеного шкідливого ПЗ, зокрема інфостілери, що доставлялися через Amadey. Найраніша дата появи пов’язаних із цими репозиторіями файлів у VirusTotal зафіксована 3 січня 2025 року. На момент аналізу жоден із цих облікових записів уже не був активним.
Обліковий запис DFfe9ewf, ймовірно, використовувався як тестовий. Усі репозиторії мали слово test у назві, а нові коміти не з’являлися з лютого 2025 року. Це той самий місяць, коли був зроблений перший коміт в акаунті Legendary99999, що вказує на паралельне використання обох облікових записів на початковому етапі діяльності.

Попри те що цей обліковий запис GitHub не має прямих схожостей з двома іншими акаунтами, описаними вище, файли, пов’язані з MaaS-операцією, взаємодіяли щонайменше з одним репозиторієм, який належав саме цьому акаунту.
Обліковий запис DFfe9ewf містив лише шість репозиторіїв. Один із них був форком DInvoke, інструмента, який дозволяє викликати довільний unmanaged-код із managed-середовища. Зловмисники часто використовують DInvoke для інжекції в процеси та обходу перехоплень Windows API, що допомагає уникати виявлення засобами захисту.
Репозиторій test3 містив легітимний файл Selenium WebDriver, а також версії для Microsoft Edge і Google Chrome, зокрема ChromeDriver. WebDriver є потужним інструментом для розробників, який призначений для автоматизованого тестування вебзастосунків шляхом віддаленого та програмного керування браузером. Водночас у шкідливому контексті такі інструменти можуть використовуватися на системі жертви для виконання різних дій. Наприклад, для завантаження payload’ів із шкідливих URL або доступу до локальних даних браузера.
Хоча WebDriver широко застосовується у легітимній розробці, у разі зловживання він може становити серйозну загрозу безпеці. Питання безпечного використання WebDriver детально розглядаються в офіційній документації ChromeDriver.
Третій обліковий запис під назвою Milidmdds містив десять репозиторіїв із випадковими назвами, схожими на ті, що використовувалися в акаунті Legendary99999. У цих репозиторіях були виявлені кілька шкідливих скриптів, які в підсумку завантажували payload на заражену систему.

Під час дослідження було виявлено помітні збіги в тактиках, техніках і індикаторах між кампанією SmokeLoader та MaaS-активністю з використанням Amadey. Зокрема, три JavaScript-файли, розміщені в GitHub-акаунті Milidmdds, майже повністю збігаються зі скриптами Emmenhtal, які застосовувалися в кампанії SmokeLoader.
За винятком випадково згенерованих назв змінних і функцій, а також інших цілей завантаження у фінальному PowerShell-скрипті, більша частина коду в усіх цих зразках є однаковою. Loader-файли, знайдені в різних репозиторіях Milidmdds, мали такі назви:
Work.js
Workhmv.js
Putikatest.js
Хоча використання цих скриптів безпосередньо «в полі» зафіксовано не було, імовірно, вони готувалися для поширення через фішингові листи або для вбудовування у шкідливі файли за тією ж схемою, що й у кампанії SmokeLoader.
Нижче показані подібності між завантажувачами Emmenhtal, які використовувалися у фішинговій кампанії проти українських організацій (позначені як Sample 1), та зразками з репозиторіїв Milidmdds (позначені як Sample 2, Sample 3 і Sample 4).
Перший рівень обфускації в зразках Emmenhtal визначає набір дволітерних змінних, кожна з яких відповідає дво- або тризначному числовому значенню. Ці змінні застосовуються до довгого рядка значень, розділених комами, який зберігається у змінній з випадковою назвою, наприклад qiXSF.

Після виконання початкового скрипту розкривається другий скрипт, який використовує функцію ActiveXObject для запуску закодованої команди PowerShell через WScript.Shell.

Третій рівень являє собою команду PowerShell, яка містить AES-зашифрований бінарний об’єкт великого розміру (blob).

Цей blob містить ще один AES-зашифрований PowerShell-скрипт, який розшифровується та виконується початковим скриптом. Саме фінальний скрипт ініціює завантаження наступного етапу з жорстко прописаної IP-адреси. У фішинговій кампанії, спрямованій проти українських організацій, таким фінальним payload’ом був SmokeLoader разом із файлом-приманкою у форматі PDF.
Водночас Emmenhtal-завантажувачі, знайдені в публічних GitHub-репозиторіях, використовувалися для доставки різних типів файлів, зокрема:
Amadey
легітимної копії PuTTY.exe
AsyncRAT
Наявність легітимної утиліти PuTTY серед файлів, які доставлялися через Emmenhtal із публічних GitHub-репозиторіїв, наочно демонструє гнучкість MaaS-операції. Вона здатна поширювати будь-які інструменти, які потребують її клієнти, незалежно від того, є це шкідливе ПЗ чи цілком легітимне програмне забезпечення.
Нижче наведено приклади фінального розшифрованого PowerShell-завантажувача.


Під час аналізу обох кластерів активності, описаних у цій статті, було виявлено зразки Emmenhtal, які маскувалися під MP4-файли. Два URL вели до файлів з розширенням .mp4, розміщених на домені pivqmane[.]com:
pivqmane[.]com/testonload[.]mp4/
pivqmane[.]com/doc/fb[.]mp4
Хоча на момент аналізу обидва MP4-файли вже були видалені, саме зловживання цим форматом підкреслює ще одну спільну рису між MaaS-операцією та кампанією SmokeLoader. Це також узгоджується з раніше зробленими спостереженнями, що окремі варіанти Emmenhtal можуть маскуватися під MP3 або MP4-файли.
Під час цього дослідження було виявлено ще один унікальний файл в GitHub-акаунті Milidmdds. Йдеться про шкідливий Python-скрипт під назвою checkbalance.py. На відміну від зразків, розглянутих раніше, він не використовував початкові рівні обфускації. Водночас подальші етапи на PowerShell майже повністю збігаються з тими, що вже описувалися вище. Такий підхід може свідчити або про еволюцію завантажувача Emmenhtal, або, що виглядає більш імовірним, про спеціально створений варіант під конкретну кампанію.
На перший погляд скрипт маскується під простий інструмент, який нібито перевіряє вміст криптовалютних акаунтів Zerion. Проте всередині нього прихована велика lambda-функція, що містить Base64-кодований і стиснутий blob. Цей код виконується під час запуску скрипту.
Після цього користувачеві відображається повідомлення кирилицею: «Аккаунт кончились». Цей текст граматично некоректний, оскільки слово «Аккаунт» стоїть в однині, а «кончились» у множині. Втім, з огляду на контекст, автор, імовірно, мав на увазі щось на кшталт «акаунти закінчилися» або «більше немає акаунтів».

Після цього lambda-функція запускає другий Python-скрипт, який за допомогою методу subprocess.run виконує закодовану команду PowerShell. Отриманий PowerShell-код майже повністю ідентичний JavaScript-варіантам, описаним раніше.

Фінальна команда PowerShell завантажує payload Amadey з IP-адреси 185[.]215[.]113[.]16 у вигляді файлу з назвою amnew.exe. PowerShell-скрипт, вбудований у checkbalance.py, повністю ідентичний тому, що був отриманий із файлу Sample 2 (work.js), який також знаходився в репозиторії Milidmdds.
Після виконання цей payload встановлює з’єднання з адресою hxxp://185[.]215[.]113[.]43/Zu7JuNko/index.php, яка відома як C2-сервер Amadey.

Ця історія добре показує, наскільки буденними стали складні кібератаки. Ніяких екзотичних інструментів чи надскладних експлойтів. Замість цього звичні файли, знайомі сервіси, легітимні платформи й мінімум шуму. Саме в цьому і сила таких схем.
Emmenhtal та Amadey тут не виглядають як щось унікальне самі по собі. Небезпека в іншому – у гнучкості, сервісному підході та здатності швидко підлаштовуватися під потреби різних замовників. Сьогодні через ту саму інфраструктуру поширюється stealer, завтра RAT, післязавтра цілком легітимна утиліта, яка використовується не за призначенням.
Окремо насторожує те, наскільки органічно зловмисна активність маскується під звичайний робочий трафік. GitHub, PowerShell, Python, WebDriver – усе це щоденні інструменти для тисяч команд по всьому світу. І саме тому такі атаки легко проходять повз базові фільтри та людську увагу.
Головний висновок простий і неприємний: сучасна загроза рідко виглядає підозріло з першого погляду. Вона ховається у звичних речах і чекає моменту, коли її вже буде складно зупинити.