MuggerMan
Опытный user
- Регистрация
- 4 Май 2022
- Сообщения
- 613
- Реакции
- 12
Конечно, угроза безопасности звучит очень пафосно, тем более для милого котика, смотрящего на вас с JPEG изображения, но среди его байт легко мог затеряться вредоносный скрипт. Давайте разберёмся, что к чему.
Некоторые примеры сигнатурных байтов:
Прочитать больше про полиглоты можно например здесь или здесь.
Первичная структура файла:
Пример изначального содержания
После изменения значения в файле появляется дополнительное место, в которое можно поместить эксплоит:
Пример измененного содержания
Структура до изменения
Необходимо добавить чанк tEXt, позволяющий записать в него скрываемую информацию, в нашем случае JS + HTML эксплоит:
Структура после изменения
Также, в PDF можно «прятать» JS эксплоиты с помощью /JavaScript /JS объектов, которые сами могут содержать исполняемый код, так и могут отсылать на другой JS объект.
В дополнение к выше перечисленным способам для скрытия эксплойтов можно запутать код с помощью hex последовательностей, в которых, например, /JavaScript может превратиться в /J#61#76#61Script. (При конвертации из hex в текст получим a = 61, v = 76, a = 61)
Что такое полиглоты и как они работают
Файл-полиглот - это файл, который меняет свой тип в зависимости от контекста использования. Чтобы лучше понять суть можно привести следующий пример — файл JPEG изображения, который также содержит в себе эксплоит для сканирования информации о компьютере на Линуксе. И в зависимости от способа использования данного полиглота изменится и его тип, это достигается за счет сохранение сигнатурных байтов, с помощью которых различные системы способны определить расширение файла.Некоторые примеры сигнатурных байтов:
- JPEG файлы — начинаются с FF D8 и кончаются FF D9
- PDF файлы — начинаются с “%PDF” (в hex формате — 25 50 44 46)
Прочитать больше про полиглоты можно например здесь или здесь.
Принципы создания полиглотов различных форматов
Так как каждое расширение файлов имеет уникальную структуру и ключевые, важные элементы, которые должны обязательно присутствовать, значит для каждого типа существует свой способ инъекции эксплоитов.Формат JPEG
При сокрытии эксплоитов в JPEG используется метод изменения структуры, который заключается в изменении значение длины (length) на необходимое количество байтов.Первичная структура файла:

Пример изначального содержания
После изменения значения в файле появляется дополнительное место, в которое можно поместить эксплоит:

Пример измененного содержания
Формат PNG
Из-за того, что структура PNG файла представляет из себя последовательность чанков, то в основном, для сокрытия нужной информации, используется метод добавления нового чанка после IHDR. Первичная структура файла:
Структура до изменения
Необходимо добавить чанк tEXt, позволяющий записать в него скрываемую информацию, в нашем случае JS + HTML эксплоит:

Структура после изменения
Формат PDF
Часто используются различные методы редактирования строк. Обычно, каждая строка заключена в круглые скобки, но злоумышленнику ничего не мешает записать ее в виде “столбика” или заменить каждый символ строки его восьмеричным или шестнадцатеричным представлением, причем числа можно разделять пробелами неограниченное количество раз.Также, в PDF можно «прятать» JS эксплоиты с помощью /JavaScript /JS объектов, которые сами могут содержать исполняемый код, так и могут отсылать на другой JS объект.
