Статья Атака на PDF, несколько способов ушатать Adobe

На сегодня для вас офисная статейка: учимся потрошить старый добрый универсальный формат делопроизводственных работничков - PDF.
PDF пожалуй самый популярный общепринятый международный формат документов, хороший формат, отработанный со всех углов, какие только имеются в киберпространстве. Он используются в коммерческих и некоммерческих организациях, дома и на службе, официально и подпольно, да вообще везде, где есть производная слова документ. Формат научились криптозащищать без существенной потери быстродействия железа, параллельно учились вскрывать и даже паковать вирусы в него (один из таких примеров будет продемонстрирован в следущей статье, шучу в следующей статье я покажу на сколько уязвимы секретные чаты в Телеграм/взломаю все ключи). Одна из самых интересных, тесно связанных историй с pdf, коснулась криптоанархиста Дмитрия Склярова, который был схвачен в Штатах после публичной презентации своего дара, разнесшего, как два байта переслать, в пух и прах PDF-защиту документов. Скляров и его компания-работодатель (хорошая отечественная международная компания производящая прекрасный хакерский софт под Windows, очередная гордость за наших "на олимпиаде") стали первыми привлечёнными к суду за нарушение закона «Об авторском праве в цифровом тысячелетии», принятом в США в 1998 году. История оказалась резонансной не только в кругах адептов цифры, но и на хозяйском уровне. В общем не поленитесь, почитайте историю в жанре киберпанк на Киберхабре.

Для размозжения защиты PDF буду пробовать 3 софтины, две ОС и один сайт.
Windows - .
Linux - ; John the ripper.
Сайт - .
По поводу программного обеспечения: описанные выше "игрушки" распространяются под свободной лицензией кроме APDFPR (разработка Склярова), но как часто бывает с коммерческим софтом: у пакета имеется , а на каждый перечисленный софт есть свой аналог на любой вкус и цвет, но am29f010b по душе то, что он указал)

Создал PDF документ в Adobe acrobat в ОС Windows.
Установил пароль на редактирование содержимого в теле документа и ограничил печать.
1.jpg

Защита документа в Adobe acrobat.
Сохранил защищенный паролем документ, и вновь открываю, пробую скопировать текст.
2.jpg

Защита работает, прекрасно, без знания пароля, мы не можем ни скопировать текст, ни отправить его на печать.​

Открываю Advanced PDF Password Recovery, загружаю в него документ, и тут же получаю уведомление, что файл прост, как нолик или единичка.
3.jpg

APDFPR моментальное удаление защиты.

Сохраняю расшифрованный документ, открываю его и пробую редактировать содержимое.
4.jpg

Документ доступен для редактирования, запрос пароля отсутствует, задача выполнена.​

Теперь попробую выполнить эту же задачу в ОС Linux.
Скачиваю из репозитория Debian пакет PDFTK. Запускаю тулзу: набиваю в терминале
$ pdftk
5.jpg

ПО PDFTK в терминале ОС Parrot Security OS.

Для выполнения задумки, меня и вас интересуют только два ключа: "input_pw" и "output". Синтаксис pdftk для снятия/удаления защиты
{pdftk входной файл input_pw otput выходной файл}
6.png

Мгновенный результат работы pdftk.
Пароль удален, и документ ...копия-3.pdf доступен для печати и редактирования.

Метод снятия пароля с pdf онлайн с любого гаджета/девайса.


Захожу через Браузер на smallpdf.com/ru, загружаю защищенный документ, подтверждаю галочкой, что юридически понимаю и соглашаюсь, что "вообще происходит" и получаю мгновенный результат сброса пароля.
7.jpg

Работа в Браузере. Пароль снят с документа.

Всё хорошо, убрал защиту на редактирование/печать документа pdf.

Усложняю задачу: взлом восстановление пароля на открытие документа.
PDF-формат поддерживает несколько типов защиты: пароль на редактирование (чпокнул); пароль на открытие документа (сейчас буду ковырять); защиту на основе сертификата и Амазоновская DRM-защита, говорю же "Формат старый, много чего придумали в его защиту и наоборот.
8.jpg

Вежливо просят предоставить "ключик" от ларца.


Продолжаю... Пытаюсь сбросить/крэкнуть пароль на том же сайте.

Вместо загрузки прошлого документа загружаю файл pdf, который требует пароль, чтобы открыть его содержимое, снова подтверждаю галочкой свою вменяемость, получаю
9.jpg

Сомнительная фраза о том, что для расшифровки пароля требуется > 1*10^6 лет. Сайт правда бессилен при открытии запаролленого pdf-документа.

Работаю в ОС Windows с той же программой: Advanced PDF Password Recovery.

Загружаю pdf-ник в APDFPR, выбираю лобовую атаку (атаку можно проводить разную: по словарю, по маске, интеллектуальную), но в данной статье я хочу познакомить вас лишь с рабочими хакерскими инструментами, ловите смысл, а не только кайф.
10.jpg

APDFPR в работе.

Обратите внимание на скорость перебора пароля в секунду ~50582p/с., еще вернусь к этой интересной цифре.

Работаю в Linux. Снова юзаю PDFTK, получаю следующее
11.png

PDFTK блетчерэс.

Как видите в первом случае с запароленным документом (пароль на открытие документа) errors, во втором случае respect (пароль на редактирование документа, который я сбросил раньше).

Запускаю тяжелую артиллерию: John The Ripper.
Алгоритм работы классика:
★ нужно вытащить хэш-функцию пароля pdf-файла (не контрольную сумму документа, а именно хэш пароля);
★ произвести атаку на полученную хэш-функцию.
Вытащить хэш. Тут нужно быть внимательным, Джони, в Parrot (ОС 3.11) "не умеет" работать правильно с pdf, проект, расширяющий Джоновсикй функционал, представлен на GitHub добрыми, но с красными глазами чувачками (кровотечение на сленге JtR). Некоторые версии программных модулей содержат ошибки, из-за которых невозможно извлекать верную хэш-функцию того же pdf, и Джон Райпер просто поперхнется этой функцией, а вы потеряете кучу времени в поисках догадки "Почему не работает, как заявлено?". Нерабочий пример к примеру, JohnTheRipper-1.8.0-jumbo-1 в parrot 3.11. У меня usb-live такая старая просто)))
Извлекаю хэш, одним из многих JtR-программных модулей, это почти мгновенная операция. Синтаксис команды простой: pdf-модуль зашифрованный файл:

$' /home/user/Desktop/Parsec/jon/JohnTheRipper-1.8.0-jumbo-1/run/pdf2john.py' '/media/user/D/national instr/карта шрифтов - копия.pdf'
вывод в терминале:
карта шрифтов - копия.pdf:$pdf$2*3*128*3900*1*16*ef2066424c11e66cef2066424c11e66c*:::::/media/user/D/national instr/карта шрифтов - копия.pdf

Жирным выделил программный pdf-модуль Джона Райпера и хэш функцию.
Сохраняю хэш в файл с любым расширением lst, txt, hash, Джону нет разницы, и скармливаю его Джоновсому движку, получаю это
12.jpg

