Статья Выполнение макросов из .docx файлов с удаленной инъекцией шаблона

В этом посте я хочу поговорить и показать метод выполнения кода, который был показан мне не так давно. Этот метод позволяет создать документ .DOCX, который загрузит и позволит пользователю выполнять макросы с помощью удаленного файла шаблона .DOTM. Эта атака частично входит в открытое наступление инструменты безопасности(линк я удалил), как уже рассказывали Циско Талос, в блоге и инструменте с открытым исходным кодом он рассматривается только как атака кражи учетных данных, обычно по протоколу SMB. В этом блоге будет подробно рассказано, как использовать этот метод для загрузки шаблона с поддержкой макросов по HTTP(S) в методе, поддерживающем прокси, в документ .DOCX .

Преимущество этой атаки по сравнению с обычным документом с поддержкой макросов много. При выполнении фишинг-атаки против цели, вы можете прикрепить .docx непосредственно на электронную почту, и ваш файл вряд ли заблокируют на основе расширения файла. Многие организации блокируют .doc или .docm , но разрешают .docx, потому что они не должны содержать макросы.

Другая причина, по которой эта атака будет чаще получаться, заключается в том, что само вложение не содержит вредоносного кода. Сам макрос не виден никакими статическими блоками развертки электронной почты. В случае, если цель использует sandbox для "детонирования" вложений электронной почты, можно использовать различные методы уклонения от sandbox, такие как правила modrewrite или ограничение IP-адреса, чтобы предотвратить возможность извлечения вредоносного шаблона.

Чтобы начать атаку, нам нужно создать два разных файла. Первым будет шаблон с поддержкой макросов, или .dotm-файл, который будет содержать вредоносный макрос VBA. Второй будет, казалось бы, добрый .docx файл, который не содержит сам вредоносный код, только ссылку, которая указывает на ваш вредоносный файл шаблона.

В своих блогах и тренингах, которые я предоставляю другим, я стремлюсь показать примеры, используя бесплатные и открытые инструменты. Я делаю это, потому что я хочу, чтобы те, кто читает этот блог, мог попробовать его самостоятельно, и не хочу заставлять людей покупать коммерческие инструменты. По этой причине, я пройдусь по всем шагам для создания удаленного шаблона документа для выполнения пэйлоада PowerShell Empire . Чтобы придерживаться цели этого поста, я не буду подробно описывать, как создать листенер или макрос в Empire здесь. Есть много учебников там о том, как это сделать уже есть. Я просто пройдусь по созданию документов для выполнения макроса.

Для того, чтобы эта атака работала, нам нужно создать шаблон ворда с включенными макросом (.dotm расширение файла), который содержит наш вредоносный макрос Империи. Откройте Word и поставьте галочку на Developer:


2.png


Затем откройте редактор Visual Basic во вкладке Developer и дважды щелкните на элемент ThisDocument в текущем проекте, чтобы открыть окно кода. Вставьте код макроса в это окно:

3.png


Дайте шаблону имя и сохраните файл как a .dotm формата. Обратите внимание, что имя обычно видно пользователю, поэтому я рекомендую что-то, доброкачественное, такое как ‘InvoiceTemplate.dotm’.

Поскольку я просто использую макрос по умолчанию из PowerShell Empire, он быстро ловится windows defender, поэтому я собираюсь отключить его для демонстрации. Если ваша цель использует windows defender, вам нужно будет выбрать другой инструмент или выполнить обфускацию, пока вы не сможете получить рабочий макрос.

На данный момент, я, как правило, хочу проверить мой шаблон и макрос, просто дважды нажав на документ, убеждаюсь, что я получаю кнопку "enable content" и что я получаю агент, когда я нажимаю на нее.


5.png

6.png

Это работает!

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


7.png


Измените документ по мере необходимости, чтобы соответствовать вашему сценарию фишинга, чтобы ваш пользователь мог нажать кнопку "Enable Content". Сохраните документ в .docx формате.

Затем найдите документ и щелкните правой кнопкой мыши и переименуйте расширение в документе из .docx в .zip. Извлеките содержимое zip-файла в папку и перейдите к этой папке.

Примечание: с выпуском Office 2007, Microsoft представила форматы, которые заканчиваются буквой " х ". Каждый из этих форматов просто zip файлы, содержащие в основном .xml and .rel файлы. Можно вручную отредактировать документ и его свойства, изменив эти файлы, а затем повторно сжать содержимое.

