WinorDLL64: бекдор із величезного арсеналу Lazarus?

WinorDLL64: бекдор із величезного арсеналу Lazarus?

Вихідний вузол: 1975596

Цільовий регіон і збіг у поведінці та коді свідчать про те, що інструмент використовується сумнозвісною групою APT, пов’язаною з Північною Кореєю

Дослідники ESET виявили одне з корисних навантажень Завантажувач Wslink який ми виявили ще в 2021 році. Ми назвали це корисне навантаження WinorDLL64 на основі його імені файлу WinorDLL64.dll. Wslink, який мав назву файлу WinorLoaderDLL64.dll, це завантажувач для бінарних файлів Windows, який, на відміну від інших подібних завантажувачів, працює як сервер і виконує отримані модулі в пам’яті. Як випливає з формулювання, завантажувач служить інструментом для завантаження корисного навантаження або фактичного шкідливого програмного забезпечення у вже скомпрометовану систему. Початковий компрометований вектор Wslink не ідентифіковано.

Спочатку невідоме корисне навантаження Wslink було завантажено до VirusTotal із Південної Кореї невдовзі після публікації нашого блогу та відповідало одному з наших правил YARA на основі унікальної назви Wslink WinorDLL64. Що стосується Wslink, телеметрія ESET зафіксувала лише кілька виявлень – у Центральній Європі, Північній Америці та на Близькому Сході.

Команда WinorDLL64 корисне навантаження служить бекдором, який, головним чином, отримує обширну системну інформацію, надає засоби для маніпулювання файлами, наприклад викрадання, перезаписування та видалення файлів, а також виконує додаткові команди. Цікаво, що він спілкується через з’єднання, яке вже було встановлено завантажувачем Wslink.

У 2021 році ми не знайшли жодних даних, які б припускали, що Wslink є інструментом від відомого загрозливого актора. Однак після ретельного аналізу корисного навантаження ми приписали WinorDLL64 до групи Lazarus APT з низькою достовірністю на основі цільового регіону та збігу поведінки та коду з відомими зразками Lazarus.

Активна щонайменше з 2009 року, ця сумнозвісна група, пов’язана з Північною Кореєю, несе відповідальність за резонансні інциденти, такі як Злом Sony Pictures Entertainment і десятки мільйонів доларів кіберграбіжці в 2016 році, WannaCryptor (він же WannaCry) спалах у 2017 році та довга історія підривних атак проти Громадська та критична інфраструктура Південної Кореї принаймні з 2011 року. US-CERT і ФБР називають цю групу ПРИХОВАНА КОБРА.

На основі нашого широкі знання діяльності та операцій цієї групи ми вважаємо, що Lazarus складається з великої команди, яка систематично організована, добре підготовлена ​​та складається з кількох підгруп, які використовують великий набір інструментів. Минулого року ми виявив інструмент Лазаря що скористався CVE-2021-21551 вразливість до співробітника аерокосмічної компанії в Нідерландах і політичного журналіста в Бельгії. Це було перше зафіксоване зловживання уразливістю; у поєднанні цей інструмент і вразливість призвели до засліплення моніторингу всіх рішень безпеки на скомпрометованих машинах. Ми також надали розгорнутий опис структура віртуальної машини використовується у зразках Wslink.

У цьому блозі пояснюється присвоєння WinorDLL64 Lazarus і надається аналіз корисного навантаження.

Посилання на Lazarus

Ми виявили збіги в поведінці та коді із зразками Lazarus із Операція GhostSecret і Імплантат Bankshot описаний McAfee. Опис імплантатів у статтях GhostSecret і Bankshot містить збіги у функціональності з WinorDLL64, і ми виявили деякі збіги коду в зразках. У цьому блозі ми будемо використовувати лише FE887FCAB66D7D7F79F05E0266C0649F0114BA7C зразок із GhostSecret для порівняння з WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), якщо не вказано інше.

Наступні деталі підсумовують факти, які підтверджують наше приписування Лазаря з низькою достовірністю:

1. Віктимологія

  • Колеги-дослідники з AhnLab підтвердили південнокорейські жертви Wslink у своїй телеметрії, що є релевантним показником з огляду на традиційні цілі Lazarus і те, що ми спостерігали лише кілька влучень.

