Пригоди невловимої малварі, частина II: приховані VBA-скрипти

Пригоди невловимої малварі, частина II: приховані VBA-скрипти

Ця стаття є частиною серії "Fileless Malware". Всі інші частини серії:

Я шанувальник сайту гібридного аналізу (hybrid analysis, далі HA). Це свого роду зоопарк шкідливих речовин, де ви можете спокійно спостерігати за дикими «хижаками» з безпечної відстані, не наражаючись на напад. HA запускає шкідливе програмне забезпечення в безпечних середовищах, записує системні виклики, створювані файли та інтернет-трафік, і виводить вам усі ці результати для кожного зразка, що аналізується. Таким чином, ви можете не витрачати свій час і сили, самостійно розгадуючи заплутаний код, а відразу ж зрозуміти всі хакерські наміри.

Приклади HA, які привернули мою увагу, використовують або закодований JavaScript або скрипти Visual Basic для Програм (VBA), вбудовані як макрос у документи Word або Excel, і прикладені до фішингових листів. При відкритті макроси запускають сеанс PowerShell на комп'ютері жертви. Хакери зазвичай відправляють PowerShell потік команд в кодуванні Base64. Це все зроблено для того, щоб зробити атаку важкою для виявлення веб-фільтрами та антивірусним програмним забезпеченням, що реагують на певні ключові слова.
На щастя, HA автоматично декодує Base64 і відразу показує все у вигляді, що читається. По суті, вам не потрібно фокусуватися на тому, як ці сценарії працюють, тому що ви зможете бачити повний висновок команд для процесів, що запускаються у відповідному розділі HA. Див. приклад нижче:

Пригоди невловимої малварі, частина II: приховані VBA-скрипти

Гібридний аналіз перехоплює команди, закодовані в Base64, що надсилаються до PowerShell:

Пригоди невловимої малварі, частина II: приховані VBA-скрипти

…і потім декодує їх для вас. #Чарівно

В попередньому пості я створив власний злегка обфусцированный JavaScript контейнер для запуску сеансу PowerShell. Потім мій сценарій, як і багато шкідливих програм на основі PowerShell, завантажує наступний сценарій PowerShell з віддаленого веб-сайту. Тоді як приклад я завантажував нешкідливий PS, який друкує повідомлення на екрані. Але часи змінюються і тепер я пропоную ускладнити сценарій.

PowerShell Empire та Зворотний Шелл

Одна з цілей цієї вправи, показати, як (щодо легко хакер може обійти класичні засоби захисту периметра та антивіруси). Якщо ІТ-блогер без навичок програмування, такий як я, за пару вечорів може створити невиявлений шкідливість (fully undetected, FUD), уявіть собі можливості зацікавленого у цьому юного хакера!

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

Хакери мріють отримати прямий доступ до ноутбука чи сервера жертви. Зробити це дуже просто: все, що потрібно хакеру – отримати кілька конфіденційних файлів на ноутбуці генерального директора.

Якось я вже писав про пост-експлуатаційне середовище виконання PowerShell Empire. Згадаймо, що це таке.

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

Давайте проведемо невеликий досвід. Я налаштував безпечне середовище для тестування шкідливих програм у хмарі Amazon Web Services. Ви можете наслідувати мій приклад, щоб швидко і безпечно показати працюючий приклад даної вразливості (і не бути звільненим за запуск вірусів усередині периметра підприємства).

Якщо ви запустите консоль PowerShell Empire, побачите приблизно таке:

Пригоди невловимої малварі, частина II: приховані VBA-скрипти

Спочатку ви запускаєте процес listener на вашому хакерському комп'ютері. Введіть команду «listener» і вкажіть IP-адресу вашої системи за допомогою «set Host». Потім запустіть процес listener командою "execute" (нижче). Таким чином ви запустите зі свого боку очікування мережного з'єднання від віддаленого шеллу:

Пригоди невловимої малварі, частина II: приховані VBA-скрипти

Для іншого боку вам потрібно буде згенерувати агентський код, ввівши команду "launcher" (див. нижче). Це згенерує PowerShell код для віддаленого агента. Зверніть увагу, що він кодується в Base64, і є другою фазою корисного навантаження. Іншими словами, мій JavaScript-код тепер витягне цього агента для запуску PowerShell замість невинного виведення тексту на екран і підключиться до нашого віддаленого PSE-сервера для запуску зворотного шелла.

Пригоди невловимої малварі, частина II: приховані VBA-скрипти
Магія зворотного Шелла. Ця закодована команда PowerShell з'єднається з моїм літера і запустить віддалену оболонку.

Щоб показати вам цей експеримент, я взяв на себе роль безневинної жертви і відкрив Evil.doc, тим самим запустивши JavaScript. Пам'ятаєте першу частину? PowerShell був налаштований так, щоб вікно не спливало, тому жертва не помітить нічого незвичайного. Тим не менш, якщо ви відкриєте Диспетчер завдань Windows, ви побачите фоновий процес PowerShell, який все одно у більшості не викликає ніякої тривоги. Тому що це звичайний PowerShell, чи не так?

Пригоди невловимої малварі, частина II: приховані VBA-скрипти

Тепер, коли ви запускаєте Evil.doc, прихований фоновий процес буде підключатися до сервера PowerShell Empire. Надягши білий капелюх хакера-пентестера, я повернувся в консоль PowerShell Empire, і тепер бачу повідомлення, що мій віддалений агент активний.

Пригоди невловимої малварі, частина II: приховані VBA-скрипти

Потім я ввів команду interact, щоб відкрити оболонку в PSE - і ось він я! Коротше кажучи, я зламав сервер Taco, який сам і колись налаштував.

Пригоди невловимої малварі, частина II: приховані VBA-скрипти

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

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

Повернімося до реальності

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

Шкідлива програма, яку я зрештою знайшов на HA, це скрипт VBA, який був вбудований у документ Word. Тобто мені не потрібно навіть підробляти розширення doc, це шкідливе ПЗ дійсно звичайнісінький на вигляд документ Microsoft Word. Якщо вам цікаво, то я вибрав цей зразок, званий rfq.doc.

Я швидко дізнався, що часто ви не зможете безпосередньо витягти з документа шкідливі сценарії VBA. Хакери стискають і ховають їх, і вони не видно у вбудованих макро-інструментах Word. Вам знадобиться спеціальний інструмент його вилучення. На щастя, я натрапив на сканер OfficeMalScanner Френка Болдуїна. Дякую тобі, Френку.

Використовуючи цей інструмент, я зміг витягнути VBA. Він виглядав якось так:

Пригоди невловимої малварі, частина II: приховані VBA-скрипти
Обфускацію було зроблено професіоналами своєї справи. Я був вражений!

Нападники дійсно хороші у заплутуванні коду, не те, що мої зусилля у створенні Evil.doc. Ну і гаразд, в наступній частині ми дістанемо наші відладники VBA, трохи заглибимося в цей код і порівняємо наш аналіз із результатами HA.

Джерело: habr.com

Додати коментар або відгук