Pdf stego — различия между версиями
Drakylar (обсуждение | вклад) м |
Drakylar (обсуждение | вклад) м (→Утилиты) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Рассмотрим общие моменты сокрытия информации в pdf документе. | Рассмотрим общие моменты сокрытия информации в pdf документе. | ||
− | =Архив= | + | ==Изучение PDF== |
+ | |||
+ | ===Архив=== | ||
Первое, что я обычно делаю, так это разархивирование. | Первое, что я обычно делаю, так это разархивирование. | ||
Строка 8: | Строка 10: | ||
После чего получаем список файлов и уже вручную ищем флаг. | После чего получаем список файлов и уже вручную ищем флаг. | ||
− | ===Пример таска №1=== | + | ====Пример таска №1==== |
1.Нам дан PDF файл, после открытия которого наблюдаем картинку с некоторыми | 1.Нам дан PDF файл, после открытия которого наблюдаем картинку с некоторыми | ||
Строка 18: | Строка 20: | ||
Взято с: https://ctf-team.vulnhub.com/picoctf-2014-redacted/ | Взято с: https://ctf-team.vulnhub.com/picoctf-2014-redacted/ | ||
− | ===Пример таска №2=== | + | ====Пример таска №2==== |
В оригинальном райтапе было несколько лишних действий, поэтому я упростил его: | В оригинальном райтапе было несколько лишних действий, поэтому я упростил его: | ||
Строка 31: | Строка 33: | ||
Взято с https://dillonkorman.com/2015-cams-ctf-writeups/ | Взято с https://dillonkorman.com/2015-cams-ctf-writeups/ | ||
− | =Сливание с фоном= | + | ===Сливание с фоном=== |
Так же иногда встречаются задания, где достаточно просто выделить весь файл | Так же иногда встречаются задания, где достаточно просто выделить весь файл | ||
и увидеть скрытый текст, который будет сливаться с фоном. | и увидеть скрытый текст, который будет сливаться с фоном. | ||
− | ===Пример таска=== | + | ====Пример таска==== |
http://bt3gl.github.io/csaw-ctf-2014-forensics-200-obscurity.html | http://bt3gl.github.io/csaw-ctf-2014-forensics-200-obscurity.html | ||
Строка 42: | Строка 44: | ||
− | =Пустые места после заголовка файла= | + | ===Пустые места после заголовка файла=== |
Чтобы проверить, есть ли пустые места в начале файла, то достаточно открыть его и какой-нибудь другой PDF | Чтобы проверить, есть ли пустые места в начале файла, то достаточно открыть его и какой-нибудь другой PDF | ||
Строка 51: | Строка 53: | ||
Скачать утилиту с сайта: http://wbstego.wbailer.com/ | Скачать утилиту с сайта: http://wbstego.wbailer.com/ | ||
− | ===Пример таска=== | + | ====Пример таска==== |
Строка 58: | Строка 60: | ||
− | =Сокрытие текста= | + | ===Сокрытие текста=== |
Встречаются задания,которых состоит в поиске скрытого в pdf файле тексте. | Встречаются задания,которых состоит в поиске скрытого в pdf файле тексте. | ||
Строка 65: | Строка 67: | ||
− | ===Пример таска=== | + | ====Пример таска==== |
1. Дан PDF файл. | 1. Дан PDF файл. | ||
Строка 74: | Строка 76: | ||
− | =Приписывание текста до заголовка %PDF= | + | ===Приписывание текста до заголовка %PDF=== |
Такое вполне возможно. Определяется с помощью HexEdit. | Такое вполне возможно. Определяется с помощью HexEdit. | ||
Достаточно изучить весь текст который будет идти до заголовка файла %PDF. | Достаточно изучить весь текст который будет идти до заголовка файла %PDF. | ||
− | ===Пример таска=== | + | ====Пример таска==== |
Пока отсутствует. | Пока отсутствует. | ||
+ | ===Скрытые обьекты=== | ||
+ | |||
+ | В PDF могут присутствовать обьекты, которые не будут выводиться на экран. | ||
+ | |||
+ | Для этого потребуется pdf-parser.py: | ||
+ | |||
+ | 1. Выполним команду | ||
+ | |||
+ | <syntaxhighlight lang="bash" line="1" style="overflow-x:scroll" > | ||
+ | python2 pdf-parser.py <pdf_path> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 2. Найдем номер нужного нам обьекта и выполним следующее: | ||
+ | |||
+ | <syntaxhighlight lang="bash" line="1" style="overflow-x:scroll" > | ||
+ | python2 pdf-parser.py <pdf_path> --object <номер_обьекта> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | 2.1 Если у обьекта есть строка '''Referencing: <число> 0 R''', то вероятнее всего этот обьект является указателем на данные хранящиеся в обьекте под номером <число>. | ||
+ | |||
+ | 3. Получим байты нужного обьекта: | ||
+ | |||
+ | <syntaxhighlight lang="bash" line="1" style="overflow-x:scroll" > | ||
+ | python2 pdf-parser.py <pdf_path> --object <номер_обьекта> --raw --filter | ||
+ | </syntaxhighlight> | ||
− | =Утилиты= | + | |
+ | |||
+ | ==Утилиты== | ||
===WBSTEGO=== | ===WBSTEGO=== | ||
Строка 101: | Строка 130: | ||
https://github.com/hiddenillusion/AnalyzePDF/blob/master/pdfid.py | https://github.com/hiddenillusion/AnalyzePDF/blob/master/pdfid.py | ||
+ | ===peepdf=== | ||
+ | |||
+ | Преимущественно для поиска malware кода в PDF | ||
+ | |||
+ | https://github.com/jesparza/peepdf | ||
+ | |||
+ | |||
+ | ===qpdf pdfextract=== | ||
+ | |||
+ | Утилита, встроенная в Ubuntu (тоже много чего может) | ||
+ | |||
+ | https://github.com/qpdf/qpdf | ||
− | =Райтапы= | + | ==Райтапы== |
Пока пусто. | Пока пусто. |
Текущая версия на 16:49, 15 июля 2018
Рассмотрим общие моменты сокрытия информации в pdf документе.
Содержание
Изучение PDF
Архив
Первое, что я обычно делаю, так это разархивирование. Для этого лично я пользовался программой The Unarchiver.
После чего получаем список файлов и уже вручную ищем флаг.
Пример таска №1
1.Нам дан PDF файл, после открытия которого наблюдаем картинку с некоторыми закрашенными частями 2.Разархивируем его. 3.Находим картинку в папке, в которую разархивировали. 4.Получаем флаг!
Взято с: https://ctf-team.vulnhub.com/picoctf-2014-redacted/
Пример таска №2
В оригинальном райтапе было несколько лишних действий, поэтому я упростил его:
1.Дан PDF файл, ничего необычного в нем на первый взгляд не находим. 2.Разархивируем его. 3.Находим файл flag.jpg 4.Profit!
Взято с https://dillonkorman.com/2015-cams-ctf-writeups/
Сливание с фоном
Так же иногда встречаются задания, где достаточно просто выделить весь файл и увидеть скрытый текст, который будет сливаться с фоном.
Пример таска
http://bt3gl.github.io/csaw-ctf-2014-forensics-200-obscurity.html
Пустые места после заголовка файла
Чтобы проверить, есть ли пустые места в начале файла, то достаточно открыть его и какой-нибудь другой PDF файл HEX редактором, например HexEdit.
В данном случае чаще всего происходит встраивание текста в PDF файл используя утилиту wbStego4.3open
Скачать утилиту с сайта: http://wbstego.wbailer.com/
Пример таска
Взято с https://www.youtube.com/watch?v=ZFs58z_OzGw
Сокрытие текста
Встречаются задания,которых состоит в поиске скрытого в pdf файле тексте.
Для этого нам поможет утилита pdf2txt.py, скачать которую вы можете по ссылке http://www.unixuser.org/~euske/python/pdfminer/#pdf2txt
Пример таска
1. Дан PDF файл. 2. Либо сразу прогоняем через утилиту pdf2txt, либо прежде посмотрим в его код и убедимся что текст там присутствует. В этом поможет pdfid.py и pdf-parser.py 3. После того, как прогнали через pdf2txt, получаем флаг в текстовом виде. 4. Profit!
Приписывание текста до заголовка %PDF
Такое вполне возможно. Определяется с помощью HexEdit. Достаточно изучить весь текст который будет идти до заголовка файла %PDF.
Пример таска
Пока отсутствует.
Скрытые обьекты
В PDF могут присутствовать обьекты, которые не будут выводиться на экран.
Для этого потребуется pdf-parser.py:
1. Выполним команду
python2 pdf-parser.py <pdf_path>
2. Найдем номер нужного нам обьекта и выполним следующее:
python2 pdf-parser.py <pdf_path> --object <номер_обьекта>
2.1 Если у обьекта есть строка Referencing: <число> 0 R, то вероятнее всего этот обьект является указателем на данные хранящиеся в обьекте под номером <число>.
3. Получим байты нужного обьекта:
python2 pdf-parser.py <pdf_path> --object <номер_обьекта> --raw --filter
Утилиты
WBSTEGO
HexEdit
pdfid.py
Показывает, какие данные находятся в PDF файле (скрипты и тд)
https://github.com/hiddenillusion/AnalyzePDF/blob/master/pdfid.py
peepdf
Преимущественно для поиска malware кода в PDF
https://github.com/jesparza/peepdf
qpdf pdfextract
Утилита, встроенная в Ubuntu (тоже много чего может)
Райтапы
Пока пусто.