Microsoft Office – это распространенное приложение, которое разворачивается в каждой организации.
Его широкое использование превращает офис в инструмент, который можно использовать для выполнения атак, которые позволят красной команде собирать хэши домена или выполнять произвольный код.
Исторически выполнение кода в офисе Microsoft выполнялось с использованием макросов.
Однако SensePost обнаружил другой способ выполнения произвольного кода с использованием протокола DDE (Dynamic Data Exchange).
В продуктах офиса есть разные места, где выполнение кода принимается через DDE, и эта статья продемонстрирует большинство этих векторов атаки.
Статья DDE Payloads может использоваться вместе с этим постом для производства пэйлоадов.
Word
В Microsoft Word самым простым способом является вставка кода в поля, как он был описан в исходном сообщении SensePost, и вставить полезную нагрузку внутри формулы.
Insert-> Quick Parts-> Field
Добавление следующего пэйлоада в скобках приведет к появлению некоторого диалогового окна при следующем открытии файла.
Если пользователь выбирает параметр «Yes», полезная нагрузка будет выполнена.
{DDEAUTO c:\\windows\\system32\\cmd.exe "/k calc.exe"}
В качестве альтернативы можно использовать макрос, чтобы вставить пэйлоад в поле кода, как описано в блоге Пол Ричи.
''' Programmatically inserts a new field code into a word document at the current selection index. ''' This is of type "wdFieldDDEAuto" which is a field code which executes Dynamic Data Exchange (DDE) ''' When the document is opened. This includes an example PoC which launches calc.exe Public Sub FieldCodeFun() ' Payload String Dim payload As String payload = """c:\\windows\\system32\\calc.exe"" ""/c calc.exe""" ' Insert our payload as a field code Selection.Collapse Direction:=wdCollapseEnd ActiveDocument.Fields.Add Range:=Selection.Range, _ Type:=wdFieldDDEAuto, Text:=payload End Sub
Пэйлоад будет просто выполнять калькулятор, но он может быть изменен, чтобы содержать любую другую полезную нагрузку.
Майк Чумак сделал большое открытие, которое было обсуждено в его блоге относительно загрузки вредоносного DDE из другого документа Word, который находится снаружи.
Код поля INCLUDE может использоваться с этим вектором атаки в сочетании с внешним URL-адресом.
Excel
В Microsoft Excel DDE пэйлоад может быть использован с использованием формул.
Следующие две формулы будут выполнять код (калькулятор в этом случае) со второй формулой, чтобы обмануть сообщение диалогового окна, чтобы сделать его более легитимным.
=cmd|'/c calc.exe'!A1 =MSEXCEL|'\..\..\..\Windows\System32\cmd.exe /c calc.exe'!''
Появится следующее диалоговое окно, когда пользователь откроет вредоносную электронную таблицу Excel.
Вторая формула по-прежнему будет выполнять код, но сообщение в диалоговом окне будет изменено, и вместо того, чтобы попросить пользователя запустить CMD.EXE, он попросит его запустить MSEXCEL.exe.
Outlook
В Outlook существуют различные места, где может выполняться пэйлоад DDE.
В зависимости от ситуации каждый метод может быть полезен.
Например, если были получены учетные данные домена, было бы легче набрать электронное сообщение и отправить нескольким другим пользователям, чтобы получить больше оболочек внутри организации.
Сообщение
Отправка сообщения Outlook, содержащего DDE, также может автоматически выполнять код.
То же самое относится и к сообщениям электронной почты, которые отправляются в виде вложений.
Однако сообщение электронной почты должно быть отправлено в формате RTF и доставлено как RTF, поскольку некоторые почтовые службы преобразуют все электронные письма в HTML, что сделает пэйлоад DDE неработоспособным.
Когда сообщение поступит во входящий почтовый ящик пользователя, DDE будет выполняться при просмотре в этом сообщении.
Контакт
Приглашение в календаре
Эта же концепция применяется и через приглашения по календарю.
Отправка приглашения на собрание с помощью пэйлоада DDE приведет к выполнению кода, если пользователь повзаимодействует с этим приглашением (откроет или отменит).
Полезные ссылки
- https://medium.com/red-team/dde-payloads-16629f4a2fcd
- http://staaldraad.github.io/2017/10/23/msword-field-codes/
- http://willgenovese.com/office-ddeauto-attacks/
- https://www.secarma.co.uk/labs/is-dynamic-data-exchange-dde-injection-a-thing/
¯\_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.