
PoC - Доставка эксплойта через стеганографию и полиглоты, CVE-2014-0282
от Charmve - yidazhang1 [at] gmail[dot]com, @Charmve @therealsaumil @amichael
Май 2021

Stegosploit создаёт новый способ кодирования «drive-by» эксплойтов браузера и доставки их через файлы изображений. Эти полезные нагрузки необнаружимы c помощью существующих методов. В этой статье рассматриваются два широких базовых подхода, используемых для доставки эксплойтов на основе изображений: стеганография и полиглоты. Drive-by эксплойты браузера стеганографически кодируются в изображения JPG и PNG. Результирующий файл изображения объединяется с кодом декодера HTML и Javascript, превращая его в полиглот HTML+Image. Такой полиглот выглядит и ощущается как изображение, но декодируется и срабатывает в браузере жертвы при загрузке.
Stegosploit включает в себя инструменты, которые позволяют пользователю анализировать изображения, стеганографически кодировать данные эксплойта в файлы JPG и PNG и превращать закодированные изображения в полиглоты, которые могут быть отображены как HTML или выполнены как Javascript.
Текущая версия Stegosploit — 0.2, её можно найти в выпуске 0x08 Международного журнала Proof-of-Concept или Get The Fuck Out (Poc||GTFO). Обратите внимание, что вам нужно будет дочитать до конца статьи в PoC||GTFO, чтобы найти подсказку о том, как извлечь набор инструментов.
README.mdcopying.txt - WTFPLstego/
image_layer_analysis.html - Анализ битовых слоёв изображенияiterative_encoding.html - Кодирование эксплойта в изображение JPG или PNGimagedecoder.html - Декодирование стеганографически закодированного изображенияimagedecode.jshistogram.jsmd5.jsbase64.jsexploits/
exploits.js - Готовый код эксплойтовdecoder_cve_2014_0282.html - Код декодера + HTML-элементы CVE-2014-0282imajs/
html_in_jpg_ie.pl - Создание полиглота JPG+HTML для IEhtml_in_jpg_ff.pl - Создание полиглота JPG+HTML для Firefoxhtml_in_png.pl - Создание полиглота PNG+HTML (для любого браузера)pngenum.pl - Перечисление блоков FourCC в PNG-файлеjpegdump.c - Перечисление сегментов JPG-файлаCRC32.pmPNGDATA.pmproject-stegosploit/ - Основная часть видео 1 | текст 1
encoding/ - ядро
iterative_encoding.html - Стеганографическое кодирование кода эксплойтаimage_layer_analysis.htmlimagedevoder.htmldecode_and_run_cinput_withjs.htmlexploits/ - decoder.htmlimages/ - закодированные и оригинальные изображенияpolyglots/ - lena_poly_demo.htmlscripts/ - Создание полиглота HTML+PNG polyglot_with_jpg.pytmp/ выполнить jpegdump.c написан Ральфом Джайлзом и может быть загружен с https://svn.xiph.org/experimental/giles/jpegdump.c
В этом репозитории ключевой частью является project-stegosploit, который показывает, как скрыть код эксплойта в изображении, кодировать/декодировать его и выполнять фреймворк meterpreter.
Код эксплойта вставляется в пиксели изображения, так что изображение содержит код эксплойта. IMAJS затем создаёт полиглот-изображение, которое читается как изображение и содержит декодер, извлекающий и запускающий javascript-эксплойт.
Эксплойт, который мы будем использовать, — это Internet Explorer Use-after-free эксплойт (CVE-2014-0282).
python -m http.server 8000
Основные моменты:
10.0.2.2:5000.html и .jpg) Рефакторинг CRC32.pm
Рефакторинг PNGDATA.pm
Рефакторинг html_in_jpg_ie.pl
Рефакторинг pngenum.pl
Демо-сервер
/statictemplate_renderМой репозиторий
Этот репозиторий распространяется по лицензии GPL, пожалуйста, ознакомьтесь с ней.
Мы строго запрещаем любые действия, нарушающие законодательство какой-либо страны с помощью этой программы. Используйте программу в рамках закона.
По умолчанию использование этой программы означает ваше согласие с нашими правилами. Пожалуйста, соблюдайте моральные и правовые нормы.
В случае несоблюдения вы несёте ответственность за последствия, автор не несёт никакой ответственности!
yidazhang1[#]gmail[dot]com
--/tools/msf4$ ./msfconsole -r ./tmp/load_meterpreter.rcREADME.md - Показывает, как использовать этот project-stegosploit