ది అడ్వెంచర్స్ ఆఫ్ ది ఎలుసివ్ మాల్వేర్, పార్ట్ IV: DDE మరియు వర్డ్ డాక్యుమెంట్ ఫీల్డ్స్

ది అడ్వెంచర్స్ ఆఫ్ ది ఎలుసివ్ మాల్వేర్, పార్ట్ IV: DDE మరియు వర్డ్ డాక్యుమెంట్ ఫీల్డ్స్

ఈ కథనం ఫైల్‌లెస్ మాల్వేర్ సిరీస్‌లో భాగం. సిరీస్‌లోని అన్ని ఇతర భాగాలు:

В этой статье я собирался погрузиться в еще более сложный многоэтапный cценарий безфайловой атаки с закреплением в системе. Но тут я наткнулся на невероятно простую атаку без кода — не требуется никаких макросов Word или Excel! И это гораздо более эффективно доказывает мою изначальную гипотезу, лежащую в основе этой серии статей: преодолеть внешний периметр любой организации – совсем несложная задача.

Первая атака, которую я опишу, использует уязвимость Microsoft Word, которая основана на устаревшем протоколе динамического обмена данными (DDE). Она уже была స్థిర. Вторая использует более общую уязвимость в Microsoft COM и возможности передачи объектов.

Назад в будущее с DDE

Кто-нибудь еще помнит DDE? Вероятно, немногие. Это был один из первых протоколов взаимодействия между процессами, который позволял приложениям и устройствам передавать данные.

Я сам немного знаком с ним, потому что раньше я проверял и тестировал телеком-оборудование. В то время DDE позволял, например, передавать для операторов колл-центров идентификатор звонящего абонента в CRM приложение, которое в конечном итоге открывало карточку клиента. Для этого вы должны были подключить кабель RS-232 между телефоном и компьютером. Вот были деньки!

Как оказалось, Microsoft Word все еще మద్దతు ఇస్తుంది DDE.

Что делает эту атаку эффективной без кода, так это то, что вы можете получить доступ к протоколу DDE నేరుగా из автоматических полей документа Word (снимаю шляпу перед SensePost за исследования и публикации об этом).

Коды полей – это еще одна древняя функция MS Word, которая позволяет добавлять динамический текст и немного программирования в документ. В качестве самого очевидного примера можно привести поле «номер страницы», который можно вставить в нижний колонтитул с помощью значения {PAGE *MERGEFORMAT}. Это позволяет автоматическим образом генерировать номера страниц.

ది అడ్వెంచర్స్ ఆఫ్ ది ఎలుసివ్ మాల్వేర్, పార్ట్ IV: DDE మరియు వర్డ్ డాక్యుమెంట్ ఫీల్డ్స్
Подсказка: вы сможете найти пункт меню Полe (Field) в разделе Вставка (Insert)

Я помню, что когда впервые обнаружил эту возможность в Word, то был поражен. И вот пока патч не отключил ее, Word так и поддерживал параметр полей DDE. Идея состояла в том, что DDE позволит Word общаться с приложением напрямую, для возможности затем передать выходные данные программы в документ. Это была совсем юная технология в то время – поддержка обмена данными с внешними приложениями. Позже она была развита в технологии COM, которую мы также рассмотрим ниже.

В итоге, хакеры поняли, что этим приложением DDE может быть командная оболочка, которая, конечно же, запускает PowerShell, а оттуда хакеры могут делать всё, что им угодно.
На скриншоте ниже видно, как я использовал данную скрытную технику: маленький сценарий PowerShell (далее – PS) из поля DDE загружает другой PS скрипт, который запускает вторую фазу атаки.

ది అడ్వెంచర్స్ ఆఫ్ ది ఎలుసివ్ మాల్వేర్, పార్ట్ IV: DDE మరియు వర్డ్ డాక్యుమెంట్ ఫీల్డ్స్
Спасибо Windows за всплывающее предупреждение, о том что встроенное поле DDEAUTO скрытно пытается запустить оболочку

Предпочтительным методом эксплуатации уязвимости является использование варианта с полем DDEAUTO, которое автоматически запускает сценарий при открытии документа Word.
Давайте подумаем, что с этим можно сделать.

Как начинающий хакер, вы можете, например, отправить фишинговое письмо, притворившись, что вы из ФНС, и встроить поле DDEAUTO со скриптом PS для первого этапа (дроппер по сути). Причем вам даже не нужно делать никакого реального кодирования макросов и пр., как я это делал в предыдущей статье.
Жертва открывает ваш документ, встроенный скрипт активируется, и хакер оказывается внутри компьютера. В моем случае удаленный сценарий PS лишь печатает сообщение, но он может также легко запустить клиент PS Empire, который предоставит удаленный доступ к оболочке.
И прежде, чем жертва успеет произнести хоть что-то, хакеры окажутся самыми богатыми подростками на селе.

ది అడ్వెంచర్స్ ఆఫ్ ది ఎలుసివ్ మాల్వేర్, పార్ట్ IV: DDE మరియు వర్డ్ డాక్యుమెంట్ ఫీల్డ్స్
Оболочка была запущена без малейшего кодирования. Даже ребенок сможет это сделать!

DDE и поля

Позже Microsoft все-таки отключила DDE в Word, но перед этим компания заявила, что эта функция была просто неправильно использована. Их нежелание что-то менять понятно. Из своего опыта я сам наблюдал такой пример, что обновление полей при открытии документа было включено, но макросы Word были отключены ИТ-службой (но с показом уведомления). Кстати, соответствующие параметры вы сможете найти в разделе настроек Word.

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

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

Насколько трудно сегодня найти непропатченную систему Windows?

Для этого тестирования я использовал среду AWS Workspaces для получения доступа к виртуальному рабочему столу. Таким образом я получил непропатченную виртуальную машину с MS Office, которая позволила мне вставить поле DDEAUTO. Не сомневаюсь, что подобным же образом можно найти и другие компании, которые до сих пор не установили нужные патчи безопасности.

Тайна предметов

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

Чтобы понять этот сценарий, давайте вспомним Модель компонентного объекта Microsoft, или сокращенно COM (Component Object Model).

COM существует с 1990-х годов, и определяется как «нейтральная к языку программирования объектно-ориентированная модель компонентов» на основе удаленных вызовов процедур RPC. Для общего понимания терминологии COM прочтите ఈ పోస్ట్ на StackOverflow.

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

Оказывается, COM-приложение также может запускать దృష్టాంతంలో — JavaScript или VBScript. Технически это называется скриптлет. Возможно, вы встречали расширение.sct у файлов в Windows – это и есть официальное расширение для скриплетов. По сути, они являются кодом скрипта, заключенного в XML обертку:

<?XML version="1.0"?>

<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[

var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");

]]>
</script>
</scriptlet>

Хакеры и пентестеры обнаружили, что есть отдельные утилиты и приложения в Windows, которые принимают COM-объекты и, соответственно, скриптлеты тоже.

Я могу передать скриптлет в утилиту Windows, написанную на VBS, известную как pubprn. Она находится в недрах C:Windowssystem32Printing_Admin_Scripts. Кстати, есть и другие утилиты Windows, которые принимают объекты в качестве параметров. Для начала рассмотрим этот пример.

ది అడ్వెంచర్స్ ఆఫ్ ది ఎలుసివ్ మాల్వేర్, పార్ట్ IV: DDE మరియు వర్డ్ డాక్యుమెంట్ ఫీల్డ్స్
Вполне естественно, что оболочку можно запустить даже из сценария печати. Вперед, Microsoft!

В качестве тестирования я создал простой удаленный скриптлет, который запускает оболочку и печатает забавное сообщение «Вас только что проскриптовали!». По сути, pubprn создает экземпляр объекта scriptlet, позволяя коду VBScript запустить оболочку. Данный метод предоставляет явные преимущества хакерам, которые хотят незаметно проникнуть и спрятаться в вашей системе.

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

Вам в качестве домашней работы – посмотреть ఈ వీడియో с Derbycon 2016 года, которое объясняет, как именно хакеры использовали скриптлеты. А также прочитать ఈ వ్యాసం про скриптлеты и какой-то моникер.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి