Объект 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 файлы поддерживают JavaScript. Тем не менее, это так. Данной возможностью пользуются не только писатели и желающие украсить свои документы, но и злоумышленники, размещая внутри обычных pdf документов свой вредоносный код. Кроме того, чтобы использовать антивирусы, вы так же можете попросту отключить JavaScript в программах для чтения pdf. Сама процедура достаточно проста и схожа для большинства популярных браузеров.
Примечание: Если вам когда-нибудь понадобиться запустить документы с поддержкой JavaScript, то достаточно выполнить те же самые инструкции, установив галку напротив пункта активации или сняв галку напротив пункта отключения (специфика Nitro).
Примечание: Как факт, но о поддержке JavaScript мало кто из разработчиков афиширует. Конечно, основная причина заключается в том, что этой функцией пользуются единицы. Однако, о наличии такой замечательной возможности для злоумышленников, все же стоит почаще оповещать пользователей. Или, в крайнем случае, сделать так, чтобы по умолчанию JavaScript был отключен. Включенный JavaScript, о котором мало кто знает, в популярном инструменте - это просто праздник для мошенников.
Отключаем JavaScript в Adobe Reader
- Откройте меню Редактирование
- Выберите пункт Установки
- Щелкните на пункте "JavaScript"
- Перед вами появится диалоговое окно, показанное на рисунке чуть выше
- Снимите галочку напротив пункта "Активировать Acrobat JavaScript"
- Нажмите "ОК" (на рисунке она не показана)
Отключаем JavaScript в Foxit PDF Reader
Отключаем JavaScript в PDF-XChange Viewer
- Откройте меню Редактирование
- Выберите пункт Установки
- Щелкните напротив пункта JavaScript
- Перед вами появится то же окно, как изображено на рисунке
- Снимите галку напротив пункта "Активировать JavaScript интерфейс"
- Нажмите "ОК"
Отключаем JavaScript в Nitro Reader
- Откройте меню Файл
- Выберите пункт Настройки
- Щелкните на пункте "JavaScript"
- Откроется окно, показанное выше
- Поставьте галку напротив пункта "Отключить JavaScript". Обратите внимание, что в отличии от других pdf читалок, в данном случае необходимо поставить галку, а не снять.
- Нажмите "ОК"
SumatraPDF
Данная pdf читалка предоставляет не так много функций и не имеет каких-либо настроек для JavaScript. Возможно, что браузер попросту не поддерживает язык Java. Тем не менее, данное высказывание нельзя принимать за абсолютную истину, так как разработчик не утверждает ни о поддержке, и ни об отсутствии таковой.
Отключаем JavaScript в браузерных плагинах и дополнениях
Кроме различных программ для чтения pdf файлов на компьютере, существует так же масса различных плагинов и дополнений для открытия pdf документов в браузерах. Настройки безопасности этих плагинов и компонентов ActiveX (для Internet Explorer) зависят от общих настроек расширений и сценариев вашего браузера. Поэтому полностью отключать использование JavaScript в эпоху его использования на большинстве сайтов - не самая лучшая затея.
Примечание: Некоторые браузеры позволяют дополнительно детализировать настройки либо для конкретных сайтов, либо для конкретных расширений.
Как всегда, лучше защитой в данном случае будет - воздержаться от открытия pdf файлов в браузерах, особенно, если вы не уверены в надежности источника. Учтите, что даже на официальных сайтах могут находится зараженные документы. Например, в случае банальной халатности или незнания о такой возможности.
Если все, что вам нужно от pdf документов - это чтение текстов, то лучше отключить JavaScript заранее.
Иногда при открытии файлов 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 рекомендует включить режим повышенного уровня защиты, если этого еще не было сделано, и обходить его ограничения только для доверенного содержимого.
Читайте также: