Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
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.

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

 

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

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

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

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

 

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

И снова нам поможет 

Скрытый контент

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скачиваем Empire:

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

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

 

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

И еще одно.

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

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

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

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

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

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

Значение этого 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 в ответ.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

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

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

Выводы

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