John the ripper сердится и отказывается со мной сотрудничать(

Хэш оказался не вкусным. Поэтому скачиваю/компилирую с Gihub свежий JtR (но с другими багами), скачиваю...
$ git clone magnumripper/JohnTheRipper && cd JohnTheRipper
Извлекаю хэш из pdf в этой версии Джон Райпера, синтаксис прежний: pdf-модуль файл, получил совсем другой хэш!
/media/user/D/national instr/карта шрифтов - копия.pdf:$pdf$2*3*128*3900*1*16*ef2066424c11e66cef2066424c11e66c*32*ea102d0afd1d4ea6e12f8d0035a26e75b24f8157e99efac67b9bb3d8ba41b93e*32*ca36dd94364c2f4a20e5f9f5e24eec7421de5b45b5a982204eb3c375c6b50077
Сохраняю хэш в файл (pdf хэш.txt) и скармливаю его, как вы уже заметили, разбирающемуся в цифровой кухне Джону Райперу.
13.jpg

JtR атака брутфорса успешно запущена.

Началась кропотливая работа Джона потрошителя над восстановлением пароля pdf-файла. Я прервал сессию gun down двойным нажатием ctrl+c и хочу поделится с вами кратенькими выводами о проделанной работе в этой статье.

IMHO.
Защищенный pdf-документ можно распотрошить разными методами и разным софтом, некоторые приемы я привел выше, самый неприятный метод на стороне: работа на сайте, светить в логах своим pdf-файлом (особенно если на нем красуется печать Гриф секретно). Вообще подчинение цифры — дело покера: можно собрать full house и всё равно угодить за решетку, даже есть вероятность, что перед вами потом просто извинятся за причиненный дискомфорт если например у вас получится свалить всё на Северную Корею. (у Склярова на сайте спросите: как такое может быть?) Атаку брутфорса (лобовая атака, грубая сила, "тупая" ̶п̶...а̶ ̶ атака) проводил без каких-либо надстроек, а настроек очень много, некоторые вызовут у вас проблемы технического характера: например комбинированная атака с правилам или метод Маркова. APDFPR показал лучший результат чем JtR: 50582 против 33997 паролей/секунду. В Windows эта атака оказалась на 33% быстродейственнее чем в Linux, но справедливости ради добавлю, что в Linux у меня загружено было только одно ядро CPU из двух (можно при компиляции JtR выбирать настройки загруженности CPU, но я отключил ядро по другой причине). Поверили? Если серьёзно JtR версия в Parrot так скомпилирована. JtR выдает не менее 50500 п/с. Если задействовать видеокарту, то ой, тут всем все понятно без буквъ. Время на расшифровку пароля из под Линукс на 2-х ядерном процессоре 2,5 ГГц без задействования видеокарты - это гарантированная расшифровка пароля в самом худшем временном случае. О времени, чтобы понимать на сколько целесообразно проводить атаки брутфорса паролей, делайте элементарный расчет.
Время на расшифровку пароля 6-значного всевозможного цифрового кода (10^6)/34595=29c.
Время на расшифровку пароля 9-значного всевозможного цифрового кода (10^9)/34595/3600=8ч.
Время на расшифровку пароля 6-значного всевозможного буквенного кода латиницей (26^6)/34595/3600~2,5ч.
Время на расшифровку пароля 9-значного всевозможного буквенного кода латиницей (26^9)/34595/3600/24/365~5лет
Время на расшифровку пароля 6-значного всевозможного буквенно-цифрового кода (36^6)/34595/3600~17,5ч. Это максимальное время для перебора всевозможных приведенных комбинаций пароля (я не учитывал спецсимволы, кириллицу или к примеру вьетнамо-китайскую кодировку).
Хэш хэшу рознь. Есть быстрый, есть медленный есть очень медленный хэш (покажу потом на примере Telegram) Скорость работы железа приведена выше для pdf, брут другого хэша например wpapsk (wifi) на средней тачке ~ 1200p/c., а md5 много миллионов p/с. такая вот разница.
Как считать: (36^6) - это латинский алфавит (26 букв) + 10 цифр (0-9); ^6-длина пароля (6 символов) делил на 34595 (перебор паролей в секундах на Jtr для pdf, он немного разогнался потом) делил на 3600 с. (один час) получал часы. Теперь вы должны сами догадаться, что задействование видеокарты для брута весьма необходимая мера. Не отчаивайтесь! Не все так печально и брутфорс-метод живее всех живых, на помощь нам приходят относительно новые технологии доступные каждому. Об этих, не очень популярных технологиях в РФ, будет выпущен отдельный материал я надеюсь. Возможно в будущем изредка я буду посвящать отдельный подробный анализ хакерским цифровым инструментам, Например тот же Джон Райпер теоретически умеет (не всегда практически) работать со многими форматами, оценка Uber!
слева-расширенная версия
14.jpeg

Сравнение JtR jumbo-1 bleeding, слева поддержкой 261 форматов, справа-предустановленная версия в хакерской ОС (с глючным pdf-модулем) с поддержкой 202 форматов. А верси JtR поддердивает всего лишь 8 форматов.

PS: Джон Райпер предустановленный в Kali Linux или Parrot дает в 2 раза медленнее результат подбора пароля, но быстрее ~20% чем Аиркряк. Ускоряется брут установкой с github JtR по мануалу, не забудьте перед ./configure нужно инсталировать пакет из ОС репозитория libssl-dev (иначе установка не пройдет).
I Love You All - ILYA. На этом все, спасибо за внимание!
 
Источник я не нашел, но нашел ее в телеграфе за февраль месяц:
Уважаемые коллеги, как поступим со статьей ?
Прошу прощения за вмешательство, однако, насколько известно, банальное копирование статей запрещено действующими правилами данного форума.
 
Источник я не нашел, но нашел ее в телеграфе за февраль месяц:
Уважаемые коллеги, как поступим со статьей ?
@<~DarkNode~> @al04e @BadBlackHat @ghostphisher @kot-gor @PingVinich @r0hack @SooLFaa @Vander

Здравствуйте, эта моя статья, писалась для Хабра, но такой материал сочли незаконным, решил выложить тут. Свои статьи нельзя публиковать на codeby? в той статье, что Вы нашли я обновил для вас послание в самом конце статьи.
Спасибо.
 
@<~DarkNode~> @al04e @BadBlackHat @ghostphisher @kot-gor @PingVinich @r0hack @SooLFaa @Vander
Интересный случай. В телеграфе статья написана февраля 20-ого. А на форуме только сегодня. Это порождает мысль, что это копипаст. Однако точно мы не знаем, принадлежит ли статья данному пользователю. Пусть предъявит доказательства, в противном случае удаление статьи и балла так 2 за нарушение правил.
 
Укажите ссылку на первоисточник
Ни когда не занимался рерайтом.
Первоисточник статьи - это я. Поэтому этой статьи ни где нет, кроме, как на этом форуме, в подтверждение своим словам я отредактировал статью на Телеграфе, которую сюда прислал админ выше. Теперь я жду извинений за обвинение меня в попытке копипасте чужой статьи и лайки за статью. Спасибо.
 
  • Нравится
Реакции: paris и dildoman
Здравствуйте, эта моя статья, писалась для Хабра, но такой материал сочли незаконным, решил выложить тут. Свои статьи нельзя публиковать на codeby? в той статье, что Вы нашли я обновил для вас послание в самом конце статьи.
Спасибо.
Если статья целиком находится в индексе поисковых систем - нельзя. В Вашем случае ее нет и она, с нашей точки зрения, уникальна. Поисковики пессимизируют за дублирование контента. Раз первоисточник Вы сами, то никаких ссылок не надо ставить. Статья понравилась, спасибо.
 
@am29f010b большое спасибо за труды, хотелось бы почитать, как можно модифицировать pdf полезной нагрузкой и остаться в живых.
Слог отличный, написано интересно, подписываюсь на ваши статьи).
Всех благ!
 
  • Нравится
Реакции: danaez
Есть ли материал с прикручиванием полезной нагрузки к pdfу
 
Как из PDF СДЕЛАТЬ полезную нагрузку?
Кто-то может просветить?
 
Статью выбросить, как бесполезную.
Её главный результат - перебор.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!