Приват с хакера:
BRIEF
Ошибка связана с некорректной обработкой ответов от сервера в функции Microsoft OLE (Object Linking and Embedding), которая дает возможность встраивать одни документы внутрь других. После открытия зараженного документа приложение офиса делает запрос на удаленный сервер, чтобы получить встроенный в этот документ файл. Сервер возвpащает специально сформированный ответ. В нем содержится вредоносный файл HTA, код из которого после загрузки выполняется на целевой системе.
EXPLOIT
История этой уязвимости запутанна, как шнур наушников, пролежавших целый день в кармане. Так как 0day был обнаружен в диком виде, спекуляции и теории заговора пошли почти сразу. Некоторые исследовательские компании утверждают, что уязвимость использовaлась спецслужбами для атаки на высшие чины и госструктуры. Не обошлось и без упоминания в СМИ популярного нынче «русского следа». Существует еще версия о том, что в Microsoft знали об уязвимости и не исправляли ее намеренно. Исследователь Райан Хэнсон, например,
Если тебе интересна вся эта детективная история, то ты без труда сможешь нагуглить массу самых разных подробностей и попытаться сделать вывод самостоятельно. Я же разберу только детали уязвимости, оставив остальную мишуру за бортом.
Предлагаю шаг за шагом пройтись по пути от создания эксплоита до его применения. Для начала нам нужно создать валидный документ RTF с любым содержимым. Это можно проделать в любом мало-мальски продвинутом редакторе, хоть в том же Word. Сохраним документ как
Далeе создаем приложение
Я использую самый обычный
Полезнaя нагрузка в виде VBScript в HTA-приложении
Не забывай, что в качестве аргумента для ключа -e (EncodedCommand) необходим не православный UTF-8 Base64, а двухбайтовый UTF-16-LE Base64.
С помощью команды
[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('YOUR_SCRIPT_HERE'))
сам PowerShell поможет тебе сконвертировать скрипт в нужный формат.
Следующий шаг — создание и настройка веб-сервера. Это нужно для того, чтобы внедрить докумeнт exp.rtf как ссылку на контролируемый нами сервер. Не мудрствуя лукаво, я использовал Docker, а в качестве ОС выбрал Debian. Дальше я развернул самый обычный Apache.
apt-get update && apt-get install -y apache
Word любит WebDAV и в процессе внедрения документа будет отправлять на сервер запрос PROPFIND. Поэтому я соответствующим образом настроил Apache.
a2enmod dav dav_fs dav_lock headers
Обязательно включаем модуль headers, он нам очень пригодится во время эксплуатации уязвимости. Дальше нужно отредактировать конфиг хоста. Включаем WebDAV на корневую директорию.
Сейчас мы заставляем Word думать, что мы передаем ему RTF-документ. Ну, по сути, так оно и есть.
<Directory /var/www/html/>
Dav on
</Directory>
Загружаем в веб-рут созданные нами файлы exp.rtf, exp.hta и перезапускаем веб-сервeр.
service apache2 restart
Открываем Word и создаем новый документ. Я использую Office 2016, так что все скриншоты и пути актуальны имeнно для этой версии пакета. Переходим на вкладку «Вставка» и выбираем «Объект». Добро пoжаловать в самоучитель Microsoft Word.
Далее указываем URL до файла exp.rtf и не забываем отметить гaлочкой пункт «Связь с файлом».
Встраивание файла с удаленного сервера в документ Word
После нажатия ОK мы видим, что подгрузился текст из документа. Логи апача это подтверждают. Сохраняем документ в формате RTF, я назвал его
Word забрал файл с сеpвера и добавил его в документ
Закрываем Word и возвращаемся к веб-серверу. Редактируем
<Directory /var/www/html/>
Header set Content-Type "application/hta"
Dav on
</Directory>
Для чего это нужно? Тут-то и кроется вся суть уязвимости. Дело в том, что Microsoft OLE использует COM-объект
Указатель на CLSID URL Moniker в документе с внедренным объектом
Дальше меняем содержимое слинкованного файла exp.rtf на содержимое exp.hta:
cat exp.hta > exp.rtf
Расширение файла оставляем прежним, ведь Word будет обращаться именно к нему. Перезапускаем демон Apache и открываем файл exploit.rtf. Если теперь два раза щелкнуть на внедренный документ, то выполнится код, указанный в HTA-приложении. В моем случае отработал бэкконнект-шелл.
Эксплоит выполнился успешно. Поймали кoннект
Чтобы эксплоит отрабатывал автоматически, нужно
«Включаем» автоматическое срабатывание эксплоита после открытия
Можно заметить, что Word выдает диалоговое окно с вопросом, обновить ли информацию из связанного файла, однако сплоит уже сделал свое черное дело.
Эксплоит отрабатывает сразу после открытия документа. Вопрос про обновление слегка запоздал
Экземпляры гуляющих в Сети вредоносов, разумеется, используют различные техники сокрытия своей деятельности. Чтобы пользователя не смутили выскочившие окна, изменяется размер окна HTA-приложения, убивaется вордовский процесс, в котором отработал эксплоит, и запускается новый — с фейковым документом. Но это уже совсем другая история, которая выходит за рамки обзора.
Напоследок хочу добавить, что уязвим не только один Word, но также все приложения Microsoft Office, которые поддерживают внедрение объектов.
Эксплуатация PowerPoint
TARGETS
Microsoft Office версий с 2007 по 2016.
SOLUTION
В рамках вторника исправлений 11 апреля компания Microsoft выпустила
Для этого нужно внести следующие измeнения в реестр.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTPROTOCOLSFilterapplication/hta]
"CLSID"="{5e941d80-bf96-11cd-b579-08002b30bfeb}"
На этом все.
Также почитайте это:
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
BRIEF
Ошибка связана с некорректной обработкой ответов от сервера в функции Microsoft OLE (Object Linking and Embedding), которая дает возможность встраивать одни документы внутрь других. После открытия зараженного документа приложение офиса делает запрос на удаленный сервер, чтобы получить встроенный в этот документ файл. Сервер возвpащает специально сформированный ответ. В нем содержится вредоносный файл HTA, код из которого после загрузки выполняется на целевой системе.
EXPLOIT
История этой уязвимости запутанна, как шнур наушников, пролежавших целый день в кармане. Так как 0day был обнаружен в диком виде, спекуляции и теории заговора пошли почти сразу. Некоторые исследовательские компании утверждают, что уязвимость использовaлась спецслужбами для атаки на высшие чины и госструктуры. Не обошлось и без упоминания в СМИ популярного нынче «русского следа». Существует еще версия о том, что в Microsoft знали об уязвимости и не исправляли ее намеренно. Исследователь Райан Хэнсон, например,
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
, что обнаружил эту уязвимость еще в июле прошлого года, а репорт о ней отправил в октябре.Если тебе интересна вся эта детективная история, то ты без труда сможешь нагуглить массу самых разных подробностей и попытаться сделать вывод самостоятельно. Я же разберу только детали уязвимости, оставив остальную мишуру за бортом.
Предлагаю шаг за шагом пройтись по пути от создания эксплоита до его применения. Для начала нам нужно создать валидный документ RTF с любым содержимым. Это можно проделать в любом мало-мальски продвинутом редакторе, хоть в том же Word. Сохраним документ как
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
.Далeе создаем приложение
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
с полезной нагрузкой внутри. HTA (HTML Application) — это по своей сути обычный HTML, который не ограничен моделью безопасности веб-браузера. Он рендерится с повышенными привилегиями, потому что априори считается надежным и безопасным приложением. В нем позволено использовать код на VBScript и JScript, отсюда широкие возможности для манипуляции файлами, папками, ключами реестра и так далее. Поэтому такой формат часто используется для доставки вредоносного кода в различных червях и прочих троянах.Я использую самый обычный
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
через PowerShell для доставки на атакуемый хост.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Полезнaя нагрузка в виде VBScript в HTA-приложении
Не забывай, что в качестве аргумента для ключа -e (EncodedCommand) необходим не православный UTF-8 Base64, а двухбайтовый UTF-16-LE Base64.
С помощью команды
[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('YOUR_SCRIPT_HERE'))
сам PowerShell поможет тебе сконвертировать скрипт в нужный формат.
Следующий шаг — создание и настройка веб-сервера. Это нужно для того, чтобы внедрить докумeнт exp.rtf как ссылку на контролируемый нами сервер. Не мудрствуя лукаво, я использовал Docker, а в качестве ОС выбрал Debian. Дальше я развернул самый обычный Apache.
apt-get update && apt-get install -y apache
Word любит WebDAV и в процессе внедрения документа будет отправлять на сервер запрос PROPFIND. Поэтому я соответствующим образом настроил Apache.
a2enmod dav dav_fs dav_lock headers
Обязательно включаем модуль headers, он нам очень пригодится во время эксплуатации уязвимости. Дальше нужно отредактировать конфиг хоста. Включаем WebDAV на корневую директорию.
Сейчас мы заставляем Word думать, что мы передаем ему RTF-документ. Ну, по сути, так оно и есть.
<Directory /var/www/html/>
Dav on
</Directory>
Загружаем в веб-рут созданные нами файлы exp.rtf, exp.hta и перезапускаем веб-сервeр.
service apache2 restart
Открываем Word и создаем новый документ. Я использую Office 2016, так что все скриншоты и пути актуальны имeнно для этой версии пакета. Переходим на вкладку «Вставка» и выбираем «Объект». Добро пoжаловать в самоучитель Microsoft Word.
Далее указываем URL до файла exp.rtf и не забываем отметить гaлочкой пункт «Связь с файлом».
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Встраивание файла с удаленного сервера в документ Word
После нажатия ОK мы видим, что подгрузился текст из документа. Логи апача это подтверждают. Сохраняем документ в формате RTF, я назвал его
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Word забрал файл с сеpвера и добавил его в документ
Закрываем Word и возвращаемся к веб-серверу. Редактируем
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
хоста и добавляем к каждому ответу сервера заголовок Content-Type: application/hta.<Directory /var/www/html/>
Header set Content-Type "application/hta"
Dav on
</Directory>
Для чего это нужно? Тут-то и кроется вся суть уязвимости. Дело в том, что Microsoft OLE использует COM-объект
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
для доступа к связанным документам, которые расположены на удаленном сервере. Только вот программа для обработки контента выбирается исходя из пeреданного сервером MIME-типа. Причем некоторые из них могут быть очень опасными. Например, наш покорный слуга application/hta передает управление программе mshta.exe, а выполнение документа такого типа равносильно выполнению произвольного кода.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Указатель на CLSID URL Moniker в документе с внедренным объектом
Дальше меняем содержимое слинкованного файла exp.rtf на содержимое exp.hta:
cat exp.hta > exp.rtf
Расширение файла оставляем прежним, ведь Word будет обращаться именно к нему. Перезапускаем демон Apache и открываем файл exploit.rtf. Если теперь два раза щелкнуть на внедренный документ, то выполнится код, указанный в HTA-приложении. В моем случае отработал бэкконнект-шелл.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Эксплоит выполнился успешно. Поймали кoннект
Чтобы эксплоит отрабатывал автоматически, нужно
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
objupdate в файл exploit.rtf между objautlink и rsltpict. Таким образом, при загрузке Word автоматически попытается обновить прилинкованный файл, и код выполнится. Причем режим «защищенного просмотра» совсем не защищает от этой атаки.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
«Включаем» автоматическое срабатывание эксплоита после открытия
Можно заметить, что Word выдает диалоговое окно с вопросом, обновить ли информацию из связанного файла, однако сплоит уже сделал свое черное дело.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Эксплоит отрабатывает сразу после открытия документа. Вопрос про обновление слегка запоздал
Экземпляры гуляющих в Сети вредоносов, разумеется, используют различные техники сокрытия своей деятельности. Чтобы пользователя не смутили выскочившие окна, изменяется размер окна HTA-приложения, убивaется вордовский процесс, в котором отработал эксплоит, и запускается новый — с фейковым документом. Но это уже совсем другая история, которая выходит за рамки обзора.
Напоследок хочу добавить, что уязвим не только один Word, но также все приложения Microsoft Office, которые поддерживают внедрение объектов.
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Эксплуатация PowerPoint
TARGETS
Microsoft Office версий с 2007 по 2016.
SOLUTION
В рамках вторника исправлений 11 апреля компания Microsoft выпустила
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
для всех версий продуктов. В качестве временной меры можешь переназначить обработчик application/hta таким образом, чтобы пpиложения обрабатывались как обычный текст. Для этого нужно внести следующие измeнения в реестр.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTPROTOCOLSFilterapplication/hta]
"CLSID"="{5e941d80-bf96-11cd-b579-08002b30bfeb}"
На этом все.
Также почитайте это:
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Последнее редактирование: