Pull to refresh
107.3
Инфосистемы Джет
российская ИТ-компания

Нестареющая классика, или обзор новых векторов атак через Microsoft Office

Reading time4 min
Views15K

image
Хакеры десятилетиями эксплуатируют человеческую доверчивость и невнимательность. Большинство пользователей без раздумий открывают безобидное, на первый взгляд, почтовое вложение и, сами того не зная, запускают вредоносное ПО. Чтобы защититься от подобных атак, нужно знать врага в лицо. Сегодня мы попробуем разобраться, как устроены три новые техники выполнения кода в офисных приложениях, обнаруженные в этом году, и какие способы защиты от них существуют.


XLM-макросы


Эксперты компании Outflank представили новый способ запуска кода в MS Office Excel через так называемые XLM-макросы (не путать с XML). Хотя технологии XLM-макросов уже больше 26 лет (впервые появились в Excel 4.0 для Windows 3.0/3.1), она до сих пор поддерживается всеми версиями Microsoft Office Excel вплоть до Office 2016.


Для создания XLM-макроса в Excel необходимо выполнить следующие шаги:
В контекстном меню листа Excel выбрать «Insert».


image


Далее выбрать «MS Excel 4.0».


image


В результате появится лист «Macro1», в любой ячейке которого посредством функции «EXEC» можно запустить нужный процесс. Для автоматического запуска макроса первую ячейку необходимо переименовать в «Auto_open» (аналогично процедуре AutoOpen() в VBA-макросах).


После открытия сохраненного документа появляется стандартное оповещение с запросом на запуск макроса.


image


Лист с макросом можно скрыть, выбрав «Hide» в контекстном меню.


Помимо возможности запуска процессов, XLM-макросы умеют обращаться к Win32 API с помощью функций REGISTER и CALL. Ниже приведен PoC-код макроса, осуществляющего технику внедрения шелл-кода.


image


При этом для хранения символов шелл-кода внутри ячейки макроса используется функция кодирования CHAR. Для удаления нулевых байтов можно воспользоваться утилитой msfvenom, входящей в состав Metasploit Framework.


По способу хранения внутри файла Excel XLM-макросы существенно отличаются от классических VBA-макросов, появившихся годом позднее в Excel 5.0. В новом формате Excel .xlsm, который представляет собой ZIP-архив, XLM-макросы хранятся внутри XML-файла в каталоге macrosheets. В формате .xsl (Excel 97 – 2003) макрос хранится внутри OLE-потока.


Далее видно, что VBA-макрос хранится в отдельном контейнере (на рисунке слева), в то время как XLM-макросы расположены в одном контейнере с данными.


image


Данные различия в способах хранения макросов существенно сказываются на качестве их детектирования антивирусами, в частности, технология Antimalware Scanning Interface (AMSI) не поддерживает XLM, несмотря на заявленную поддержку со стороны Office 365.


К примеру, Metasploit powershell web_delivery код был внедрен в Excel средствами VBA- и XLM-макросов (на рисунках ниже).


image


image


На Virustotal документ Excel с VBA-макросом вызвал срабатывания 21 из 59 антивирусов.


image


При этом аналогичный документ с XLM-макросом не вызвал подозрений ни у одного антивируса.


image


Демонстрация
Выполнение кода через XLM-макросы в Office



Microsoft Office Online Video


Командой исследователей Cumulate был обнаружен новый способ выполнения кода в Word через вставку видео средствами Online Video. Используя данный элемент, можно добавить в документ видео с YouTube, далее подменить ссылку на него кодом JavaScript, который будет выполнен в Internet Explorer при открытии документа и клике на видео. Наиболее подходящими при проведении социальной инженерии выглядят следующие векторы:


  • Добавление в iframe с YouTube-роликом кода эксплойта для IE/Flash.
  • Добавление в iframe с YouTube-роликом JavaScript-кода с методом msSaveOrOpenBlob, посредством которого будет предложено скачать и запустить вредоносный файл. Тело файла содержится внутри JavaScript в base64.

Для создания файла с расширением docx. с описанной нагрузкой необходимо выполнить следующие шаги:


1.Добавить YouTube-видео через «Insert – Online Video».


image


2.Сохранить созданный docx-файл.


3.Разархивировать сохраненный docx. Формат docx. представляет собой zip-архив следующего содержания:
image


4.В каталоге Word в файле document.xml в элементе embeddedHtml добавить свой JavaScript-код путем его вставки в тело iframe либо путем замены соответствующей ссылки (src) в iframe.


5.Сформировать zip-архив (с расширением docx) с внесенными изменениями.


Далее при открытии сформированного docx-файла от пользователя требуется кликнуть по ссылке на видео и запустить скачанный файл. Как вариант можно вывести скриншот с предложением обновить Flash Player, побуждающий пользователя скачать и запустить файл. При этом никаких предупреждений безопасности не выводится.


image


Как и в случае с XLM-макросами, данная техника выполнения кода не детектируется ни одним антивирусом на Virustotal и выглядит очень привлекательной для вирусописателей, а также распространена при проведении социальной инженерии в рамках тестирования на проникновение.


Демонстрация
Выполнение кода через Online Video в Office



VBA Stomping


На конференции Derbycon 2018 была представлена техника запуска VBA-макросов в документах Office, получившая название VBA Stomping. Суть техники заключается в удалении/модификации (как вариант заполнении нулями) исходного кода VBA в теле офисного документа, оставляя нетронутым скомпилированный код макроса, называемый p-кодом. VBA-код, как и его скомпилированная версия, располагаются внутри файла vbaProject.bin, находящегося в zip-архиве (файл с расширением .docm, .xslm).


image


Таким образом, техника сводится к удалению/заполнению нулями части файла vbaProject.bin.


image


В результате документ не вызывает подозрений у антивирусов, анализирующих макрос только по его исходному коду. Например, с помощью этой техники исследователям удалось снизить количество срабатываний антивирусов на банковский троян Emotet, распространяющийся через офисные файлы, с 36/59 до 7/58 на Virustotal.


image


image


Также данная техника позволяет затруднить анализ файла, поскольку ни один инструмент, не прибегая к декомпиляции, не сможет извлечь исходный код VBA, который также не будет отображаться в редакторе макросов Office до его разрешения.


Защита


Рекомендации по противодействию описанным техникам традиционны для защиты от методов социальной инженерии:


  1. Повышение осведомленности сотрудников по части вопросов информационной безопасности.
  2. Запрет использования макросов в Microsoft Office.
  3. Комплексный подход к обеспечению информационной безопасности, включающий использование Endpoint-решений, а также периметровых средств защиты (next generation firewalls, UTM-решения, почтовые шлюзы).
Tags:
Hubs:
Total votes 46: ↑45 and ↓1+44
Comments9

Articles

Information

Website
jet.su
Registered
Founded
1991
Employees
1,001–5,000 employees
Location
Россия