Information Security Club | Клуб Информационной Безопасности — Stay Safe!
Добро пожаловать в Клуб Информационной Безопасности! Если Вы здесь впервые, то зарегистрируйтесь и прочитайте правила клуба. Если Вы забыли пароль, то перейдите по ссылке, после чего Вы сможете восстановить его через электронную почту. Помните, что некоторые возможности и разделы форума для гостей недоступны, рекомендуется пройти авторизацию.

Welcome to Information Security Club! You can change the website language to English here. If you are here for the first time, please, register and read forum rules. If you forgot your password follow this link to restore it by email. Remember, some facilities and forum nodes for guests are not available, it's highly recommended to pass authorization.

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

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

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».



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



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

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



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

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


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

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

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


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

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





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



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


Демонстрация

Выполнение кода через 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».



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

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

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

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

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



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

Демонстрация

Выполнение кода через Online Video в Office



VBA Stomping

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


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


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




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

Защита

Рекомендации по противодействию описанным техникам традиционны для защиты от методов социальной инженерии:
  1. Повышение осведомленности сотрудников по части вопросов информационной безопасности.
  2. Запрет использования макросов в Microsoft Office.
  3. Комплексный подход к обеспечению информационной безопасности, включающий использование Endpoint-решений, а также периметровых средств защиты (next generation firewalls, UTM-решения, почтовые шлюзы).
 

Top Bottom