Рисунок 1. Повідомлена жертва з Південної Кореї, де mstoned7 є дослідником з Ahnlab

2. Зловмисне програмне забезпечення

  • Останній зразок GhostSecret, про який повідомляє McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) з лютого 2018 року; ми помітили перший зразок Wslink наприкінці 2018 року, а колеги-дослідники повідомили про звернення в серпні 2018 року, про що вони розкрили після нашої публікації. Отже, ці зразки були помічені з відносно коротким проміжком часу.
  • Команда PE багаті заголовки вказують на те, що те саме середовище розробки та проекти подібного розміру використовувалися в кількох інших відомих зразках Lazarus (наприклад, 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). Ми виявили це збіг, використовуючи наступні правила, які охоплюють лише ці зразки Wslink і Lazarus, що є показником із низькою вагою. Ми перевірили їх на Ретрополювання VirusTotal і наш внутрішній файловий корпус.

rich_signature.length == 80 і
pe.rich_signature.toolid(175, 30319) == 7 і
pe.rich_signature.toolid(155, 30319) == 1 і
pe.rich_signature.toolid(158, 30319) == 10 і
pe.rich_signature.toolid(170, 30319) >= 90 і
pe.rich_signature.toolid(170, 30319) <= 108

Це правило можна перекласти на наступну нотацію, яка є більш зрозумілою та використовується VirusTotal, де можна побачити версію продукту та ідентифікатор збірки (VS2010 збірка 30319), кількість і тип використовуваних вихідних/об'єктних файлів ([LTCG C++] де LTCG означає Generation Time Code Generation, [ASM], [ C ]), і кількість експортів ([EXP]) у правилі:

[LTCG C++] VS2010 build 30319 count=7
[EXP] VS2010 build 30319 count=1
[ASM] VS2010 build 30319 count=10
[ C ] VS2010 build 30319 кількість у [ 90 .. 108 ]

  • У статті GhostSecret описано «унікальний компонент для збору даних і встановлення імплантатів, який прослуховує порт 443 для вхідних з’єднань із сервером керування», який додатково запускався як служба. Це точний опис поведінки завантажувача Wslink, окрім номера порту, який може змінюватися залежно від конфігурації. Підсумовуючи, хоча реалізація різна, обидва служать одній меті.
  • Завантажувач віртуалізовано за допомогою Oreans Code Virtualizer, який є комерційним захисником, який використовується часто від Лазаря.
  • Навантажувач використовує Модуль пам'яті бібліотека для завантаження модулів безпосередньо з пам'яті. Бібліотека зазвичай не використовується шкідливим програмним забезпеченням, але вона досить популярна серед груп, пов’язаних із Північною Кореєю, таких як Lazarus і Kimsuky.
  • Збіг у коді між WinorDLL64 і GhostSecret, який ми виявили під час аналізу. Результати та значення в атрибуції наведено в таблиці 1.

Таблиця 1. Подібності між WinorDLL64 і GhostSecret і їхнє значення для віднесення обох до того самого суб’єкта загрози

Інші подібності між WinorDLL64 і GhostSecret Impact
Перекриття коду в коді відповідає за отримання архітектури процесора низький
Перекриття коду під час маніпулювання поточним каталогом низький
Перекриття коду в отриманні списку процесів низький
Перекриття коду при надсиланні файлу низький
Перекриття поведінки в процесах лістингу низький
Перекриття поведінки під час маніпулювання поточним каталогом низький
Збіги поведінки в списку файлів і каталогів низький
Збіги поведінки в обсягах лістингу низький
Збіги поведінки під час читання/запису файлів низький
Перекриття поведінки в процесах створення низький
Значні перекриття поведінки під час безпечного видалення файлів низький
Значне перекриття поведінки при завершенні процесів низький
Значне дублювання поведінки при зборі системної інформації низький

Перекриття коду у функції надсилання файлів виділено на рисунках 2 і 3.

Рисунок 2. GhostSecret надсилає файл

Рисунок 3. Wslink надсилає файл

Технічний аналіз

WinorDLL64 служить бекдором, який, зокрема, отримує велику інформацію про систему, надає засоби для маніпулювання файлами та виконує додаткові команди. Цікаво, що він спілкується через TCP-з’єднання, яке вже було встановлено його завантажувачем, і використовує деякі функції завантажувача.

Рисунок 4. Візуалізація спілкування Wslink

Бекдор — це DLL з єдиним експортом без назви, який приймає один параметр — структуру для зв’язку, яка вже була описана в нашому попередня публікація в блозі. Структура містить TLS-контекст – сокет, ключ, IV – і зворотні виклики для надсилання та отримання повідомлень, зашифрованих за допомогою 256-бітного AES-CBC, які дозволяють WinorDLL64 безпечно обмінюватися даними з оператором через уже встановлене з’єднання.

Наступні факти змушують нас з високою впевненістю вважати, що бібліотека справді є частиною Wslink:

  • Унікальна структура використовується скрізь очікуваним чином, наприклад, TLS-контекст та інші значущі параметри надаються в очікуваному порядку до правильних зворотних викликів.
  • Ім'я DLL є WinorDLL64.dll а ім'я Wslink було WinorLoaderDLL64.dll.

WinorDLL64 приймає кілька команд. На малюнку 5 показано цикл, який приймає та обробляє команди. Кожна команда прив’язана до унікального ідентифікатора та приймає конфігурацію, яка містить додаткові параметри.

Рисунок 5. Основна частина циклу отримання команд бекдора

Список команд із нашими мітками наведено на малюнку 6.

Рисунок 6. Список команд

Таблиця 2 містить короткий перелік команд WinorDLL64, де змінено, а старі категорії стосуються зв’язку з раніше задокументованою функціональністю GhostSecret. Ми виділяємо лише значні зміни в модифікованій категорії.

Таблиця 2. Огляд бекдор-команд

Категорія Ідентифікатор команди Функціональність Опис
Нові 0x03 Виконайте команду PowerShell WinorDLL64 наказує інтерпретатору PowerShell працювати без обмежень і читати команди зі стандартного введення. Після цього бекдор передає вказану команду інтерпретатору та надсилає вихідні дані оператору.
0x09 Стисніть і завантажте каталог WinorDLL64 рекурсивно повторює заданий каталог. Вміст кожного файлу та каталогу стискається окремо та записується у тимчасовий файл, який потім надсилається оператору, а потім безпечно видаляється.
0x0D Відключити сеанс Від’єднує вказаного зареєстрованого користувача від сеансу служб віддаленого робочого стола користувача. Команда також може виконувати різні функції на основі параметра.
0x0D Список сеансів Збирає різні відомості про всі сеанси на пристрої жертви та надсилає їх оператору. Команда також може виконувати різні функції на основі параметра.
0x0E Виміряйте час підключення Використовує Windows API GetTickCount для вимірювання часу, необхідного для підключення до вказаного хосту.
Модифікований 0x01 Отримайте інформацію про систему Збирає вичерпну інформацію про систему жертви та надсилає її оператору.
0x0A Безпечно видаліть файли Перезаписує вказані файли блоком випадкових даних, перейменовує кожен файл на випадкове ім’я та, нарешті, надійно видаляє їх один за іншим.
0x0C Знищити процеси Завершує всі процеси, імена яких відповідають наданому шаблону та/або з певним PID.
Старий 0x02/0x0B Створіть процес Створює процес як поточний або вказаний користувач і, за бажанням, надсилає його результат оператору.
0x05 Встановити/отримати поточний каталог Намагається встановити та згодом отримати шлях до поточного робочого каталогу.
0x06 Список томів Перебирає диски від C: до Z: і отримує тип диска та назву тому. Команда також може виконувати різні функції на основі параметра.
0x06 Список файлів у каталозі Перебирає файли у вказаному каталозі та отримує таку інформацію, як імена, атрибути тощо. Команда також може виконувати різні функції на основі параметра.
0x07 Записати в файл Завантажує та додає вказаний обсяг даних у вказаний файл.
0x08 Читати з файлу Зазначений файл читається та надсилається оператору.
0x0C Список процесів Отримує деталі про всі запущені процеси на пристрої жертви та додатково надсилає ідентифікатор поточного процесу.

Висновок

Корисне навантаження Wslink призначене для забезпечення засобів для маніпулювання файлами, виконання подальшого коду та отримання обширної інформації про базову систему, яка, можливо, може бути використана пізніше для бокового переміщення через особливий інтерес до мережевих сеансів. Завантажувач Wslink слухає порт, указаний у конфігурації, і може обслуговувати додаткових клієнтів, що підключаються, і навіть завантажувати різні корисні дані.

WinorDLL64 містить перекриття середовища розробки, поведінки та коду з кількома зразками Lazarus, що вказує на те, що це може бути інструмент із великого арсеналу цієї групи APT, пов’язаної з Північною Кореєю.

ESET Research пропонує приватні звіти APT та канали даних. Якщо у вас є запитання щодо цієї послуги, відвідайте ESET Threat Intelligence стр.

IoCs

SHA-1 Назва виявлення ESET Опис
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A Дамп пам'яті виявленого корисного навантаження Wslink WinorDll64.

Методи MITER ATT & CK

Ця таблиця була побудована за допомогою версія 12 рамки ATT&CK. Ми знову не згадуємо техніки завантажувача, лише корисне навантаження.

Тактика ID ІМ'Я Опис
Розвиток ресурсів T1587.001 Розвивайте можливості: шкідливі програми WinorDLL64 — це спеціальний інструмент.
Виконання T1059.001 Інтерпретатор команд і сценаріїв: PowerShell WinorDLL64 може виконувати довільні команди PowerShell.
T1106 Native API WinorDLL64 може виконувати подальші процеси за допомогою CreateProcessW та CreateProcessAsUserW API.
Ухилення від захисту T1134.002 Маніпуляція маркером доступу: створення процесу за допомогою маркера WinorDLL64 може викликати API WTSQueryUserToken та CreateProcessAsUserW щоб створити процес під імітованим користувачем.
T1070.004 Видалення індикатора: Видалення файлу WinorDLL64 може безпечно видаляти довільні файли.
Відкриття T1087.001 Виявлення облікового запису: локальний обліковий запис WinorDLL64 може нумерувати сеанси та список пов’язаних користувачів і імен клієнтів, серед інших деталей.
T1087.002 Виявлення облікового запису: обліковий запис домену WinorDLL64 може нумерувати сеанси та перераховувати пов’язані доменні імена – серед інших деталей.
T1083 Виявлення файлів і каталогів WinorDLL64 може отримати списки файлів і каталогів.
T1135 Виявлення спільного доступу до мережі WinorDLL64 може виявляти спільні мережеві диски.
T1057 Відкриття процесу WinorDLL64 може збирати інформацію про запущені процеси.
T1012 Реєстр запитів WinorDLL64 може запитувати реєстр Windows для збору системної інформації.
T1082 Виявлення системної інформації WinorDLL64 може отримати таку інформацію, як ім’я комп’ютера, ОС і остання версія пакета оновлень, архітектура процесора, назва процесора та обсяг місця на фіксованих дисках.
T1614 Виявлення розташування системи WinorDLL64 може отримати назву країни жертви за замовчуванням за допомогою GetLocaleInfoW API.
T1614.001 Виявлення розташування системи: виявлення мови системи WinorDLL64 може отримати стандартну мову жертви за допомогою GetLocaleInfoW API.
T1016 Виявлення конфігурації мережі WinorDLL64 може перераховувати інформацію про мережевий адаптер.
T1049 Виявлення мережевих підключень системи WinorDLL64 може збирати список прослуховуваних портів.
T1033 Виявлення власника/користувача системи WinorDLL64 може нумерувати сеанси та виводити список пов’язаних імен користувачів, доменів і клієнтів – серед інших деталей.
COLLECTION T1560.002 Архів зібраних даних: Архів через бібліотеку WinorDLL64 може стискати та ексфільтрувати каталоги за допомогою quicklz бібліотека
T1005 Дані з локальної системи WinorDLL64 може збирати дані на пристрої жертви.
Impact T1531 Видалення доступу до облікового запису WinorDLL64 може відключити користувача, який увійшов у систему, від певних сеансів.

Часова мітка:

Більше від Ми живемо безпеки