Canarytokens позволяет узнать, что кто-то украл документы, и вовремя принять меры. Идея отличная, к тому же можно выбрать метод определения того, что документ был открыт. Но реализовано это не лучшим образом, поэтому рассмотрим новый метод трекинга.

В случае с PDF арсенал Canarytokens предлагает лишь отправку запроса стандартным способом (FormCalc). При открытии такого документа в Adobe Reader всплывает окошко, которое сообщает, что документ пытается обратиться к сайту Canarytokens. Так дело не пойдет.

Отправка оповещения из офисных документов устроена тоже совершенно типично — через картинку с внешнего сайта. И если в старых версиях Office это работает, то начиная с Office 2010 (или даже 2007) документы, загруженные из интернета, открываются в специальном режиме Protected View. Большая часть функций, включая подгрузку внешних картинок и стилей, не работает, пока пользователь это не разрешит. Не круто.

Новый метод трекинга основан на двух фичах. Первая встроена в Office, вторая — свойство самой Windows.

«Офис» с давних времен поддерживает возможность подписать документ, что позволяет защитить его от последующих исправлений. Подпись создается с помощью обычного личного сертификата x509 (считай тот же, что и у HTTPS). При этом подпись документа проверяется сразу же при его открытии, то есть Protected View не останавливает этот процесс.

Второй момент заключается в том, что сертификат проверяется стандартным виндовым CryptoAPI. В самих сертификатах масса мест, где можно указать внешний URL. В первую очередь — проверка отзыва сертификата (CRL, OCSP) и путь до Intermediate или Root CA («Поставщик центра сертификации»). Таким образом, при проверке подписи «Офису» требуется проверить сертификат, а потому ОС проверяет всю цепочку сертификатов (от конечного до корневого), проходя по всем URL.

Добыть валидный конечный сертификат с произвольными значениями CRL и OCSP почти невозможно (эти поля контролируются CA), так что мы возлагаем надежду только на местоположение сертификата Intermediate CA — при проверке валидности ОС должна сходить и скачать его. Выходит, нам нужно создать конечный сертификат и подписать им любой офисный документ.

Создать сертификат несложно: достаточно сделать специальный конфиг и пару раз выполнить команду openssl. Приводить тут команды не буду, можешь взять их с моего гитхаба. Подписать документ тоже не великая проблема — заходишь во вкладку Insert, далее — Signature Line, вводим произвольные значения, OK, двойной клик на подпись и выбираешь личный сертификат.

К дополнительным плюсам можно отнести то, что метод будет аналогично работать и для любого другого ПО, которое проверяет сертификаты с помощью виндового CryptoAPI. К тому же запрос пойдет автоматически и через системную прокси. Эту фичу можно использовать и для проведения SSRF-атак (хотя тесты показали, что мы ограничены лишь протоколом HTTP, другие схемы не поддерживаются).

В определенных ситуациях метод работает и с LibreOffice, но не годится для Acrobat Reader.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии