Open Document Text под вниманием. Как заставить документы Open Officeзапускать произвольные файлы
Интернет мошенничество – стандартный шаг многих кибервзломов. Оно рассчитано на доставку вредного файла возможной жертве и обычно осуществляется по электронной почте. Зачастую корпусом для вражеской нагрузки служит офисный документ, при открытии которого выполняются индивидуальные команды. Мы разберем, как сделать свободный код с помощью измененного файла ODT.
Большинство хакерских методов направлены на использование слабых мест в системе в Microsoft Office. Задачей анализа станет в основном разбор формата ODT и особенности его обработки.
Используем программу нулевого дня (CVE-2018-16858)
Концепция
Выявленная незащищенность дает возможность сделать несогласованный доступ к системе файлов, задействуя атаку обхода пути (path traversal attack). Это самый популярный вид уязвимостей и устоявшийсятип атаки. В этом случае злонамеренно измененный файл ODT может загрузить за границами родительского каталога последовательность команд на Python, который откроет путь к файловой системе и сделает те или иные действия с правами настоящего пользователя.
Неясной остается проблема с Apache Open Office. Отдельного дополнения нет, а настоящая версия 4.1.6 подвержена атакам до сих пор.
Практическое применение
Рассмотрим суть незащищенности. Во время установки программы Libre Office в системе Windows точно также устанавливается толкование Python 3. Он располагается по знакомому адресу C:\Program Files\LibreOffice\program\python-core-3.5.5\bin. Офисный пакет могут выполнить команды Python, если дать ссылку на него внутри документа и верно указать на него.
Документы ODT основаны на расширяемом языке разметки (как и .docx), поэтому их внутреннее строение легко изучать и изменять. Это является большим пространством для разнообразных атак, но в общем случае нам нужно сделать в документе любую задачу, которая запустит команды на Python.
Дальше будет самое любопытное. Если заменить направление к рабочему коду, и он будет подходить правилам выполнения, то Libre Office сделает его без проверки пути к заданным задачам.
Все это относится и к Open Office, просто в нем используется Python 2, поэтому расположение иных команд изменится. Это стоит взять во внимание, если нужно написать стандартный файл, используя возможность повреждения в обоих офисных пакетах.