IISpy: складний бекдор на стороні сервера з антикриміналістичними функціями

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

Другий у нашій серії про загрози IIS розбирає зловмисне розширення IIS, яке використовує хитрі трюки, намагаючись забезпечити тривале шпигунство на скомпрометованих серверах

Дослідники ESET виявили та проаналізували раніше незадокументований бекдор, реалізований як розширення для інтернет Інформаційні послуги (IIS), програмне забезпечення веб-сервера Microsoft. Бекдор, який ми назвали IISpy, використовує різноманітні трюки, щоб перешкоджати веденню журналів на сервері та уникати виявлення з метою довготривалого шпигунства. IISpy визначається рішеннями безпеки ESET як Win{32,64}/BadIIS.

Ця публікація в блозі є другою частиною нашої серії, де дослідники ESET розглядають загрози для веб-сервера IIS під мікроскопом – інші частини обговорюють зловмисне програмне забезпечення IIS, яке використовується для кіберзлочинності та SEO шахрайство, відповідно. Щоб отримати вичерпний посібник із виявлення, аналізу та видалення зловмисного програмного забезпечення IIS, зверніться до нашої офіційної статті «Анатомія власного зловмисного програмного забезпечення IIS», де IISpy представлено як одне з досліджуваних сімейств (група 7).

Огляд атаки

За даними телеметрії ESET, цей бекдор був активним принаймні з липня 2020 року та використовувався з Соковита картопля (визначено рішеннями безпеки ESET як Win64/HackTool.JuicyPotato), який є інструментом підвищення привілеїв. Ми підозрюємо, що зловмисники спочатку отримують початковий доступ до сервера IIS через певну вразливість, а потім використовують Соковита картопля отримати адміністративні привілеї, які є необхідно встановити IISpy як власне розширення IIS.

Згідно з нашими телеметричними даними, IISpy впливає на невелику кількість серверів IIS, розташованих у Канаді, США та Нідерландах, але це, ймовірно, не повна картина, оскільки адміністратори все ще зазвичай не використовують програмне забезпечення безпеки на серверах, а тому наша видимість серверів IIS обмежена.

Оскільки IISpy налаштовано як розширення IIS, він може бачити всі HTTP-запити, отримані скомпрометованим сервером IIS, і формувати HTTP-відповідь, якою сервер відповість. IISpy використовує цей канал для реалізації зв’язку C&C, що дозволяє йому працювати як пасивний мережевий імплантат. Як показано на малюнку 1, оператор (а не бекдор) ініціює з’єднання, надсилаючи спеціальний HTTP-запит на скомпрометований сервер. Бекдор розпізнає запит зловмисника, витягує та виконує вбудовані команди бекдору та змінює відповідь HTTP, щоб включити вихідні дані команди.

Підтримуються такі бекдор-команди:

  • Отримайте інформацію про систему
  • Завантаження/завантаження файлів
  • Виконувати файли або команди оболонки
  • Створіть зворотну оболонку
  • Створення/список/переміщення/перейменування/видалення файлів і папок
  • Створіть зіставлення між локальним і віддаленим диском
  • Ексфільтрувати зібрані дані

IISpy ігнорує всі інші HTTP-запити, надіслані на скомпрометований сервер IIS його законними відвідувачами – звичайно, вони все ще обробляються доброякісними серверними модулями.

Рисунок 1. Механізм керування бекдором IISpy

Рисунок 1. Механізм керування бекдором IISpy

Мережевий зв’язок

Запити на керування від операторів IISpy мають попередньо визначену структуру з певним (прихованим) зв’язком між Печиво та Господар заголовки та URL-адресу. Щоб ідентифікувати такі запити, IISpy спочатку обчислює хеш MD5 як URL-адреси, так і Господар заголовок вхідного запиту HTTP та розбиває кожен MD5 на чотири подвійні слова:

  • = md0 (значення заголовка хосту)
  • = md0 (Необроблене значення URL-адреси)

Потім він перевіряє, що заголовок Cookie містить підрядок, побудований із цих значень:

  • <r1><h2>=<h3><r2><r3><r0><h0><h1>

Рисунок 2 ілюструє, як збирається цей підрядок. Команди бекдора вбудовано в тіло HTTP, зашифровано AES‑CBC і кодовано base64.

Малюнок 2. Формат запиту HTTP керування IISpy

Малюнок 2. Формат запиту HTTP керування IISpy

Зауважте, що ця структура контрольних запитів є унікальною для IISpy: усі інші відомі бекдори IIS (які ми задокументували в нашому офіційному документі) Анатомія рідного шкідливого програмного забезпечення IIS) контролюються жорстко закодованими паролями, спеціальними URI або спеціальними заголовками HTTP. На відміну від цих «секретів», контрольні запити IISpy важче відбити та знайти в журналах, що є спробою зберегти його зв’язок C&C непоміченим.

Інший такий трюк використовується для іншої сторони спілкування: IISpy вставляє свою зашифровану та кодовану відповідь у фальшиве зображення PNG між заголовками файлів PNG як TEXT or ЛИСТОК шматок. Щоб відповісти на керуючий HTTP-запит, IISpy замінює вихідне тіло відповіді HTTP (надіслане сервером IIS) підробленим файлом PNG і встановлює Content-Type заголовок до image / png щоб надати цій шараді більше довіри.

Обидві сторони зв’язку C&C зашифровані AES-CBC і закодовані base64 із використанням таких параметрів:

  • Ключ шифрування: DA1F8BE19D9122F6499D72B90299CAB080E9D599C57E802CD667BF53CCC9EAB2
  • IV: 668EDC2D7ED614BF8F69FF614957EF83EE

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

З технічної точки зору IISpy реалізовано як рідний модуль IIS – C++ DLL, розгорнуту в %windir%system32inetsrv або %windir%SysWOW64inetsrv папку на зламаному сервері IIS під назвою cache.dll or logging.dll.

IISpy налаштовано як розширення IIS у %windir%system32inetsrvconfigApplicationHost.config файл конфігурації, тому він автоматично завантажується робочим процесом IIS (w3wp.exe), який обробляє всі запити, надіслані до веб-сервера IIS. Що стосується виконання та стійкості, налаштування IISpy як модуля IIS саме по собі перевіряє всі поля – все, що залишилося реалізувати всередині шкідливого модуля, це фактична обробка запиту (і як бонус, кілька трюків проти виявлення та криміналістики ). У цьому розділі ми розглядаємо обидва.

Конструкція модуля

IISpy написаний за допомогою IIS C++ APIі використовує екземпляри IHttpContext, IHttpRequest та IHttpResponse інтерфейси для аналізу запитів HTTP та маніпулювання відповідями HTTP.

Відповідно до вимог усіх власних модулів IIS, він експортує функцію під назвою RegisterModule, де він створює екземпляр своїх основних класів і реєструє їхні методи для подій сервера за допомогою IHttpModuleRegistrationInfo::SetRequestNotifications метод, як показано на малюнку 3.

Рисунок 3. Експорт RegisterModule IISpy

Рисунок 3. Експорт RegisterModule IISpy

Основний клас IISpy успадковується від CHttpModule і, як показано на малюнку 4, перевизначає три його методи – обробники подій для серверних подій:

  • OnBeginRequest викликається кожного разу, коли сервер починає обробляти новий HTTP-запит, і IISpy використовує цей обробник для його аналізу в пошуках запитів зловмисників
  • OnEndRequest, що викликається останнім кроком у HTTP конвеєр обробки запитів, реалізує бекдор-інтерпретатор IISpy
  • OnLogRequest, що викликається безпосередньо перед тим, як сервер IIS реєструє оброблений HTTP-запит, реалізує функцію захисту від журналювання IISpy

IISpy реєструє ці обробники з найвищим пріоритетом (через IHttpModuleRegistrationInfo::SetPriorityForRequestNotification API). Оскільки кілька модулів IIS (зловмисних і звичайних) можуть бути зареєстровані для однієї події, це гарантує, що обробник IISpy буде виконано раніше будь-яких інших обробників, зареєстрованих для тієї самої події.

Рисунок 4. Основний клас IISpy реалізує три обробники подій

Рисунок 4. Основний клас IISpy реалізує три обробники подій

Команди з бекдору

У своїй OnEndRequest обробника, IISpy розшифровує тіло HTTP запиту зловмисника та витягує його параметри, які організовані як пари ключ-значення та перераховані в таблиці 1.

Таблиця 1. Параметри запиту зловмисника IISpy

ключ значення
/режим Тип команди
/дія Command
/шлях
/двійковий
/ data
...
Аргументи команди (повний список див. у таблиці 2)
/credential/ім'я користувача Ім'я користувача локального користувача, яке використовується для імітації
/credential/password Локальний пароль користувача, який використовується для імітації

Якщо облікові дані присутні, IISpy використовує їх для входу як користувач (через LogonUserW, Видавати себе за зареєстрованого користувача) для виконання бекдор-команд у контексті користувача. Команди та аргументи бекдору також організовані як вкладені пари ключ-значення, як зазначено в таблиці 2.

Таблиця 2. Команди та аргументи бекдора IISpy

Тип команди (/режим значення) Команда (/дія значення) Аргументи (імена ключів) Опис команди Повернені дані (структура карти або опис)
ініціалізації N / A N / A Збирає основну системну інформацію: ім’я комп’ютера та домен, ім’я користувача та домен, інформацію про логічні диски. /комп'ютер/домен
/ім'я комп'ютера
/користувач/домен
/ім'я користувача
/-
  /ім'я
  /тип
файл список /шлях Збирає інформацію про файли у вказаній папці. /-
  /ім'я
  /аттр
  / розмір
  /створити
  /доступ
  /написати
отримати /шлях
/двійковий
Завантажує файл із вказаною назвою з зламаного сервера IIS. Вміст файлу, зашифрований і вбудований у фальшиве зображення PNG (заголовок PNG, за яким ідуть дані, не пов’язані з зображенням).
створювати /шлях
/каталог
/ data
Створює новий файл або каталог у вказаному шляху. Додатково / data аргумент може містити вміст файлу. /-
  /файл
  /аттр
  / розмір
  /створити
  /доступ
  /написати
завантажувати /шлях
/ data
Завантажує файл із вказаною назвою на зламаний сервер. The / data запис містить вміст файлу в кодуванні base64. /-
  /файл
  /аттр
  / розмір
  /створити
  /доступ
  /написати
видаляти /шлях
/файли
  /ім'я
  /аттр
Видаляє список файлів/каталогів у вказаному шляху. /файли
  / код
  /ім'я
рухатися /шлях
/дест
/ копія
/файли
  /ім'я
  /новий
Копіює або перейменовує файли зі списку з вихідного каталогу в цільовий каталог. /файли
  / код
  /ім'я
час /шлях
/створити
/доступ
/написати
Змінює позначки часу файлу N / A
управляти карта /лист
/поділитися
/ ім'я користувача
/пароль
Створює зіставлення між локальним і віддаленим диском, використовуючи вказані облікові дані для мережевого ресурсу. N / A
видаляти /лист Видаляє наявне відображення диска N / A
CMD Exec /смд Виконує вказану команду або в контексті поточного користувача, або користувача, указаного в аргументах. Повертає результат команди. / вихід

Після виконання команди бекдора IISpy шифрує та кодує дані, що повертаються, і використовує їх для зміни відповіді HTTP на запит зловмисника. Повернені дані також організовані як пари ключ-значення із записами, переліченими в таблиці 2, а також двома додатковими записами на основі GetLastError результат (або спеціальні повідомлення про помилки):

  • /код помилки
  • /повідомлення про помилку

Функція захисту від реєстрації

Нарешті, IISpy реалізує OnLogRequest обробник подій – викликається безпосередньо перед тим, як сервер IIS реєструє оброблений запит HTTP. Бекдор використовує цей обробник, щоб змінювати записи журналу для запитів, що надходять від зловмисників, щоб вони виглядали як випадкові запити. Як показано на малюнку 5, виконуються такі кроки:

  • Перепишіть метод HTTP в запиті до GET
  • Перепишіть URL із запиту до /
  • Видаліть ці заголовки із запиту: Печиво, Походження, Referer, Режим Sec-Fetch, Sec-Fetch-Site, Content-Type, Зміст-довжина, X-Forwarded-IP, X-Forwarded-For, X-Forwarded-By, X-Forwarded-Proto

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

Рисунок 5. IISpy змінює записи журналу для запитів зловмисників

Рисунок 5. IISpy змінює записи журналу для запитів зловмисників

Висновок

IISpy — це складний бекдор на стороні сервера, який неправильно використовує розширюваність програмного забезпечення веб-сервера IIS для його постійності, виконання та механізмів C&C. Завдяки його хитрощам, щоб злитися зі звичайним мережевим трафіком і очистити викривальні журнали, він розроблений для тривалого шпигунства на скомпрометованих серверах IIS.

Організаціям, які обробляють конфіденційні дані на своїх серверах, слід бути напоготові, наприклад організаціям, у яких на серверах електронної пошти Exchange увімкнуто службу Outlook в Інтернеті (OWA). OWA реалізується через IIS і є цікавою мішенню для шпигунства. У будь-якому випадку, найкращий спосіб уберегти IISpy від ваших серверів — підтримувати їх в актуальному стані та ретельно розглядати, які служби доступні для Інтернету, щоб зменшити ризик використання сервера.

Додаткові технічні відомості про зловмисне програмне забезпечення, індикатори компрометації та правила YARA можна знайти в нашому вичерпному матеріалі біла книга, І на GitHub. З будь-якими запитами або для того, щоб надіслати зразки, пов’язані з темою, зв’яжіться з нами за адресою: prijetintel@eset.com.

Показники компромісу (IoC)

Імена виявлення ESET

Win32/BadIIS.F
Win64/BadIIS.U

SHA-1

22F8CA2EB3AF377E913B6D06B5A3618D294E4331
435E3795D934EA8C5C7F4BCFEF2BEEE0E3C76A54
CED7BC6E0F1A15465E61CFEC87AAEF98BD999E15

Імена файлів

cache.dll
logging.dll

Методи MITER ATT & CK

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

Тактика ID ІМ'Я Опис
Розвиток ресурсів T1587.001 Розвивайте можливості: шкідливі програми IISpy — це сімейство зловмисних програм, створене на замовлення.
T1588.002 Отримати можливості: Інструмент Оператори IISpy використовували Juicy Potato, локальний інструмент ескалації привілеїв.
Початковий доступ T1190 Використовуйте програму для відкритого доступу IISpy, ймовірно, отримує свій початковий доступ до сервера IIS через певну вразливість у веб-програмі або на сервері, перш ніж він використовує інструмент підвищення привілеїв Juicy Potato для отримання адміністративних привілеїв, необхідних для встановлення рідного модуля IIS.
Виконання T1059.003 Інтерпретатор команд та сценаріїв: командна оболонка Windows IISpy підтримує бекдор-команду, яка використовує командну оболонку Windows для виконання команд оболонки на скомпрометованому сервері IIS.
T1569.002 Системні послуги: Виконання послуг Сервер IIS (і за розширенням IISpy) зберігається як служба Windows.
Наполегливість T1546 Виконання, ініційоване подією IISpy завантажується робочим процесом IIS (w3wp.exe), коли сервер IIS отримує вхідний запит HTTP.
Ескалація привілеїв T1068 Експлуатація для ескалації привілеїв Оператори IISpy використовували локальний інструмент ескалації привілеїв Juicy Potato для підвищення привілеїв.
Ухилення від захисту T1134.001 Маніпулювання токеном доступу: уособлення/крадіжка токена IISpy має можливість виконувати бекдор-команди в контексті іншого користувача (через LogonUserW, PersonateLoggedOnUser).
T1070 Видалення індикатора на хості IISpy має можливість очистити протоколювання запитів зловмисників на сервері IIS.
T1070.006 Видалення індикатора на хості: відмітка часу IISpy підтримує бекдор-команду для зміни позначок часу файлу.
COLLECTION T1005 Дані з локальної системи IISpy підтримує бекдор-команду для збору та вилучення файлів із скомпрометованого сервера IIS.
Управління та контроль T1071.001 Протокол прикладного рівня: веб -протоколи IISpy — це пасивний мережевий імплантат: зловмисники надсилають HTTP-запити на скомпрометований сервер IIS, щоб контролювати бекдор.
T1001 Захоплення даних Оператори IISpy надсилають команди зі спеціально створеною комбінацією URL-адрес, заголовків хосту та файлів cookie.
IISpy вилучає дані у фальшивому файлі PNG (заголовок PNG, за яким ідуть дані, що не є зображеннями), намагаючись зробити свій C&C трафік схожим на звичайний мережевий трафік.
T1132.001 Кодування даних: Стандартне кодування IISpy кодує зв’язок C&C за допомогою кодування base64.
T1573.001 Зашифрований канал: Симетрична криптографія IISpy використовує AES-CBC для шифрування зв’язку C&C.
T1105 Передача вхідного інструменту IISpy підтримує бекдор-команду для завантаження додаткових інструментів на скомпрометований сервер IIS.
ексфільтраціі T1041 Ексфільтрація по каналу С2 IISpy підтримує бекдор-команду для вилучення даних і файлів із скомпрометованого сервера IIS.

Джерело: https://www.welivesecurity.com/2021/08/09/iispy-complex-server-side-backdoor-antiforensic-features/

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

Більше від WeLiveSecurity