Pdf stego — различия между версиями
| Drakylar (обсуждение | вклад) м | Drakylar (обсуждение | вклад)  м (→Утилиты) | ||
| (не показано 8 промежуточных версий этого же участника) | |||
| Строка 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=== | ||
| Строка 94: | Строка 123: | ||
| http://www.hexedit.com/ | http://www.hexedit.com/ | ||
| + | |||
| + | ===pdfid.py=== | ||
| + | |||
| + | Показывает, какие данные находятся в PDF файле (скрипты и тд) | ||
| + | |||
| + | 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 (тоже много чего может)
Райтапы
Пока пусто.
