Хабрахабр

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

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

XLM-макросы

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

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

image

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

image

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

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

image

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

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

image

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

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

Далее видно, что 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

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

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

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

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

image

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

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

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

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

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

image

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

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

VBA Stomping

Суть техники заключается в удалении/модификации (как вариант заполнении нулями) исходного кода VBA в теле офисного документа, оставляя нетронутым скомпилированный код макроса, называемый p-кодом. На конференции Derbycon 2018 была представлена техника запуска VBA-макросов в документах Office, получившая название VBA Stomping. 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-решения, почтовые шлюзы).
Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть