• XSS.stack #1 – первый литературный журнал от юзеров форума

Pixload: вредоносный скрипт в изображении

pablo

(L2) cache
Пользователь
Регистрация
01.02.2019
Сообщения
433
Реакции
1 524
EEklQmSUEAE4DSu.jpg


Добрый день
Когда-то стали известны способы размещения вредоносного кода в изображении.
Немногим позднее появилась атака 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.bmp
2) Для 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.png
4) Для GIF # ./gif.pl -output file.gif
Вот пример изображения
После генерирования полезной нагрузки, размер в свойствах останется неизменным, но само изображение примет минимальный размер. Сам процесс можно видеть на главном скриншоте.
page1.png


Опасность такие файлы представляют для посетителей ресурсов,у которых,особенно присутствует XSS-уязвимость.
Например,находятся вот таким способом уязвимые ресурсы по доркам.
xssvuln1.png


Наличие уязвимости позволяет даже себя любимого вывести на главную страницу.
Загружаются файлы если это позволяется и выполняется атака через браузеры при взаимодействии с файлом.
Мы конечно не станем ничего никуда грузить и заниматься вредительством.
xssvuln.png


Защитой от подобной атаки служит по-прежнему контроль javascript в браузере за счёт дополнений.
И при изучении файла hex-редактором, а лучше, анализатором пакетов, можно сразу увидеть, что с файлом что-то не так и виден в нём скрипт.

pixload2.png


По материалам @ vertigo
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А исполняемый код на JS вбивать?
В зависимости от вектора атаки, если это XSS, то да
 
EEklQmSUEAE4DSu.jpg


Добрый день
Когда-то стали известны способы размещения вредоносного кода в изображении.
Немногим позднее появилась атака Polyglot, когда вредоносный файл одновременно является изображением и JavaScript-кодом.

В основном, это касалось файлов BMP, при этом, 2 первых байта представляли 16-ричное представление символов ВМ в изображении ВМP. Далее, 4 байта отвечают за размер, затем 4 нулевых байта и байты, отвечающие за смещение данных.
При выполнении техники Polyglot, контролируется размер изображения, а 16-ричные символы представляются так, чтобы компьютерами интерпретировались иначе. Т.е., чтобы выполнялись как код.



По материалам @ vertigo


Это и сейчас работает? Или статья для общего развития?
Авиры как относятся к исполняемому коду внутри картинки?
 
да...?

Фрагмент из https://warroom.securestate.com/bmp-x86-polyglot/
ТС ссылку дал среди прочих.


Shellcode может безопасно храниться в промежутке между концом заголовка DIB и началом данных изображения. Большинство современных полезных данных требуют, по крайней мере, несколько сотен байтов (как в случае с Stager Metasploit), если не намного больше места. Из-за этого размера и того факта, что полезная нагрузка будет существовать, по существу, не скрываемой в файле растрового изображения, злоумышленнику желательно объединить его с данными самого изображения, что может быть выполнено с использованием базовой техники стеганографии. Злоумышленник может заменить младшие значащие биты (LSB) данных изображения необработанным шелл-кодом. После того, как шелл-код и данные изображения были объединены, гораздо меньшая сборочная заглушка может извлечь исходный шелл-код из данных изображения для выполнения во время выполнения. В результате получается заглушка размером ~ 53 байта, которая может извлечь больший двоичный код из изображения, сохраняя при этом его первоначальный вид.

Просто добавить фрагмент JS кода видимо не получится.
Может умные люди объяснят поподробнее как это использовать.
А главное актуально такое решениели на данный момент времени или это уже в прошлом?
 
Последнее редактирование:
Просто добавить фрагмент JS кода видимо не получится.
Может умные люди объяснят поподробнее как это использовать.
А главное актуально такое решениели на данный момент времени или это уже в прошлом?

Действительно интересно если сделать такую штуку она Авирами определяться будет?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
EEklQmSUEAE4DSu.jpg


Добрый день
Когда-то стали известны способы размещения вредоносного кода в изображении.
Немногим позднее появилась атака 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.bmp
2) Для 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.png
4) Для GIF # ./gif.pl -output file.gif
Вот пример изображения
После генерирования полезной нагрузки, размер в свойствах останется неизменным, но само изображение примет минимальный размер. Сам процесс можно видеть на главном скриншоте.
Посмотреть вложение 6101

Опасность такие файлы представляют для посетителей ресурсов,у которых,особенно присутствует XSS-уязвимость.
Например,находятся вот таким способом уязвимые ресурсы по доркам.
Посмотреть вложение 6102

Наличие уязвимости позволяет даже себя любимого вывести на главную страницу.
Загружаются файлы если это позволяется и выполняется атака через браузеры при взаимодействии с файлом.
Мы конечно не станем ничего никуда грузить и заниматься вредительством.
Посмотреть вложение 6103

Защитой от подобной атаки служит по-прежнему контроль javascript в браузере за счёт дополнений.
И при изучении файла hex-редактором, а лучше, анализатором пакетов, можно сразу увидеть, что с файлом что-то не так и виден в нём скрипт.

Посмотреть вложение 6104

По материалам @ vertigo
если не сложно можешь сказать как вшить екзе файл через ету прогу,если ето возможно(заранее спасибо)
 
Привет, здесь описывается в качестве защиты от вредоносного скрипта в изображении контроль javascript в браузере за счёт дополнений. Может есть еще какие то способы?
 
Эту тему выкладывали ещё лет 6 назад на рдот, только это в основном надо когда установлены заголовки Content-Security-Policy и запрещено подгружать внешний js скрипт, поэтому ставишь в аватарку нужный тебе js код и уже в самой xss ставишь ссылку на свою аву.
 
если не сложно можешь сказать как вшить екзе файл через ету прогу,если ето возможно(заранее спасибо)
ответ тут новерное тыц ;)

 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх