Інформація про дані Платона.
Вертикальний пошук і штучний інтелект.

Хто плаває у водах Південної Кореї? Зустрічайте дельфіна Скаркрафта

Дата:

Дослідники ESET розкривають Dolphin, складний бекдор, що розширює арсенал групи ScarCruft APT

Дослідники ESET проаналізували бекдор, про який раніше не повідомлялося, який використовує група ScarCruft APT. Бекдор, який ми назвали Dolphin, має широкий спектр шпигунських можливостей, включаючи моніторинг дисків і портативних пристроїв і вилучення цікавих файлів, клавіатурний журнал і створення знімків екрана, а також крадіжку облікових даних із браузерів. Його функціональні можливості зарезервовані для вибраних цілей, до яких бекдор розгортається після початкової компрометації за допомогою менш просунутого шкідливого програмного забезпечення. Як і інші інструменти ScarCruft, Dolphin зловживає службами хмарного сховища, зокрема Google Drive, для зв’язку C&C.

Під час нашого розслідування ми помітили продовження розвитку бекдору та спроби авторів шкідливих програм уникнути виявлення. Примітною особливістю попередніх версій Dolphin, які ми проаналізували, є можливість змінювати налаштування облікових записів Google і Gmail, у які жертви ввійшли, щоб знизити їх безпеку, швидше за все, щоб зберегти доступ до скриньок електронної пошти жертв.

У цій публікації блогу ми пропонуємо технічний аналіз бекдору Dolphin і пояснюємо його зв’язок із раніше задокументованою діяльністю ScarCruft. Ми представимо наші висновки щодо цього нового доповнення до набору інструментів ScarCruft на АВАР 2022 конференція

Ключові моменти в цій публікації блогу:

  • Дослідники ESET проаналізували Dolphin, бекдор, про який раніше не повідомлялося, використовувався групою ScarCruft APT.
  • Dolphin розгортається лише на вибраних цілях; він шукає цікаві файли на дисках скомпрометованих систем і передає їх на Google Drive.
  • Бекдор використовувався як останнє корисне навантаження багатоетапної атаки на початку 2021 року, яка включала атаку на південнокорейську онлайн-газету, експлойт Internet Explorer і інший бекдор ScarCruft під назвою BLUELIGHT.
  • З моменту першого виявлення Dolphin у квітні 2021 року дослідники ESET спостерігали кілька версій бекдору, у яких зловмисники покращували можливості бекдору та намагалися уникнути виявлення.
  • Примітною особливістю попередніх версій Dolphin, які ми проаналізували, є можливість змінювати налаштування облікових записів Google і Gmail, у які жертви ввійшли, щоб знизити рівень безпеки.

Профіль ScarCruft

ScarCruft, також відома як APT37 або Reaper, є шпигунською групою, яка працює принаймні з 2012 року. Вона в основному зосереджена на Південній Кореї, але й інші азіатські країни також були мішенню. ScarCruft, схоже, цікавиться головним чином урядовими та військовими організаціями, а також компаніями в різних галузях, пов’язаних з інтересами Північної Кореї.

Огляд дельфіна

У 2021 році ScarCruft здійснив атаку на південнокорейську онлайн-газету, присвячену Північній Кореї. Атака складалася з кількох компонентів, включаючи експлойт Internet Explorer і шелл-код, що веде до бекдору під назвою BLUELIGHT, повідомляє Волексія та Kaspersky.

У цих звітах бекдор BLUELIGHT описувався як остаточне корисне навантаження атаки. Однак під час аналізу атаки за допомогою телеметрії ESET ми виявили другий, більш складний бекдор, розгорнутий на вибраних жертвах через BLUELIGHT. Ми назвали цей бекдор Dolphin на основі шляху PDB, знайденого у виконуваному файлі.

У той час як бекдор BLUELIGHT виконує базову розвідку та оцінку скомпрометованої машини після експлуатації, Dolphin є більш досконалим і вручну розгортається лише проти вибраних жертв. Обидва бекдори здатні вилучати файли за шляхом, указаним у команді, але Dolphin також активно шукає диски та автоматично вилучає файли з розширеннями, які цікавлять ScarCruft.

На малюнку 1 наведено огляд компонентів атаки, які призводять до виконання бекдору Dolphin.

Рисунок 1. Огляд компонентів атаки, які призводять до виконання бекдору Dolphin

Дельфін аналіз

Аналіз компонентів Dolphin та їхніх можливостей наведено в наступному розділі.

Аналіз базується на першій знайденій версії бекдора, 1.9 (на основі рядка, знайденого в коді), з додатковою інформацією про зміни в новіших версіях. Короткий опис змін версії можна знайти в Еволюція дельфіна .

Інсталятор Dolphin

Наступні розділи описують компоненти інсталятора та завантажувача, відповідальні за виконання бекдору Dolphin у аналізованому сценарії атаки.

Варто зазначити, що цей інсталятор і розгорнутий завантажувач не є ексклюзивними для Dolphin і раніше використовувалися з іншими шкідливими програмами ScarCruft.

Шел-код інсталятора відповідає таким основним цілям:

  • Завантажте та розгорніть інтерпретатор Python
  • Створіть і розгорніть ланцюг завантаження з його корисним навантаженням
  • Забезпечити стійкість вантажного ланцюга

Інсталятор завантажує CAB-файл із OneDrive, що містить законний інтерпретатор Python 2.7. CAB розпаковано до % APPDATA%, і залежно від архітектури інтерпретатор потрапляє в один із таких каталогів:

  • %appdata%Python27(32)
  • %appdata%Python27(64)

Інсталятор генерує два шляхи до файлів для компонентів ланцюжка завантаження, та , з форматом .

випадково вибирається з

  • %PROGRAMDATA%
  • %PUBLIC%
  • %APPDATA%Microsoft
  • %APPDATA%MicrosoftWindows
  • %LOCALAPPDATA%
  • %LOCALAPPDATA%Microsoft
  • %LOCALAPPDATA%MicrosoftWindows

та випадково вибираються з існуючих імен файлів (без розширення) у %windir%inf*.inf та %windir%system32*.dll.

Щоб створити крок 1 завантажувача, він використовує шаблон сценарію, який заповнюється випадково згенерованими іменами (змінними, функціями). Шаблон із згенерованим прикладом показано на малюнку 2.

Рисунок 2. Шаблон кроку 1 і згенерований приклад

Потім записується сценарій .

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

Щоб зберегти початок ланцюжка завантаження, інсталятор встановлює значення реєстру Run:

HKCUSoftwareMicrosoftWindowsCurrentVersionRun<random_run_name>”%appdata%Python27({32|64})pythonw.exe” “<loader_step_1>” “<loader_encrypted_step_2>”

Команда вибирається випадковим чином із існуючих відповідних назв файлів %WINDIR%inf*.inf, відкидаючи Inf. розширення.

Щоб розпочати ланцюжок завантаження після встановлення, створюється одноразове заплановане завдання.

Навантажувач Dolphin

Завантажувач Dolphin складається зі сценарію Python і коду оболонки.

Крок 1, сценарій Python, читає вказаний файл, розшифровує його вміст за допомогою XOR і виконує отриманий шелл-код.

Крок 2, шелл-код, створює хост-процес (довільний виконуваний файл CLI з %WINDIR%System32*.exe), XOR-дешифрує подальший шелл-код, який міститься в ньому, і вводить його в створений процес.

Крок 3, ще один шелл-код, XOR-дешифрує вбудований PE-файл – бекдор Dolphin – і завантажує та виконує його за допомогою спеціального PE-завантажувача.

Бекдор Dolphin

Dolphin — це бекдор, який збирає інформацію та виконує команди, що видаються його операторами. Бекдор — це звичайний виконуваний файл Windows, написаний мовою C++. Він спілкується з хмарним сховищем Google Drive, яке використовується як його C&C сервер.

Ми назвали бекдор Dolphin на основі шляху PDB, знайденого у виконуваному файлі:

D:Розробка BACKDOORDolphinx64ReleaseDolphin.pdb

Наполегливість

Бекдор періодично перевіряє та створює власну постійність, переконуючись, що Крок 1 завантажувача виконується щоразу, коли запускається система, через значення Run реєстру, таким же чином, як у інсталяторі:

HKCUSoftwareMicrosoftWindowsCurrentVersionRun<random_run_name>”%appdata%Python27({32|64})pythonw.exe” “<loader_step_1>” “<loader_encrypted_step_2>”

Можливості

Збирається така основна інформація про комп’ютер і бекдор:

  • Поточна конфігурація бекдора
  • ім'я користувача
  • ім'я комп'ютера
  • Локальна та зовнішня IP-адреса
  • Список встановлених продуктів безпеки
  • Розмір і використання оперативної пам'яті
  • Результат перевірки налагоджувача та інших інструментів перевірки (таких як Wireshark)
  • Версія ОС
  • Поточний час
  • Версія шкідливого ПЗ

Dolphin завантажує команди, видані його операторами, зі сховища Google Drive і виконує їх. Після виконання завантажується вихід команд. Більшістю можливостей Dolphin можна керувати за допомогою команд.

Найактуальніші можливості описані нижче.

Викрадання файлів

За замовчуванням Dolphin шукає всі нефіксовані диски (USB), створює списки каталогів і вилучає файли за розширенням. Цей пошук можна розширити до фіксованих дисків (HDD) за допомогою спеціальних команд.

У конфігурації за замовчуванням указано наступні цікаві розширення файлів, специфічні для носіїв, документів, електронних листів і сертифікатів:

jpg, doc, xls, ppt, hwp, url, csv, pdf, шоу, клітинка, eml, odt, rtf, nxl, amr, 3gp, m4a, txt, msg, ключ, der, cer, docx, xlsx, pptx, pfx, mp3

Крім цього автоматичного пошуку, певні файли можуть бути викрадені.

У новіших версіях пошук за умовчанням було розширено до фіксованих дисків. Команду для отримання певних файлів було вдосконалено шляхом кешування/збереження в конфігурації до завершення.

Портативні пристрої

Серед звичайних дисків Dolphin також шукає портативні пристрої, наприклад смартфони, за допомогою API портативних пристроїв Windows (WPD). Він створює списки каталогів і вилучає файли. Здавалося, ця функція перебуває в стадії розробки в першій знайденій версії з кількох причин:

  • Покладаючись на жорстко закодований шлях із іменем користувача, якого, ймовірно, не існує на комп’ютері жертви
  • Відсутня ініціалізація змінної – деякі змінні вважаються ініціалізованими нулем або розіменовані як покажчики без ініціалізації
  • Відсутня фільтрація розширення

Код значною мірою базується на COM API портативних пристроїв Microsoft зразок коду.

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

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

Keylogging і скріншоти

Dolphin реєструє натискання клавіш для вікон із заголовками, що містять підрядки, вказані в його конфігурації. Значення за замовчуванням хром та досліджувати Інтернет (sic). Це робиться через GetAsyncKeyState API, у якому натискання клавіш реєструються разом із назвою вікна та поточним часом. Скріншоти також робляться з настроюваним інтервалом; за замовчуванням один раз кожні 30 секунд.

Скріншоти та клавіатурні журнали ввімкнено за замовчуванням, і їх можна перемикати за допомогою команди.

Shell -код

Dolphin може отримати шелл-код для виконання. Шел-код зберігається в реєстрі під одним із таких ключів:

  • HKCUSoftwareMicrosoftWindowsCurrentVersionThemesClassic
  • HKCUSoftwareMicrosoftOneDriveUpdate
  • HKCUПрограмне забезпеченняMicrosoftWindowsCurrentVersionНалаштування ІнтернетуHttpsПрограмне забезпеченняMicrosoftInternet ExplorerZone (два підключа як один, ймовірно, помилка кодування)

Він може бути виконаний локально або у визначеному окремому процесі, який створюється та впроваджується.

У новіших версіях шелл-код зберігається у файлах замість реєстру, а збережений шелл-код завантажується та виконується під час запуску Dolphin, чого не було у версії 1.9 (оригінальна версія, яку ми аналізували).

Команди оболонки

Dolphin може виконувати команди оболонки; це робиться через попен API та їх вихідні дані витягуються.

Крадіжка облікових даних

Dolphin може отримувати облікові дані з браузерів у вигляді збережених паролів і файлів cookie. Підтримуються такі браузери:

  • Chrome
  • край
  • Internet Explorer

У версії 2.2 цю можливість було видалено, ймовірно, щоб уникнути виявлення. Пізніше він був відновлений у версії 3.0, але в іншому вигляді. Тепер він динамічно отримується від C&C у формі шелл-коду.

обліковий запис Google

Ще одна з команд Dolphin змінює параметри поточного облікового запису Google, знижуючи його безпеку порівняно з параметрами за замовчуванням. Він викрадає наявні файли cookie облікового запису, у який ви ввійшли, із браузера та створює запити, які змінюють налаштування.

По-перше, він надає доступ до Gmail через протокол IMAP, надсилаючи запит HTTP POST до:

  • https://mail.google.com/mail/u/0/?ik=<GM_ID_KEY>&at=<GM_ACTION_TOKEN>&view=up&act=prefs

Потім він вмикає «менш безпечний доступ програми», надсилаючи незадокументований запит RPC через HTTP POST до:

  • https://myaccount.google.com/_/AccountSettingsUi/data/batchexecute

Ці модифікації називаються «грозовим доступом» у бекдорі, ймовірно, це посилання на поштовий клієнт Thunderbird. Доступ до скриньки вхідних повідомлень їхніх жертв за допомогою стороннього клієнта через IMAP, ймовірно, допомагає операторам ScarCruft підтримувати доступ до електронної пошти жертв після викрадення облікових даних, яких може бути недостатньо самостійно через виявлення Google підозрілих спроб входу.

Ця функція була знайдена у версіях бекдора 1.9 і 2.0; його немає у версіях 2.2 або 3.0.

Постановка даних

Dolphin переносить дані в сховище Google Drive, зберігаючи дані в зашифрованих ZIP-архівах перед завантаженням. Бекдор також підтримує список файлів у формі хешів MD5, щоб уникнути завантаження одного файлу кілька разів. Цей список можна скинути за допомогою спеціальної команди.

конфігурація

Бекдор містить початкову конфігурацію за замовчуванням, яка зберігається під час першого запуску та завантажується під час наступних. Він зберігається у файлі %ProgramData% .inf, Де вибирається випадковим чином із існуючих відповідних назв файлів %windir%inf*.inf. Вміст шифрується за допомогою AES CBC із випадковими 16-байтними ключами та IV, які зберігаються на початку файлу. Конфігурація використовує формат JSON із ключами, схожими на хеш. Приклад розшифрованої конфігурації показано на малюнку 3.

Рисунок 3. Конфігурація бекдора Dolphin

Конфігурацію можна змінити за допомогою команд. Він містить, серед іншого, таке:

  • Ключі шифрування
  • Облікові дані для доступу до Google Drive API
  • Заголовки вікон для клавіатурного журналу
  • Список розширень файлів для ексфільтрації

Еволюція дельфіна

З моменту першого виявлення Dolphin у квітні 2021 року ми спостерігали кілька версій бекдору, у яких зловмисники покращували можливості бекдору та намагалися уникнути виявлення. Рисунок 4 підсумовує бачені версії; більш детальний опис змін версії наведено нижче.

Рисунок 4. Хронологія еволюції дельфіна

Листопад 2021 – версія 2.0

У версії 2.0 у квітні 2021 року внесено такі зміни:

  • Динамічне вирішення підозрілих API замість статичного імпорту (наприклад GetAsyncKeyState) додано
  • Можливість шелл-коду завершено та покращено
    • Постійний шелл-код зберігається у файлах замість реєстру
    • Постійний шелл-код завантажується та виконується під час запуску Dolphin (раніше відсутній)
  • Можливість вилучення файлів портативного пристрою завершено та покращено
    • Додано ексфільтрацію розширеннями
    • Додано розпізнавання внутрішньої пам'яті та SD-карт (за ідентифікатором пристрою).
    • Команда для отримання файлів із портативних пристроїв фактично є NOP
  • Покращено виявлення пристроїв/дисків і викрадання файлів
    • Тепер Dolphin безумовно створює списки каталогів і вилучає файли за розширенням кожні 30 хвилин для всіх дисків і пристроїв (фіксованих дисків, знімних дисків, портативних пристроїв). Раніше це було лише для знімних дисків; фіксовані диски були вимкнені за замовчуванням, а код, який використовувався для доступу до портативних пристроїв, був помилковим і зламаним.

Грудень 2021 – версія 2.2

Зміни, внесені у версію 2.2, зосереджені головним чином на уникненні виявлення. Можливість викрадення облікових даних і пов’язані з нею команди – команди викрадення облікових даних і облікових записів Google – були видалені. Більшість рядків у цій версії кодуються base64.

Січень 2022 р. – версія 3.0

У версії 3.0 код було реорганізовано, а класи перейменовано, а можливості залишилися без змін. У цій версії рядки, закодовані в base64, знову були відкритим текстом. Ми помітили такі додаткові зміни:

  • Команда на крадіжку облікових даних відновлена ​​в іншому вигляді; тепер він виконує шелл-код з C&C
  • Команда для повного видалення файлів із портативних пристроїв
  • Команда отримання файлів із дисків тепер кешується/зберігається в конфігурації до завершення. У разі переривання (наприклад, вимкнення комп’ютера) це виконується під час наступного запуску. Це також корисно у випадку знімних дисків, які можуть бути не підключені під час видачі команди.
  • Додано перевірку підключення до Інтернету (https://www.microsoft.com); в автономному режимі шкідливий код не виконується

Відмінності між версіями 2.2 і 3.0, особливо розбіжність у кодуванні рядків, припускають можливість того, що версії розроблялися різними людьми паралельно.

Висновок

Dolphin є ще одним доповненням до широкого арсеналу бекдорів ScarCruft, які зловживають службами хмарного зберігання. Після розгортання на вибраних цілях він шукає цікаві файли на дисках скомпрометованих систем і вилучає їх на Диск Google. Однією незвичайною можливістю, знайденою в попередніх версіях бекдору, є можливість змінювати налаштування облікових записів Google і Gmail жертв, щоб знизити їх безпеку, ймовірно, щоб зберегти доступ до облікового запису для зловмисників. Під час аналізу багатьох версій бекдору Dolphin ми помітили постійний розвиток і спроби уникнути виявлення.

З будь-якими запитами щодо нашого дослідження, опублікованого на WeLiveSecurity, зв’яжіться з нами за адресою [захищено електронною поштою].

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

IoCs

SHA-1 ім'я файлу Назва виявлення ESET Опис
F9F6C0184CEE9C1E4E15C2A73E56D7B927EA685B N / A Win64/Агент.MS Бекдор Dolphin версії 1.9 (x64)
5B70453AB58824A65ED0B6175C903AA022A87D6A N / A Win32/Spy.Agent.QET Бекдор Dolphin версії 2.0 (x86)
21CA0287EC5EAEE8FB2F5D0542E378267D6CA0A6 N / A Win64/Агент.MS Бекдор Dolphin версії 2.0 (x64)
D9A369E328EA4F1B8304B6E11B50275F798E9D6B N / A Win32/Agent.UYO Бекдор Dolphin версії 3.0 (x86)
2C6CC71B7E7E4B28C2C176B504BC5BDB687C4D41 N / A Win64/Агент.MS Бекдор Dolphin версії 3.0 (x64)

Методи MITER ATT & CK

Ця таблиця була побудована за допомогою версія 12 рамки MITER ATT & CK.

Тактика ID ІМ'Я Опис
Початковий доступ T1189 Компроміс проїзду ScarCruft використовує атаки із загрозою для компрометації жертв.
Виконання T1059.006 Інтерпретатор команд і сценаріїв: Python Завантажувач Dolphin використовує сценарій Python.
T1059.007 Інтерпретатор команд і сценаріїв: JavaScript ScarCruft використовував шкідливий JavaScript для атаки водопою.
T1203 Експлуатація для виконання клієнта ScarCruft використовує CVE-2020-1380 для компрометації жертв.
T1106 Native API Dolphin використовує функції Windows API для виконання файлів і впровадження процесів.
Наполегливість T1053.005 Запланована задача/завдання: запланована задача Dolphin використовує тимчасове заплановане завдання для запуску після встановлення.
T1547.001 Виконання автозапуску завантаження або входу: ключі запуску реєстру / папка запуску Dolphin використовує клавіші Run для збереження свого завантажувача.
Ухилення від захисту T1055.002 Впровадження процесу: впровадження портативного виконуваного файлу Dolphin може впроваджуватись в інші процеси.
T1027 Заплутані файли або інформація Dolphin має зашифровані компоненти.
Доступ до облікових даних T1555.003 Облікові дані зі сховищ паролів: облікові дані з веб-браузерів Dolphin може отримувати збережені паролі з браузерів.
T1539 Викрасти файли cookie веб-сеансу Dolphin може отримувати файли cookie з браузерів.
Відкриття T1010 Відкриття вікна програми Dolphin фіксує назву активного вікна.
T1083 Виявлення файлів і каталогів Dolphin може отримати списки файлів і каталогів.
T1518.001 Виявлення програмного забезпечення: виявлення програмного забезпечення безпеки Dolphin отримує список встановленого програмного забезпечення безпеки.
T1082 Виявлення системної інформації Dolphin отримує різноманітну інформацію про систему, включаючи версію ОС, назву комп’ютера та розмір оперативної пам’яті.
T1016 Виявлення конфігурації мережі Dolphin отримує локальну та зовнішню IP-адресу пристрою.
T1016.001 Виявлення конфігурації системної мережі: виявлення підключення до Інтернету Dolphin перевіряє підключення до Інтернету.
T1033 Виявлення власника/користувача системи Dolphin отримує ім'я користувача жертви.
T1124 Виявлення системного часу Dolphin отримує поточний час жертви.
COLLECTION T1056.001 Захоплення введення: Keylogging Dolphin може реєструвати натискання клавіш.
T1560.002 Архів зібраних даних: Архів через бібліотеку Використовуючи бібліотеку Zipper, Dolphin стискає та шифрує зібрані дані перед ексфільтрацією.
T1119 Автоматизований збір Dolphin періодично збирає файли з певними розширеннями з дисків.
T1005 Дані з локальної системи Dolphin може збирати файли з локальних дисків.
T1025 Дані зі знімного носія Dolphin може збирати файли зі знімних дисків.
T1074.001 Поетапні дані: Постановка локальних даних Дольфінові етапи збирали дані в каталозі перед ексфільтрацією.
T1113 Screen Capture Dolphin може робити знімки екрана.
Управління та контроль T1071.001 Протокол прикладного рівня: веб -протоколи Dolphin використовує HTTPS для зв’язку з Диском Google.
T1102.002 Веб-сервіс: двонаправлений зв'язок Dolphin спілкується з Google Drive, щоб завантажувати команди та вилучати дані.
ексфільтраціі T1020 Автоматизована ексфільтрація Dolphin періодично вилучає зібрані дані.
T1567.002 Ексфільтрація через веб-сервіс: ексфільтрація в хмарне сховище Dolphin передає дані на Google Drive.

spot_img

Остання розвідка

spot_img