Объект foxit reader был открыт указанным далее приложением без действительной подписи
Неожиданные значения диапазона байтов, определяющие объем подписанных данных
Есть идеи, в чем может быть проблема?
1 ответ
Первый пример документа
Второй пример документа
второй пример документа был опубликован в комментарии:
«Документ был изменен или поврежден с тех пор, как была применена подпись». - здесь указывается на несоответствие дайджеста.
Вычисление и извлечение рассматриваемых значений дайджеста показывает, что значение дайджеста SHA256 для подписанных диапазонов байтов документа равно
Так что ваша подпись действительно не соответствует подписанным диапазонам байтов.
Интересно, однако, что это точно такой же дайджест, который был подписан в контейнере подписи в первом файле. Фактически весь контейнер подписи идентичен. По-видимому, вы просто повторно использовали контейнер подписи, который вы получили в предыдущем тесте. Поскольку время подписи в новом документе отличается, это не может работать, однако вам необходимо заново вычислить дайджест подписанных диапазонов байтов и запросить для него подпись.
При этом даже для вашего первого документа этот дайджест неверен. Итак, у вас, по-видимому, есть проблема с вычислением значений дайджеста.
«Подпись включает встроенную метку времени, но ее не удалось проверить». Я тоже это понял, но здесь мне снова просто нужно было доверять корневому сертификату сертификата TSA, чтобы начать работу.
Комментарии
В комментариях вы спрашиваете:
Если вы хотите понять детали того, что вы видите, вам следует изучить RFC 5652 и спецификации, на которые ссылаются оттуда.
И как я могу явно доверять корневому сертификату?
Для сертификата подписавшего в Foxit Reader откройте диалоговое окно Свойства подписи , выберите Показать сертификат , выберите сертификат, которому вы хотите доверять (корневой ЦС / промежуточный ЦС / конечный объект), откройте откройте вкладку Trust и нажмите Добавить в доверенные сертификаты .
Для сертификата TSA в Foxit Reader откройте диалоговое окно Signature Properties , внизу нажмите Advanced Properties , выберите Show Certificate в Timestamp Details, выберите сертификат, которому вы хотите доверять (корневой ЦС / промежуточный ЦС / конечный объект), откройте вкладку Trust и нажмите Добавить в доверенные сертификаты .
Итак, первая версия предусматривала прохождение в локальной сети, а вторая в глобальной сети интернет, для чего необходимо провести некоторые манипуляции с эксплоитом и его шеллкодом.
В легенде NeoQUEST-2020 был дан IP-адрес, при переходе по которому участники видели форму отправки заявлений, а также список требований к ним и пример корректного заявления. Первым делом внимательно изучим пример заявления: вдруг там будет что-то интересное? И правда, сразу же замечаем деталь:
Эта уязвимость позволяет скачивать файлы с удаленной шары. Рассмотрим эксплуатацию данной уязвимости на примере оригинального задания 2019 года.
Итак, в 2019 году форма отправки заявлений находилась по адресу 192.168.108.129. Первым делом запускаем Kali Linux. Также нужно поднять шару, с которой будет запускаться основная полезная нагрузка – Meterpreter. Для этого скачиваем/обновляем samba-сервер:
Затем создаем папку, которую будем шарить:
Теперь нужно сконфигурировать samba-сервер. Для этого следует открыть конфигурационный файл /etc/samba/smb.conf и вставить туда следующий текст:
Последнее, что нужно сделать – перезапустить службы samba:
Вот и все. Теперь содержимое папки /mnt/files доступно по адресу \\192.168.108.130\share.
Следующий шаг – подготовка самого эксплойта. Для этого сконфигурируем Meterpreter и положим его на шару:
Теперь создадим PDF-файл с эксплойтом:
Включаем обработчик, который будет устанавливать связь с Meterpreter, когда он запустится на машине-жертве:
Вот и все! В версии задания 2020 года так проэксплутировать не выйдет (только если у вас нет внешнего IP, на котором вы можете поднять smb шару). Поэтому для прохождения этого задания в online-этапе необходимо проанализировать эксплоит и в качестве шеллкода залить свою полезную нагрузку, реализующую, например, reverse (если есть внешний IP) или bind shell. Предлагаем самостоятельно попробовать проэксплуатировать уязвимость, ведь лучше один раз сделать самому, чем сто раз прочитать!
Осталось загрузить созданный PDF-документ в систему приема заявлений, и…
…ничего не происходит, так как файл не подписан! Похоже, система проверяет подпись какими-то дополнительными средствами перед тем, как документ открывается в Foxit Reader.
Следовательно, нужно придумать, как обойти проверку подписи.
Атака Universal Signature Forgery: Реакция системы такая же, как и на неподписанный файл. Похоже, подпись не распознается.
Атака Signature Wrapping: Тот же результат, атака не работает.
А вот атака Incremental Saving Attack:
Мы почти у цели! Система проверила подпись и сообщила, что она не принадлежит сотруднику компании. Но у нас есть пример документа с подписью сотрудника! Значит, все, что остается – проявить ловкость рук и использовать Incremental Saving, чтобы встроить эксплойт, не сломав при этом подпись.
Можно самостоятельно написать библиотеку для низкоуровневой работы с pdf (как задумывал разработчик задания) или просто дописать эксплоит в конец (как сделал тестировщик, когда проходил задание). Если взглянуть на структуру PDF-эксплойта, становится ясно, что он состоит из двух объектов: JS-кода, вызывающего use-after-free и запускающего exe-файл на шаре, и каталога – основного объекта в PDF-файле – задающего в качестве действия при открывании документа вызов JS-кода. Значит, нужно добавить объект с JS-кодом в подписанный документ, а также обновить объект каталога. Сделать это можно следующим образом:
Что мы видим? Документ успешно проходит проверку подписи! После этого устанавливается новая сессия с Meterpreter, а значит, эксплойт срабатывает (иногда это происходит не с первого раза из-за вероятностной природы use-after-free).
Теперь можно использовать Meterpreter, чтобы найти и скачать файл nq2020_key.txt:
Ура звучат фанфары и аплодисменты! Мы наконец-то получили ключ! Было сложно, но для наших участников нет ничего невозможного — мы убеждаемся в этом уже который год!
Мы рассказали все секреты заданий online-этапа NeoQUEST-2020, но это вовсе не означает, что мы с вами в этом году не увидимся: 30-го сентября состоится традиционная Очная ставка в Санкт-Петербурге!
Мы проведём финал хакерского соревнования, а также расскажем о самых интересных новостях в мире кибербезопасности. Крутые доклады, познавательные воркшопы, telegram-викторина, подарки и многое другое — все это ждет вас уже скоро! До встречи :)
Иногда при открытии файлов PDF появляются предупреждения. Существует множество их видов, три показаны ниже.
Предупреждение спрашивает, доверяете ли вы людям, которые послали вам PDF, или сайту, на котором отображается PDF. Предупреждение появляется, поскольку содержимое PDF может потенциально навредить вашему компьютеру. Например, предупреждение появляется для PDF-файлов, которые могут передавать или выполнять программы и макросы. Это не обязательно означает, что файл PDF является вредоносным.
В некоторых функциях продукта доверие назначается через их собственные панели настроек. Например, в Диспетчере доверия доступны параметры для управления доступом к URL, а в меню Надежность мультимедиа (унаслед.) — настройки воспроизведением встроенных мультимедийных файлов. Для функций, на которые влияет включение повышенного уровня защиты, можно выборочно разрешить ограниченные действия, используя способ, описанный в разделе Обход ограничений повышенного уровня защиты.
Чтобы открыть «Установки», выберите «Редактирование» > «Установки» (ОС Windows) или Acrobat/ Adobe Acrobat Reader > «Установки» ( Mac OS ).
Если вы знаете отправителя и доверяете ему
Если вы доверяете PDF-файлу или компании или человеку, который послал его, нажмите кнопку «Параметры», «Разрешить» или «Воспроизведение» (кнопки изменяются в зависимости от предупреждения). Теперь можно просмотреть PDF.
Если вы не знаете отправителя или не доверяете ему
Если вы не доверяете PDF или не знаете, кто создавал его или откуда он исходит, не нажимайте «Параметры», «Разрешить» или «Воспроизведение». Acrobat и Adobe Acrobat Reader продолжит блокировать подозрительное содержимое или операции. Чтобы скрыть предупреждение, нажмите кнопку «Закрыть» или «Отмена». При нажатии какое-либо блокированного содержимого предупреждение появлится вновь.
Предупреждение системы защиты может отображаться в следующих ситуациях:
Черный список функций JavaScript
Инструкции по управлению выполнением JavaScript см. в статье Сценарии JavaScript в файлах PDF как угроза безопасности
Параметры защиты обновляют
Adobe периодически распространяет в целях безопасности сертификаты. Благодаря этим загружаемым файлам пользователь может быть уверен в том, что PDF с цифровыми подписями, полученные из надежных источников, также надежны. При получении обновления из неизвестного источника убедитесь, что оно было отправлено с доверенного адреса, прежде чем продолжить выполнение дальнейших действий. Обновления, принимаемые с недоверенных веб-сайтов, могут стать источником уязвимостей вашего компьютера.
Доступ к объектам потока (X-объекты)
Acrobat и Reader выводят уведомление о попытке файла PDF подключиться к внешнему содержимому, определенному как объект потока. Например, URL-адрес может указывать на внешнее изображение. Скрытая передача данных может представлять собой угрозу безопасности, поскольку Acrobat и Reader связываются с внешним источником данных.
Вставка данных в документы PDF и формы
Предупреждение появляется, когда недостоверный источник пытается добавить данные в форму PDF. Хотя такая возможность вставки данных позволяет упростить рабочие процессы организации, однако она также может быть использована для добавления вредоносных данных в документ PDF.
Печать в автоматическом режиме
В автоматическом режиме печать в файл или на принтер выполняется без получения подтверждения от пользователя. Такая печать представляет собой потенциальный риск для безопасности, так как вредоносный файл может распечатываться автоматически много раз, тем самым вызывая неоправданный перерасход ресурсов принтера. Такие файлы могут сделать невозможной печать других документов, так как принтер постоянно занят.
Узнайте у системного администратора условия печати в автоматическом режиме.
Веб-ссылки
В дополнение к видимым веб-ссылкам в документе PDF поля формы могут содержать скрытые вызовы JavaScript, которые открывают страницу в браузере или скрыто запрашивают данные из Интернета.
В Acrobat и Reader версий X, 9.3 и 8.2 режим повышенного уровня защиты включен по умолчанию. Adobe рекомендует включить режим повышенного уровня защиты, если этого еще не было сделано, и обходить его ограничения только для доверенного содержимого.
Foxit PDF Reader | Foxit PDF Editor | Foxit PDF Editor Pro
Foxit Reader бесплатная программа для просмотра PDF-файлов. Есть полноэкранный режим, одновременно можно открывать несколько окон, показывает букмарки, можно открывать по две страницы рядом. Потребляет меньше памяти, чем Acrobat Reader. Поддерживает работу с браузерами (внедряется в браузер, при использовании инсталлятора). Просмотр, комментирование PDF-файлов, заполнение форм и подписание. Поддержка импорта/экспорта данных форм. Совместимость с программой JAWS (доступ к действиям с помощью речи). Позволяет создавать двумерный штрихкод из доступных для заполнения PDF-форм с включенной функцией Ultraforms. Поддержка сенсорного экрана. Поддержка облачных сервисов. Командная работа и общий доступ - комментирование, предоставление общего доступа, совместное рецензирование. Подписание и проверки цифровых подписей. Бесплатна для некоммерческого использования Подробнее.
Выпускается в двух редакциях:
Foxit PDF Editor - для специалистов и любых других пользователей. Основные функции: Редактирование, Рецензирование, Управление, Общий доступ, Защита, Создание.
Foxit PDF Editor Pro - для крупных и нишевых организаций. Основные функции: Все функции PDF Editor, Расширенные функции для совместной работы, Расширенные функции для редактирования, Расширенные функции для защиты.
Advanced PDF Editor входил в состав Foxit Phantom Business и распространяется отдельной программой.
История версий
в дистрибутивах _L10N_ - есть вполне вменяемый штатный русский)
Для версий 6.х: создайте папку lang, в ней - папку ru_ru, и положите туда mts_lang_ru_ru.xml
как отключить у Foxit PDF Reader ассоциацию с PDF файлами у пользователя,
при первом запуске спрашивает, пользователь не читая жмет да.
необходимо, чтобы _моя_ программа просматривала PDF-ки Foxit -ом. Но PDF файлы оставались у пользователя тем, чем были ассоциировны раньше.
Читайте также: