PDA

Просмотр полной версии : Wmf-Баг защита от антивиря


slesh
16.03.2007, 22:53
Народ, тут такое дело. Я был в шоке от антивирей.
Короче, дело обстоит так. Я написал прогу которая создаёт картинку в WMF формате в которую внедряет любую прогу. т.е. Если система не пропатченая, то запускается код который находится в WMF файле. Этот код выдирает из этой картинки прикрепленную прогу. Сохраняет её в temp и потом запускает. всё пашет идеально, даже проги через которые смотришь эту картинку после запуска exploit'a не вешаются и не выдают никаких ошибок.
Но облом в том, что антивири DR-WEB палит эти картинки. Я так и не могу допереть как он их палит, т.е. я добавлял перед shell-кодом и после него различный мусор, типа рисование линий. Но антивирь всё равно палит. Как я понял палит он по сигнатуре:
26h //Escape
??
09h //SETABORTPROC
00h
Самое интерестно что если эти данные распологаются в виде параметров какойлибо функции рисования, то антивирь игнорит их. Т.е. получается что антивирь детально разбирает WMf файл? т.е. анализирует все данные и ишет только когда эта сигнатура встречается только как функция а не как парамерт :\
Может ктонить знает как можно спрятать эту сигнатуру чтобы и антивирь не палил и shell код работал?
Если картинку сменить расширение на JPG или на BMP то всё работает нормально, но антивирь всё равно палит. Просто непойму как он может так точно определять наличие этих 4-х байт в нужном месте, если даже расширения не совпадают :\

Всё народ... уже не надо... я нашел как обмануть антивирь без потери работоспособности. А всё из-за того, что Ms плюют на собственне стандарты

gizmo
16.03.2007, 23:50
поделись, не держи в себе

slesh
17.03.2007, 01:20
Пока не могу, т.к. еще не доконца доделан код. т.е. покачто будет пахать только на SP2 без всяких дороботок. т.к. я по брал адреса всех API функций из kernel32.dll - свой системы. т.е. просто узнал по какому смещению находится какая функция, так что если будет библиотека чуть другой версии то уже пахать не будет.
Вот теперь ищу мануал как можно автоматически находить адреса этих функций не зависимо от платформы. т.е. Адрес куда загружена kernel32.dll определят запросто на любой системе. даже на 98 и 2003 винде.
А так для работы кода нужно только знать адреса этих функций:
GetTempPathA
GetProcessHeap
HeapAlloc
CreateFileA
WriteFile
CloseHandle
WinExec
Все из kernel32.dll хотя по поводу HeapAlloc есть сомнение, т.к. под NT форвардится она из NTDLL.RtlAllocateHeap
Если кто поможет вычислить адреса этих функций, тому прогу в первую очередь!

asm33
17.03.2007, 02:23
дак эту хрень (поиск адреса) в хацкере писали http://www.xakep.ru/post/23159/default.asp

И вроде бы в краклабе обсуждали эту тему, точно не помню

slesh
17.03.2007, 11:35
Почитаю что в хакере писали.
Вот вчера нарыл на сайте www.shellcode.ru
хорошое описание как это делается. Буду разбираться.

Разобрался со всем, но есть один глюк... всё рушется при вызове функции HeapAlloc
т.е. я попытался shell-code запустить через делфи. тоесть загрузить его в массим и передать его функции call. и через отладчик посмотреть что и как.
Ошибка - привелегированная инструкция :\

Эх. не стал копаться с этой HeapAlloc.
А просто выделил в самом коде буфер 256 байт.
Надеюсь хватит чтобы поместился путь к папке TEMP + имя файла (7 байт)
Но из-за этого увеличисля размешь shell-coda. теперь он стал 738 байт.
Попробую может смогу уменьшить :\

slesh
18.03.2007, 20:57
Дописал прогу.
Её характеристики:
Размер: 23,5 килобайта
Размер shell-coda: 681 байт
Прога перед записью в файл осуществляет просто шифрование shell-coda и добавляемой программы.
т.е. xor [ebp+ecx],cl
Тестил на XP SP2 без патча и 2003. Работает нормально.
Но есть один облом - многие антивири палят создаваемую картинку. за исключение DR.WEB'a
т.е. Online проверка DR.WEB пишет что вирусов нет.
При онлайн проверке касперским - Проверенный файл: image.gif - подозрение на вирус
image.gif - подозрение на вирус Exploit.Win32.IMG-WMF

проверить на других антивирях нет возможности.
Если комунить нужна будет эта прога, то стучитесь в асю 266-334-734 там договоримся!