Эксплуатация уязвимости CVE-2017-0199 в Microsoft Word

Уязвимость CVE-2017-0199 позволяет незаметно выполнить произвольный код в любой версии Microsoft Windows и Microsoft Office, при этом не требует включения макросов. Эксплоит распространяется через документ формата RTF.
Принцип работы уязвимости состоит в том, что открываемый RTF файл имеет объект OLE2link, который подгружает HTA приложение со стороннего сервиса и запускает его.

Для создания эксплоита и эксплуатации потребуется:

  • Сервер с установленным Apache, который будет доступен из атакуемой сети;
  • Microsoft Word 2010-2016;
  • Metasploit Framework;

Для начала установим на сервер Apache.

Теперь создадим RTF файл в Microsoft Word (в примере: doc.rtf) с произвольным текстом (этот текст в дальнейшем будет отображаться пользователю при открытии файла, поэтому мы использовали текст из одной точки, чтобы он был слабо заметен) и загрузим его на сервер, чтобы он был доступен по протоколу HTTP.

Следующим шагом создадим еще один файл RTF, в который вставим загруженный файл, как объект.

Вставка

cve-2017-0199_1

Для вставки объекта переходим во вкладку Вставка и выбираем Объект.

Создание из файла

cve-2017-0199_2

Выбираем вкладку Создание из файла, в поле Имя файла: вставляем ссылку на наш файл и отмечаем пункт Связь с файлом.
Нажимаем ОК и ждем пока файл загрузится. После этого сохраняем получившийся файл (дополнительно в файл можно добавить любой текст) с любым именем (в нашем примере: exploit.rtf). В дальнейшем этот файл будет отправляться на атакуемую машину.

Автоподгрузка

cve-2017-0199_3

Добавим автоподгрузку внешнего содержимого в файл exploit.rtf, для этого откроем файл в любом текстовом редакторе (например Notepad или Notepad++), найдем строку:

И добавим в нее автозагрузку (objupdate):

После добавления — сохраним получившийся файл. Отправляемая часть эксплоита готова.

Теперь нужно отредактировать настройки Apache, чтобы при запросе файла передавался правильный заголовок.

Включим модуль заголовков:

Откроем свойства виртуального хоста (для хоста по умолчанию это файл /etc/apache2/sites-available/000-default.conf) и допишем в него строку:

Должно получиться:

Для применения настроек, перезапускаем Apache:

Теперь сгенерируем полезную нагрузку (как обычно, Meterpreter):

Описание параметров msfvenom:
-p — используемая полезная нагрузка (В примере: windows/meterpreter/reverse_tcp).
LHOST=1.1.1.1 LPORT=4444 — параметры для полезной нагрузки (IP адрес для обратного подключения и порт);
-f psh-cmd — формат вывода (psh-cmdPowerShell скрипт);
-o — файл вывода, куда будет записан Payload.

Результатом будет файл payload.txt с содержимым вида:

Из всего содержимого нам нужна Base64 строка, которая начинается после флага -e (в примере: aQBmACgAWwBJAG4AdABQ…).

Заменим содержимое файла на сервере (doc.rtf) на эксплоит:

Описание эксплоита.

Используем VBScript:

Получаем путь к папке AppData\Roaming:

Создаем поток, который будет записывать в файл payload.bat:

Записываем в файл payload.bat кодманду, которая Meterpreter через PowerShell (Вместо BASE64-PAYLOAD нужно записать ранее сгенерированный Payload в Base64):

Запускаем созданный BAT файл:

Создаем HTML Application, который выполняет VBScript:

Все готово. Можно отправлять файл exploit.rtf на атакуемую машину.
При открытии пользователем полученного файла, будет запускаться HTML Application, которое выполнит полезную нагрузку.

И в заключении, пара снимков экрана о результате эксплуатации:

Открытие файла

cve-2017-0199_4

При открытии появится диалог, но он ни на что не влияет. Приложение уже запустилось.

Meterpreter

cve-2017-0199_5

Открытая сессия Meterpreter.

Эксплуатация уязвимости успешно проведена.

Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктуры

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.