Другий у нашій серії про загрози 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 його законними відвідувачами – звичайно, вони все ще обробляються доброякісними серверними модулями.
Мережевий зв’язок
Запити на керування від операторів IISpy мають попередньо визначену структуру з певним (прихованим) зв’язком між Печиво та Господар заголовки та URL-адресу. Щоб ідентифікувати такі запити, IISpy спочатку обчислює хеш MD5 як URL-адреси, так і Господар заголовок вхідного запиту HTTP та розбиває кожен MD5 на чотири подвійні слова:
- = md0 (значення заголовка хосту)
- = md0 (Необроблене значення URL-адреси)
Потім він перевіряє, що заголовок Cookie містить підрядок, побудований із цих значень:
- <r1><h2>=<h3><r2><r3><r0><h0><h1>
Рисунок 2 ілюструє, як збирається цей підрядок. Команди бекдора вбудовано в тіло HTTP, зашифровано AES‑CBC і кодовано base64.
Зауважте, що ця структура контрольних запитів є унікальною для 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 у
Конструкція модуля
IISpy написаний за допомогою IIS C++ APIі використовує екземпляри IHttpContext, IHttpRequest та IHttpResponse інтерфейси для аналізу запитів HTTP та маніпулювання відповідями HTTP.
Відповідно до вимог усіх власних модулів IIS, він експортує функцію під назвою RegisterModule, де він створює екземпляр своїх основних класів і реєструє їхні методи для подій сервера за допомогою IHttpModuleRegistrationInfo::SetRequestNotifications метод, як показано на малюнку 3.
Основний клас IISpy успадковується від CHttpModule і, як показано на малюнку 4, перевизначає три його методи – обробники подій для серверних подій:
- OnBeginRequest викликається кожного разу, коли сервер починає обробляти новий HTTP-запит, і IISpy використовує цей обробник для його аналізу в пошуках запитів зловмисників
- OnEndRequest, що викликається останнім кроком у HTTP конвеєр обробки запитів, реалізує бекдор-інтерпретатор IISpy
- OnLogRequest, що викликається безпосередньо перед тим, як сервер IIS реєструє оброблений HTTP-запит, реалізує функцію захисту від журналювання IISpy
IISpy реєструє ці обробники з найвищим пріоритетом (через IHttpModuleRegistrationInfo::SetPriorityForRequestNotification API). Оскільки кілька модулів IIS (зловмисних і звичайних) можуть бути зареєстровані для однієї події, це гарантує, що обробник 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
За допомогою змінених таким чином записів журналу зловмисники намагаються ще більше приховати сліди своєї зловмисної діяльності, ускладнюючи потенційний криміналістичний аналіз.
Висновок
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. |
- 2020
- 7
- доступ
- активний
- діяльності
- Додатковий
- ВСІ
- аналіз
- анатомія
- API
- додаток
- аргументація
- закулісний
- КРАЩЕ
- тіло
- Канада
- Перевірки
- майбутній
- загальний
- Комунікація
- зміст
- зміст
- cookie
- печиво
- Повноваження
- Поточний
- дані
- Виявлення
- відкритий
- ПОВЕРНЕНО
- шпигунство
- Event
- Події
- обмін
- виконання
- експорт
- експорт
- Виписки
- підроблений
- сімей
- сім'я
- ознаками
- риси
- Рисунок
- Перший
- формат
- Повний
- функція
- Group
- керівництво
- мішанина
- приховувати
- тримати
- Як
- How To
- HTTPS
- ідентифікувати
- зображення
- інформація
- інтернет
- IT
- липень
- ключ
- обмеженою
- список
- місцевий
- Довго
- шкідливих програм
- Маніпуляція
- карта
- Microsoft
- Імена
- Нідерланди
- мережу
- мережевий трафік
- порядок
- Інше
- прогноз
- Папір
- Пароль
- Паролі
- наполегливість
- картина
- представити
- Сировина
- зменшити
- ресурс
- відповідь
- Умови повернення
- зворотний
- Risk
- Правила
- Пошук
- безпеку
- Програмне забезпечення безпеки
- Серія
- Послуги
- Склад
- невеликий
- So
- Софтвер
- Рішення
- Підтриманий
- Опори
- система
- Мета
- технічний
- Нідерланди
- Джерело
- загрози
- час
- знак
- трафік
- us
- USA
- значення
- видимість
- вразливість
- Web
- Веб-сервер
- біла книга
- windows
- в
- слова