Метафизика wmf файлов

       

принцип действия типичного wmf-эксплоитов


Для анализа хорошо подходит WMF Exploit Checker

от Ильфака Гуильфанова, исходный код которого можно утянуть по адресу http://castlecops.com/downloads-file-500-details-WMF_exploit_checker_source_code.html, а откомпилированный бинарник двоичный файл http://castlecops.com/downloads-file-495-details-WMF_Vulnerability_Checker.html. На самом деле это никакой не checker, а самый настоящий эксплоит, внедряющий в wmf-файл машинный код, котоый , пытающийся вывести на экран выводит "Your system is vulnerable to WMF exploits!"

через MessageBoxA.

Распаковав zip-архив с исходными текстами,

мы найдем семь файлов следующего содержания:

q       tell.asm: shell-код, подготовленный к внедрению;

q       wmf_checker_hexblog.cpp: создает wmf-файл, внедряет туда shell-код и проигрывает его;

q       wmfdata.cpp: откомилированный tell.asm с готовым wmf-заголовком;

q       wmfhdr.wmf: wmf-заголовок с escape-последовательностью и функций SetAbortProc;

q       различные командные файлы для компиляции;

Фактически, wmfdata.cpp представляет собой готовый wmf-файл с shell-кодом, который можно "скормить" Internet Exporer'у, IrfanView'у или любой другой программе подобного типа, только предварительно сначала необходимо нужно преобразовать cpp в bin, поскольку у Ильфака двоичные данные представлены в виде массива типа uchar:

static uchar array[] = {

0x01,0x00,0x09,0x00,0x00,0x03,0xED,0x00,0x00,0x00,0x06,0x00,0x3D,0x00,0x00,0x00,



Содержание раздела