
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-0282jpegdump.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, пожалуйста, ознакомьтесь с ней.
Мы строго запрещаем любые действия, нарушающие законодательство какой-либо страны с помощью этой программы. Используйте программу в рамках закона.
По умолчанию использование этой программы означает ваше согласие с нашими правилами. Пожалуйста, соблюдайте моральные и правовые нормы.
В случае несоблюдения вы несёте ответственность за последствия, автор не несёт никакой ответственности!
[2] https://conference.hitb.org/hitbsecconf2015ams/sessions/stegosploit-hacking-with-pictures/
[5] https://stackoverflow.com/questions/4110964/how-does-heap-spray-attack-work
[6] https://www.youtube.com/watch?time_continue=1&v=6lYUtIZHlJA
[7] https://www.owasp.org/images/0/01/OWASL_IL_2010_Jan_-_Moshe_Ben_Abu_-_Advanced_Heapspray.pdf
[8] https://en.wikipedia.org/wiki/Heap_spraying
[9] https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
yidazhang1[#]gmail[dot]com
imajs/
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/ выполнить --/tools/msf4$ ./msfconsole -r ./tmp/load_meterpreter.rc видео 2README.md - Показывает, как использовать этот project-stegosploit