Перейдите к ‘.\word\_rels\’ и откройте ‘settings.xml.rels’ с помощью текстового редактора, такого как блокнот.


8.png


В теге, содержащий тип с attachedTemplate будет параметр, который говорит ворду, откуда скачивать шаблон, при открытии этого .docx файла. В настоящее время шаблон загружается из локальной файловой системы.

9.png


Ключ в том, что это значение будет принимать веб-URL. Мы можем изменить значение, чтобы оно было удаленным. В этом случае я размещу свой документ с поддержкой макросов на GitHub.

10.png


После того, как мы сохраним этот файл, мы можем заархивировать содержимое и переименовать файл обратно в a.docx. В следующий раз, когда мы откроем наш .docx, мы можем видеть, что файл скачивается через HTTPS c нашего хостинга для загрузки шаблона.

11.png


А теперь наш .docx файл имеет макрос, загруженный в него, давайте запустим наш макрос.

12.png


Появляется новое всплывающее окно для пользователя, но это не влияет на пэйлоад. Это связано только с тем, что .docx файлы не предназначены для хранения макросов. Если пользователь нажимает "Enable Content" или имеет макросы, настроенные для автоматического запуска, то мы получаем нашего агента.

13.png


Теперь подготовьте свой фишинг, отправьте .docx к пользователю, и ждите обратного вызова!
Источник: .
 
Последнее редактирование модератором:

Apton

Green Team
17.04.2017
40
140
BIT
0
Хороший материал, спасибо! Частичный разбор вот этотой , немного не успел с ней разобраться.
 
Последнее редактирование:

Apton

Green Team
17.04.2017
40
140
BIT
0
В 2007 офисе не работает... Функция AutoOpen() автоматически блокируется Trust Center, макрос будет выполнен только в том случае, если в настройках Trust Center будет выставлена галочка Enable all macros. Поэтому, к сожалению, не очень рабочий метод. Эх....
 
Последнее редактирование:
M

mirolub

Оч познавательно шрифт нормальный , но не полностью раскрыто .Продолжение в студию.
 

ONX

Green Team
03.02.2017
19
4
BIT
0
Ну это понятное дело, что не в 2007. Просто проблема России в том, что 2007 офис является самым распространенным продуктом.
ну во первых это не так, судя по большей статистике с логов офис 2007 уже не преобладает, во вторых макросы отключены по умолчанию у любого офиса, и нужно чтоы бы клиент обязательно тыкнул в разблокировку, так что тут неважно какая версия, и в третьих почему именно речь про Россию, не благое дело по РФ работать...
 
  • Нравится
Реакции: moor

Apton

Green Team
17.04.2017
40
140
BIT
0
почему именно речь про Россию, не благое дело по РФ работать...
В смысле не благое, как поднимать уровень ИБ на предприятиях РФ тогда?
во вторых макросы отключены по умолчанию у любого офиса
А это и ежу понятно, вот что выдает 2007 оффис
Error.png

После нажатия "ОК" в документе попадает присутствие макроса.
 

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Оч познавательно шрифт нормальный , но не полностью раскрыто .Продолжение в студию.
Вроде все раскрыто тк.к вас проверили от создания такого документа до получения агента, почему вы считаете что не раскрыто?
 

ONX

Green Team
03.02.2017
19
4
BIT
0
В смысле не благое, как поднимать уровень ИБ на предприятиях РФ тогда?

А это и ежу понятно, вот что выдает 2007 оффис
Посмотреть вложение 20613
После нажатия "ОК" в документе попадает присутствие макроса.
Я всего лишь вижу что у вас практики мало, когда вы пишите что в 2007 не работает и за того что нужно жать ОК, я вам и написал что жать окей нужно во всех версиях офиса, а метод очень даже рабочий, с 1000 разосланных писем, хорошо составленных, хавают метод от 20-до 100 людей, это круче чем какая либо связка для пробива
 

Genius1oci

Green Team
09.05.2018
45
39
BIT
0
Думаю, что было бы круто добавить обфускацию. Многим будет интересно.
 

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Думаю, что было бы круто добавить обфускацию. Многим будет интересно.
Если вы имели ввиду обфускацию макроса, то есть специальные инструменты для этого, например unicorn .
PS Так же можете выучить Visual Basic и проводить обфускацию самостоятельно.
 

Genius1oci

Green Team
09.05.2018
45
39
BIT
0
Нет, это понятно. Я имею ввиду добавить в статью. Было бы интересно посмотреть решение участников. Хотя, тут тянет на отдельную ветку. За статью, спасибо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!