Добрый день
Когда-то стали известны способы размещения вредоносного кода в изображении.
Немногим позднее появилась атака Polyglot, когда вредоносный файл одновременно является изображением и JavaScript-кодом.
В основном, это касалось файлов BMP, при этом, 2 первых байта представляли 16-ричное представление символов ВМ в изображении ВМP. Далее, 4 байта отвечают за размер, затем 4 нулевых байта и байты, отвечающие за смещение данных.
При выполнении техники Polyglot, контролируется размер изображения, а 16-ричные символы представляются так, чтобы компьютерами интерпретировались иначе. Т.е., чтобы выполнялись как код.
Соответственно, появился генератор полезной нагрузки Pixload, который создал Alexandr Savca (chinarulezzz). Pixload умеет сгенерировать нагрузку в файлах BMP, GIF, JPG и PNG. Работает он как с дефолтными файлами, которые прилагаются в его директории, так и может начинять небольшие произвольные файлы соответствующего формата. В отличии от других аналогичных техник, файлы не требуется конвертировать в иконки и т.п.
Если кому потребуется начинка из shell-кода х86 как в старые добрые времена, то смотрим здесь и здесь
Другие полезные ссылки для информации Вы найдёте на странице автора
Установка:
Код:
# apt install libgd-perl libimage-exiftool-perl libstring-crc32-perl
# git clone https://github.com/chinarulezzz/pixload.git
# cd pixload
Использование:
Если работать с дефолтными данными и произвольный выходной файл отсутствует,то при следующем генерировании, такой файл перезапишется.
Если имеется скачанный произвольный выходной файл, то указываем на выходе его название, и нагрузка запишется в него.
Для удобства поместите такой файл в директорию инструмента.
1) Для файлов BMP
# ./bmp.pl -output file.bmp2) Для JPG 2 вида нагрузки, либо в параметр COMMENT, либо DQT table
И именно для данного типа файлов существует лимитирование нагрузки в 64 байта и требование, чтобы файл был произвольным.
Код:
# ./jpg.pl -place DQT -output file.jpg
# ./jpg.pl -place COM -output file.jpg
3) Для PNG
# ./png.pl -output file.png4) Для GIF
# ./gif.pl -output file.gifВот пример изображения
После генерирования полезной нагрузки, размер в свойствах останется неизменным, но само изображение примет минимальный размер. Сам процесс можно видеть на главном скриншоте.
Опасность такие файлы представляют для посетителей ресурсов,у которых,особенно присутствует XSS-уязвимость.
Например,находятся вот таким способом уязвимые ресурсы по доркам.
Наличие уязвимости позволяет даже себя любимого вывести на главную страницу.
Загружаются файлы если это позволяется и выполняется атака через браузеры при взаимодействии с файлом.
Мы конечно не станем ничего никуда грузить и заниматься вредительством.
Защитой от подобной атаки служит по-прежнему контроль javascript в браузере за счёт дополнений.
И при изучении файла hex-редактором, а лучше, анализатором пакетов, можно сразу увидеть, что с файлом что-то не так и виден в нём скрипт.
По материалам @ vertigo