Эта статья является частью серии «Fileless Malware». Все остальные части серии:
- Приключения неуловимой малвари, часть I
- Приключения неуловимой малвари, часть II: скрытные VBA-скрипты
- Приключения неуловимой малвари, часть III: запутанные VBA-скрипты для смеха и прибыли
- Приключения неуловимой малвари, часть IV: DDE и поля документа Word
- Приключения неуловимой малвари, часть V: еще больше DDE и COM-скриплетов (мы тут)
В этой серии статей мы изучаем методы атак, которые предполагают минимальные усилия со стороны хакеров. В прошлой статье мы рассмотрели, что можно вставить сам код в полезную нагрузку автоматического поля DDE в Microsoft Word. Открыв такой документ, вложенный в фишинговое письмо, неосторожный пользователь сам позволит злоумышленнику закрепиться на своем компьютере. Однако в конце 2017 года Microsoft закрыла данную лазейку для атак на DDE.
Исправление добавляет запись реестра, которая отключает функции DDE в Word. Если же вам все же нужна данная функциональность, то вы можете вернуть этот параметр, включив старые возможности DDE.
Однако оригинальный патч охватывал только Microsoft Word. Существуют ли эти DDE-уязвимости в других продуктах Microsoft Office, которые также можно было бы использовать в атаках без лишнего кода? Да, конечно. Например, вы также можете найти их в Excel.
Ночь живых DDE
Я помню, что в прошлый раз я остановился на описании скриптлетов COM. Обещаю, что еще доберусь до них в этой статье.
А пока давайте разберемся с очередной злой стороной DDE в версии для Excel. Так же, как и в Word, некоторые скрытые возможности DDE в Excel позволяют вам выполнить код без особых усилий. Как выросший на Word пользователь, я был знаком с полями, но совсем не знал о функциях в DDE.
Я был поражен, узнав, что в Excel я могу вызвать командную оболочку из ячейки, как показано ниже:
Вы знали, что так было можно? Лично я – нет
Эта возможность запустить оболочку Windows любезно предоставлена нам DDE. Можно придумать много других пр
иложений, к которым вы можете подключиться с помощью встроенных в Excel функций DDE.
Вы думаете о том же, о чем и я?
Пусть наша команда в ячейке запускает сеанс PowerShell, который затем загружает и выполняет ссылку – это прием, который мы с вами уже использовали ранее. Смотрите ниже:
Просто вставить чуть-чуть PowerShell для загрузки и выполнения удаленного кода в Excel
Но есть нюанс: вы должны явно ввести эти данные в ячейку, чтобы эта формула выполнилась в Excel. Как же хакер сможет выполнить эту команду DDE удаленно? Дело в том, что когда таблица Excel открыта, то Excel попытается обновить все ссылки в DDE. В настройках Trust Center уже давно есть возможность отключить это или предупреждать при обновлении ссылок на внешние источники данных.
Даже без последних патчей можно отключить автоматическое обновление ссылок в DDE
Microsoft первоначально сам советовал компаниям в 2017 году отключить автоматические обновления ссылок, чтобы предотвратить уязвимости DDE в Word и Excel. В январе 2018-го Microsoft выпустил патчи для Excel 2007, 2010 и 2013, которые по умолчанию отключают DDE. Эта статья в Computerworld живописует все детали патча.
Ну а что же журналы событий?
Microsoft все же отказалась от DDE для MS Word и Excel, признав тем самым, наконец, что DDE больше похож на баг, чем на функциональность. Если же вы по какой-либо причине еще не установили эти исправления, то вы все равно можете уменьшить риск атаки на DDE, отключив автоматическое обновление ссылок и включив параметры, которые запрашивают пользователей об обновлении ссылок при открытии документов и электронных таблиц.
А теперь вопрос на миллион: если вы стали жертвой данной атаки, будут ли сеансы PowerShell, запущенные из полей Word или ячейки Excel, отображаться в журнале?
Вопрос: логируются ли сеансы PowerShell запущенные через DDE? Ответ: да
Когда вы запускаете сеансы PowerShell непосредственно из ячейки Excel, а не как макрос, Windows будет регистрировать эти события (см. выше). При этом я не берусь утверждать, что службе безопасности будет легко потом соединить все точки между сеансом PowerShell, документом Excel и почтовым сообщением и понять, где же было начало атаки. Я еще вернусь к этому в последней статье моей нескончаемой серии о неуловимой малвари.
Как там наш COM?
В предыдущей статье я затрагивал тему скриплетов COM. Сами по себе они являются удобной технологией, которая позволяет вам передавать код, скажем, JScript, просто как объект COM. Но затем скриптлеты обнаружили хакеры, и это позволило им закрепляться на компьютере жертвы без использования лишних инструментов. Это видео с конференции Derbycon демонстрирует встроенные инструменты Windows, например, regsrv32 и rundll32, которые принимают удаленные скриптлеты в качестве аргументов, и хакеры, по сути, проводят свою атаку без помощи вредоносных программ. Как я показывал в прошлый раз, вы можете легко запускать команды PowerShell с помощью скриптлета на JScript.
Выяснилось, что один очень сообразительный исследователь нашел способ запуска скриплета COM в документе Excel. Он обнаружил, что при попытке вставить в ячейку ссылку на документ или рисунок, в нее вставляется некий пакет. И этот пакет спокойно принимает на вход удаленный scriptlet (см. ниже).
Бум! Еще один скрытный бесшумный метод для запуска оболочки с помощью скриптлетов COM
После низкоуровневой инспекции кода исследователь выяснил, что это на самом деле баг в программном обеспечении пакета. Он не предназначался для запуска скриплетов COM, а лишь для ссылок на файлы. Я не уверен, существует ли уже патч для этой уязвимости. В моем собственном исследовании на виртуальном рабочем столе Amazon WorkSpaces с предустановленным пакетом Office 2010 я смог воспроизвести его результаты. Однако, когда я чуть позже попробовал снова, у меня уже не получилось.
Я очень надеюсь, что рассказал вам много интересного и в то же время показал, что хакеры могут проникнуть таким или другим похожим способом и в вашу компанию. Даже если вы устанавливаете все последние патчи Microsoft у хакеров по-прежнему много инструментов для закрепления в системе: начиная от макросов VBA, с которых я начинал эту серию, и вплоть до вредоносной нагрузки в Word или Excel.
В последней (я обещаю) статье этой саги, я расскажу о том, как обеспечить разумную защиту.
Автор: Varonis