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

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

@webware

t.me/webware

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


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


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


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


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


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

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

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


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


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

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


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

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


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


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


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

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

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

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

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

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

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

Источник codeby.net

Report Page