Wmf-Баг защита от антивиря

Discussion in 'Безопасность и Анонимность' started by slesh, 16 Mar 2007.

  1. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Народ, тут такое дело. Я был в шоке от антивирей.
    Короче, дело обстоит так. Я написал прогу которая создаёт картинку в WMF формате в которую внедряет любую прогу. т.е. Если система не пропатченая, то запускается код который находится в WMF файле. Этот код выдирает из этой картинки прикрепленную прогу. Сохраняет её в temp и потом запускает. всё пашет идеально, даже проги через которые смотришь эту картинку после запуска exploit'a не вешаются и не выдают никаких ошибок.
    Но облом в том, что антивири DR-WEB палит эти картинки. Я так и не могу допереть как он их палит, т.е. я добавлял перед shell-кодом и после него различный мусор, типа рисование линий. Но антивирь всё равно палит. Как я понял палит он по сигнатуре:
    26h //Escape
    ??
    09h //SETABORTPROC
    00h
    Самое интерестно что если эти данные распологаются в виде параметров какойлибо функции рисования, то антивирь игнорит их. Т.е. получается что антивирь детально разбирает WMf файл? т.е. анализирует все данные и ишет только когда эта сигнатура встречается только как функция а не как парамерт :\
    Может ктонить знает как можно спрятать эту сигнатуру чтобы и антивирь не палил и shell код работал?
    Если картинку сменить расширение на JPG или на BMP то всё работает нормально, но антивирь всё равно палит. Просто непойму как он может так точно определять наличие этих 4-х байт в нужном месте, если даже расширения не совпадают :\

    Всё народ... уже не надо... я нашел как обмануть антивирь без потери работоспособности. А всё из-за того, что Ms плюют на собственне стандарты
     
    #1 slesh, 16 Mar 2007
    Last edited by a moderator: 17 Mar 2007
  2. gizmo

    gizmo Elder - Старейшина

    Joined:
    21 Dec 2006
    Messages:
    126
    Likes Received:
    28
    Reputations:
    9
    поделись, не держи в себе
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Пока не могу, т.к. еще не доконца доделан код. т.е. покачто будет пахать только на SP2 без всяких дороботок. т.к. я по брал адреса всех API функций из kernel32.dll - свой системы. т.е. просто узнал по какому смещению находится какая функция, так что если будет библиотека чуть другой версии то уже пахать не будет.
    Вот теперь ищу мануал как можно автоматически находить адреса этих функций не зависимо от платформы. т.е. Адрес куда загружена kernel32.dll определят запросто на любой системе. даже на 98 и 2003 винде.
    А так для работы кода нужно только знать адреса этих функций:
    GetTempPathA
    GetProcessHeap
    HeapAlloc
    CreateFileA
    WriteFile
    CloseHandle
    WinExec
    Все из kernel32.dll хотя по поводу HeapAlloc есть сомнение, т.к. под NT форвардится она из NTDLL.RtlAllocateHeap
    Если кто поможет вычислить адреса этих функций, тому прогу в первую очередь!
     
  4. asm33

    asm33 Elder - Старейшина

    Joined:
    19 Jan 2006
    Messages:
    55
    Likes Received:
    7
    Reputations:
    4
    дак эту хрень (поиск адреса) в хацкере писали http://www.xakep.ru/post/23159/default.asp

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

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Почитаю что в хакере писали.
    Вот вчера нарыл на сайте www.shellcode.ru
    хорошое описание как это делается. Буду разбираться.

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

    Эх. не стал копаться с этой HeapAlloc.
    А просто выделил в самом коде буфер 256 байт.
    Надеюсь хватит чтобы поместился путь к папке TEMP + имя файла (7 байт)
    Но из-за этого увеличисля размешь shell-coda. теперь он стал 738 байт.
    Попробую может смогу уменьшить :\
     
    #5 slesh, 17 Mar 2007
    Last edited by a moderator: 17 Mar 2007
  6. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Дописал прогу.
    Её характеристики:
    Размер: 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 там договоримся!
     
    2 people like this.