Как спрятать вирус в документе Word

Как спрятать вирус в документе Word

Social Engineering

Microsoft ну очень не любит следовать общепринятым стандартам и всегда норовит впихнуть что-то свое. Пока все документы других приложений сохраняются в чистом Office Open XML, Microsoft решили его немного изменить. Вариант Microsoft часто называют Microsoft Open XML. Он содержит вольности, которые несут угрозы безопасности. Сегодня мы разберем одну из уязвимостей.

Зайдите на любой сайт с описанием уязвимостей. Сколько записей "microsoft office" вы там увидите?... :)

Нас будет интересовать атрибут embeddedHtml. Он нужен для вставки внешних объектов и содержит ссылку на них (например, на видеоролик YouTube, Vimeo). Из-за того что этот параметр «знает», из какого закоулка интернета тянуть картинку видеозаписи, его ну никак нельзя опустить при парсинге.

Ищем объект подмены.


Давай выполним простую атаку подмены.

  • Запускаем Word (требуется версия 2013 или выше, так как нам нужна полная поддержка ISO/IEC 29500 Strict) и идем в меню «Вставка».


  • В появившемся окне в строчке напротив YouTube мы выбираем ролик, который заинтересует потенциальную жертву. Вставка ролика отобразилась на листе документа типичной превью.
  • Сохраняем файл.

Друзья, обратите внимание, что размер вашего файла почти не изменился.
Это значит, что никакого видео там нет, ролик просто-напросто всегда запрашивается из интернета по известной ссылке.

Давайте заглянем в недра документа!


  • Меняем расширение .docx на .zip, открываем любым архиватором и видим содержимое.
  • В папке \word нам нужен файл document.xml. Разархивируем и откроем его на редактирование (подойдет и простой Notepad, хотя Notepad++ удобнее из-за подсветки синтаксиса).

В скудной документации о классе WebVideoProperty указано, что в теле документа он именуется wp15:webVideoPr. Находим эту секцию и смотрим ее содержание.

Блок выглядит следующим образом:

embeddedHtml="<iframe id="ytplayer" src="https://www.youtube.com/embed/k85mRPqvMbE" frameborder="0" type="text/html" width="816" height="480" />"


Атрибут embeddedHtml содержит iframe YouTube, который при замене на HTML или JavaScript будет выполняться. Замечательно, это нам и нужно!


Проверяем на практике!


Давай удалим все, что находится между кавычками, и попробуем вставить свой HTML-код. Сначала добавим отображаемую часть ссылки:

В нашем случае она будет выглядеть следующим образом:

embeddedHtml="<H1>Social_Engineering_club
</H1>"

Теперь подменим исходную ссылку на ролик с YouTube своей. Например, загрузим какой-нибудь файл на компьютер жертвы.

В качестве «вредоносного сервера» я поднял дистрибутив Ubuntu 16.4 с Apache2 и положил в каталог /var/www/html два файла: условного зловреда и простенькую HTML-страницу со ссылкой на него. IP-адрес сервера в локальной сети — 192.168.1.15.

Далее нам нужно все это указать в embeddedHtml:

embeddedHtml="<a href="http://192.168.1.15/1.html" frameborder="0" type="text/html" width="816" height="480" >Social_Engineering_club</a>" h="480" w="816"

Теперь сохраним наш измененный файл и запустим его.

Наша жертва - виртуалка с Windows 10 (1803) и MS Office 2016 Professional Plus VL x86, который мы и будем атаковать.

После запуска файла не видно ничего необычного. Открывается документ со вставленным видеороликом. При наведении курсора отображается корректная ссылка на него. Однако, если нажать на воспроизведение, вместо видео отобразится наша ссылка:

В реальном сценарии вместо Social_Engineering_Club лучше написать что-то более подходящее для фишинга. Например, нажмите, для воспроизведения.

Report Page