Добро пожаловать на независимую площадку Stop Malware.
Показано с 1 по 1 из 1

Тема: Ищем в системе уязвимости!

Понравилась статья? Поделись с друзьями!
  1. #1
    Аватар для Александр
    Александр
    Александр на форуме

    Администратор
    Регистрация
    21.03.2011
    Адрес
    Казахстан
    Сообщений
    5,421
    Поблагодарил(а)
    3,531
    Благодарностей
    2,028
    Записей в дневнике
    23

    Лампочка Ищем в системе уязвимости!

    Очень часто вирусы проникают на компьютер посредством своебразных дыр в операционной системе, также именуемых уязвимостями.

    Проверить наличие уязвимостей в ОС можно не пренебригая к каким-то специальным утилитам, для этого можно выполннить скрипт в AVZ, по окончанию проверки будет сформирован лог avz_log.txt, в котором и будут записи о найденных уязвимостях с ссылками на закачку заплаток.

    Скрипт который необходимо выполнить в AVZ находить на постоянном адресе http://df.ru/~kad/ScanVuln.txt

    Код:
    {	Скрипт AVZ для обнаружения наиболее часто используемых уязвимостей. Версия 1.27
    		Автор:  AndreyKa, участник форума defendium.info
    	Скрипт может свободно распространяться, при условии сохранения данного комментария
    		Постоянный адрес скрипта: http://dataforce.ru/~kad/ScanVuln.txt
    }
    var
    ICounter : Integer;
    A00,A01,A02,A03,A04,A05,A06,A07,A08,A09,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,
    A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31 : string;
    
    function IsFileBuldLow(VulnFileName: string; IMinVer: integer) : boolean;
    var
    ARes : string;
    IPos, IBuild : Integer;
    begin
      ARes := GetFileVersion(VulnFileName, 6);
      IPos := Pos('.', ARes);
      while IPos > 0 do
      begin
        Delete(ARes, 1, IPos);
        IPos := Pos('.', ARes);
      end;
      Result := False; 
      if ValidInt(ARes) then
      begin
        IBuild := StrToInt(ARes);
        if IBuild < IMinVer then
          Result := True
      end;
    end;
    
    function IsFileSubVerLow(VulnFileName:string; IMinSubVer:Extended):boolean;
    var
    ARes: string;
    IPos: Integer;
    begin
      ARes := GetFileVersion(VulnFileName, 6);
      IPos := Pos('.', ARes);
      Delete(ARes, 1, IPos);
      IPos := Pos('.', ARes);
      Delete(ARes, 1, IPos);
      Result := False; 
      if ValidFloat(ARes) then
        if StrToFloat(ARes) < IMinSubVer then
          Result := True;
    end;
    
    Procedure WinVuln;
    var
    AOSVer, ASP, AResult, ID : string;
    IMinVer, IOSVer, IEVer : integer;
    IMinSubVer: Extended;
    FS : TFileSearch;
    SL : TStringList;
    begin
     if not IsNT then exit;
      // Определить версию ОС
      AOSVer := RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\Windows NT\CurrentVersion','CurrentVersion');
      if AOSVer < '5.0' then exit;
      IOSVer := 0;
      ASP := RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\Windows NT\CurrentVersion','CSDVersion');
      if AOSVer = '5.0' then
        if ASP <> 'Service Pack 4' then
          AddToLog(A01)
        else
        begin
    	IOSVer:=4;
    	AddToLog(A02);
    	AddToLog('http://support.microsoft.com/lifecycle/?p1=3071'); AddToLog('');
    	ICounter:=ICounter+1;
        end;
      if AOSVer = '5.1' then
        if ASP < 'Service Pack 3' then
          AddToLog(A03)
        else
    	if ASP = 'Service Pack 3' then IOSVer := 13;
      if AOSVer = '5.2' then
        if ASP < 'Service Pack 2' then
          AddToLog(A04)
        else
          if ASP = 'Service Pack 2' then IOSVer := 22;
      if AOSVer = '6.0' then
      begin
        ASP := RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\Windows NT\CurrentVersion','CurrentBuild');
        if ASP < '6001' then
        begin
          AddToLog(A05);
          if IsWOW64 then
          begin
    	AddToLog(A00+'86d267bd-dfcd-47cf-aa76-dc0626dcdf10');
    	AddToLog(A00+'8ad69826-03d4-488c-8f26-074800c55bc3');
          end
          else
          begin
    	AddToLog(A00+'F559842A-9C9B-4579-B64A-09146A0BA746');
    	AddToLog(A00+'891ab806-2431-4d00-afa3-99ff6f22448d');
          end;
          AddToLog('');
        end;
        if ASP = '6001' then  IOSVer := 31;
        if ASP = '6002' then  IOSVer := 32;
      end;
      if AOSVer = '6.1' then
        IOSVer := 40;
    
      if IOSVer = 0 then
         exit; // не удалось определить версию SP ОС или ОС не поддреживается
      if IsWOW64 then IOSVer := IOSVer + 100;
    
      AddToLog(A06);
      FS := TFileSearch.Create(nil);
    
      IMinVer := 0;
      case IOSVer of
      4  : begin IMinVer := 7203; ID := 'E22EB3AE-1295-4FE2-9775-6F43C5C2AED3'; end;
      13 : begin IMinVer := 5694; ID := '0D5F9B6E-9265-44B9-A376-2067B73D6A03'; end;
      22 : begin IMinVer := 4392; ID := 'F26D395D-2459-4E40-8C92-3DE1C52C390D'; end;
      122: begin IMinVer := 4392; ID := 'C04D2AFB-F9D0-4E42-9E1F-4B944A2DE400'; end;
      end;
      if IMinVer <> 0 then
        if IsFileBuldLow('%System32%\Netapi32.dll', IMinVer) then
      begin
    	AddToLog(A07);
    	AddToLog(A00+ID); AddToLog('');
    	ICounter:=ICounter+1;
      end;
    
      // http://www.microsoft.com/rus/technet/security/bulletin/MS10-054.mspx
      IMinVer := 0;
      case IOSVer of
      4  : begin IMinVer := 7365; ID := '267ce982-54a0-418f-ad52-e4963610f714'; end; // MS10-012
      13 : begin IMinVer := 6002; ID := '6E5E16F8-C140-4A1D-B898-8417A6BFD4D8'; end;
      22 : begin IMinVer := 4733; ID := '230E8559-E6DF-49D5-ACB5-B0CD4BDE0BF4'; end;
      122: begin IMinVer := 4733; ID := '03804F59-748E-4832-98E4-2D88564BD10A'; end;
      end;
      AResult := '\\127.0.0.1\'+StringReplace(NormalFileName('%System32%\drivers\Srv.sys'),':','$');
      if not FileExists(AResult) then AResult:='%System32%\drivers\Srv.sys';
      if IMinVer <> 0 then
        if IsFileBuldLow(AResult, IMinVer) then
      begin
    	AddToLog(A08);
    	AddToLog(A00+ID); AddToLog('');
    	ICounter:=ICounter+1;
      end;
    
      // MS10-013
      IMinVer := 0;
      case IOSVer of
      4:begin
          AResult := RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\DirectX','Version');
          AResult := Copy(AResult, 3, 2);
          if ValidInt(AResult) then
    	case StrToInt(AResult) of
    	7: begin IMinVer := 738; ID := '16787c93-2c95-4c13-8492-be1db9d18146'; end;
    	9: begin IMinVer := 913; ID := '59a8bc19-02bb-4800-bac1-464f59e1cb7b'; end;
    	end;
        end;
      13 : begin IMinVer := 5908; ID := '7ab53be3-3f42-4e61-a2bc-3ed41d8736ff'; end;
      22 : begin IMinVer := 4625; ID := '983c5484-6321-4765-97ec-8d42d42d1f70'; end;
      122: begin IMinVer := 4625; ID := '7dc20252-6091-407b-befc-c25e8f5d3fb0'; end;
      end;
      if IMinVer <> 0 then
        if IsFileBuldLow('%System32%\Quartz.dll', IMinVer) then
      begin
    	AddToLog(A09);
    	AddToLog(A00+ID); AddToLog('');
    	ICounter:=ICounter+1;
      end;
    
      // Уязвимость элемента ActiveX средства просмотра снимков Microsoft Access делает возможным удаленное выполнение кода 
      // MS08-041
      SetKillBit('{F0E42D50-368C-11D0-AD81-00A0C90DC8D9}');
      SetKillBit('{F0E42D60-368C-11D0-AD81-00A0C90DC8D9}');
      SetKillBit('{F2175210-368C-11D0-AD81-00A0C90DC8D9}');
    
      // Уязвимости в веб-компонентах Microsoft Office делают возможным удаленное выполнение кода
      // MS09-043
      SetKillBit('{0002E543-0000-0000-C000-000000000046}');
      SetKillBit('{0002E55B-0000-0000-C000-000000000046}');
      SetKillBit('{0002E541-0000-0000-C000-000000000046}');
      SetKillBit('{0002E559-0000-0000-C000-000000000046}');
      SetKillBit('{0002E512-0000-0000-C000-000000000046}');
      SetKillBit('{0002E510-0000-0000-C000-000000000046}');
      SetKillBit('{0002E511-0000-0000-C000-000000000046}');
      SetKillBit('{0002E533-0000-0000-C000-000000000046}');
      SetKillBit('{0002E530-0000-0000-C000-000000000046}');
    
      // MS11-003
      AResult := RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\Internet Explorer','Version');
      AResult := Copy(AResult, 1, 1);
      ID := '';
      if ValidInt(AResult) then
      begin
       IEVer:=StrToInt(AResult);
       case IEVer of
       8: case IOSVer of
          13: ID := 'c72fbb97-2313-45f6-842d-99db373822dd';
          22: ID := '74238e08-fae2-4f17-ac72-681226a53a40';
          122:ID := 'ebef4869-9812-46ce-9c01-2fb8c866ec90';
          31: ID := '77971c3c-55ec-4a9c-bcb8-8fb8c61431e3';
          32: ID := '77971c3c-55ec-4a9c-bcb8-8fb8c61431e3';
          131:ID := 'd3580784-aada-4118-b7f2-3a23aec2ed04';
          132:ID := 'd3580784-aada-4118-b7f2-3a23aec2ed04';
          40: ID := '07aa7ffc-47c7-4611-b32c-ecb3fbcad32f';
          140:ID := '2b8ffafe-78bb-4fa7-aea2-01208b6a3dfe';
    	end;
       7: case IOSVer of
          13: ID := '85bf88b7-2dd9-4204-8492-b2c1d8d2264e';
          22: ID := '45e504d4-c17d-4b73-b08e-d9c0cb3f4918';
          122:ID := '29adcfb5-540f-4980-b2ca-9a22aa7bba13';
          31: ID := 'b176777e-4897-4cf1-9fc0-dd608930bb4c';
          32: ID := 'b176777e-4897-4cf1-9fc0-dd608930bb4c';
          131:ID := '20ad0136-c6df-4c7b-811f-d6b3dd9e2c56';
          132:ID := '20ad0136-c6df-4c7b-811f-d6b3dd9e2c56';
    	end;
       6: case IOSVer of
          13: ID := 'ae343de6-ec61-4891-b136-cfc4234d97d9';
          22: ID := '5e0f4bf2-f727-483a-af3a-9a2abf0c36bb';
          122:ID := '0592b520-88d1-45bc-8b15-d3f0c8fa2181';
     	end;
       end;
      end;
      if ID <> '' then
       if FS.FindFirst('%System32%\Mshtml.dll') then
        if FS.FileTime < 1032700000 then
         begin
    	AddToLog(A10);
    	AddToLog(A00+ID); AddToLog('');
    	ICounter:=ICounter+1;
         end;
    
      //http://www.microsoft.com/technet/security/advisory/2458511.mspx
      AResult:=NormalFileName('%USERPROFILE%\KB2458511.CSS');
      if FileExists(AResult) then
      begin
       DeleteFile(AResult);
       RegKeyParamDel('HKCU','Software\Microsoft\Internet Explorer\Styles','User Stylesheet');
       RegKeyIntParamWrite('HKCU','Software\Microsoft\Internet Explorer\Styles','Use My Stylesheet',0);
       AResult:=NormalFileName('%USERPROFILE%\CSS-backup.reg');
       if FileExists(AResult) then
       begin
        ExecuteFile('Regedit.exe','/c "'+AResult+'"',0,5000,true);
        DeleteFile(AResult);
       end;
      end;
    
      // MS10-034
      if (IOSVer=122) or (IOSVer<14) then
       if NoKillBit('{E0ECA9C3-D669-4EF4-8231-00724ED9288F}') then
       begin
        AddToLog(A11);
        case IOSVer of
          4:  ID := 'd3955983-0079-476e-a488-99713097259c';
         13:  ID := '8c3f2e81-c0ea-494a-a47c-4f8982effb49';
         122: ID := '4aa0ec4f-5502-4f2a-9732-975518c34444';
        end;
        AddToLog(A00+ID);
        AddToLog('');
        ICounter:=ICounter+1;
       end;
    
      // MS10-042
      IMinVer := 0;
      case IOSVer of
      13 : begin IMinVer := 5997; ID := '7C2122BB-0ECF-4467-A3BA-6FB862F603C5'; end;
      22 : begin IMinVer := 4726; ID := 'CD4363B2-D7A7-4FFF-8BCD-6FD02BD1AC07'; end;
      122: begin IMinVer := 4726; ID := 'A6BAFD3B-C921-466D-BEE0-59A3FE126712'; end;
      end;
      if IMinVer <> 0 then
      begin
        if IsFileBuldLow('%SystemRoot%\PCHEALTH\HELPCTR\Binaries\Helpsvc.exe', IMinVer) then
        begin
    	AddToLog(A12);
    	AddToLog(A00+ID); AddToLog('');
    	ICounter:=ICounter+1;
        end
        else if not RegKeyExists('HKCR','HCP\shell') then 
    	RegKeyParamWrite('HKCR','HCP\shell\open\command','','REG_EXPAND_SZ',
    	'%SystemRoot%\PCHEALTH\HELPCTR\Binaries\HelpCtr.exe -FromHCP -url "%1"');
      end;
    
      // http://securitytracker.com/alerts/2007/Oct/1018843.html
      SetKillBit('{FDC7A535-4070-4B92-A0EA-D9994BCC0DC5}');
    
      // MS10-046
      ID := '';
      case IOSVer of
      40 : ID := '22E62B5C-E4C1-47D0-AE4A-8BD2D70D0A0A';
      140: ID := '9499F771-C388-4DE3-A5C7-8CC8B00B4395';
      end;
      if ID <> '' then
       if FS.FindFirst('%System32%\Shell32.dll') then
        if FS.FileTime < 1023000000 then
         begin
    	AddToLog(A13);
    	AddToLog(A00+ID); AddToLog('');
    	ICounter:=ICounter+1;
         end;
    
      // MS11-006
      ID := '';
      case IOSVer of
      13 : ID := 'BBEA7EAD-6C5C-4DA8-AA03-A40325FD2DE3';
      22 : ID := '2AA94528-5063-427B-97F7-2A0A55CBB6BF';
      122: ID := '6E740922-6CE4-46EC-A35E-E94201A9E398';
      31 : ID := '0C18ECCA-AFB9-4738-BC7B-76A0E815DFB8';
      32 : ID := '0C18ECCA-AFB9-4738-BC7B-76A0E815DFB8';
      131: ID := '62DC454F-4B1E-4AC0-8FFE-6C73112F8D4D';
      132: ID := '62DC454F-4B1E-4AC0-8FFE-6C73112F8D4D';
      end;
      if ID <> '' then
       if FS.FindFirst('%System32%\Shell32.dll') then
        if FS.FileTime < 1042500000 then
         begin
    	AddToLog(A31);
    	AddToLog(A00+ID); AddToLog('');
    	ICounter:=ICounter+1;
         end;
    
      // MS10-061
      if IOSVer = 13 then
      begin
        if IsFileBuldLow('%System32%\Spoolsv.exe', 6024) then
        begin
    	AddToLog(A30);
    	AddToLog(A00+'93FABA6B-0A85-4ACC-B527-A012BBF56B13'); AddToLog('');
    	ICounter:=ICounter+1;
        end;
      end;
      FS.Free;
    end;
    
    Function NoKillBit(CLSID: string) : boolean;
    begin
     Result:=RegKeyExists('HKCR','CLSID\'+CLSID) and
    	not RegKeyExists('HKLM','SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\'+CLSID);
    end;
    
    Procedure SetKillBit(CLSID: string);
    begin
      if NoKillBit(CLSID) then
        RegKeyIntParamWrite('HKLM','SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\'+CLSID,'Compatibility Flags', 1024);
    end;
    
    Procedure AdobeFlashVuln;
    var
    AResult : string;
    begin
      AResult := RegKeyStrParamRead('HKLM',
    	'SOFTWARE\Classes\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InprocServer32','');
      AResult := GetFileVersion(AResult, 6);
      if IsFlashOld(AResult) then
      begin
        AddToLog(A14);
        AddToLog('http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player_ax.exe'); AddToLog('');
        ICounter:=ICounter+1;
      end;
      AResult := RegKeyStrParamRead('HKLM',
    	'SOFTWARE\MozillaPlugins\@adobe.com/FlashPlayer','Version');
      if IsFlashOld(AResult) then
      begin
        AddToLog(A15);
        AddToLog('http://fpdownload.adobe.com/get/flashplayer/current/install_flash_player.exe'); AddToLog('');
        ICounter:=ICounter+1;
      end;
    end;
    
    function IsFlashOld(AFlVer: string) : boolean;
    var
    AVer : string;
    begin
      Result := false;
      if AFlVer = '' then exit;
      AFlVer := StringReplace(AFlVer, ',', '.');
      AVer := Copy(AFlVer, 1, 2);
      if AVer = '10' then
      begin
        Delete(AFlVer, 1, 5);
        if ValidFloat(AFlVer) then
    	if StrToFloat(AFlVer) < 153.1 then Result:=true;
       end else Result := true;
    end;
    
    Procedure AdobeReaderVuln;
    var
    ARes, AVer, AMinVer, CVer, AKey, AExe : string;
    begin
      ARes:='';
      if RegKeyExists('HKLM',
    	'SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Browser Helper Objects\{06849E9F-C8D7-4D59-B87D-784B7D6BE0B3}')
      then ARes:='06849E9F-C8D7-4D59-B87D-784B7D6BE0B3'
      else if RegKeyExists('HKLM',
    		'SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Browser Helper Objects\{18DF081C-E8AD-4283-A596-FA578C2EBDC3}')
    	then ARes:='18DF081C-E8AD-4283-A596-FA578C2EBDC3';
      if ARes = '' then exit;
      ARes := RegKeyStrParamRead('HKCR','CLSID\{'+ARes+'}\InprocServer32','');
      AVer := GetFileVersion(ARes, 6);
      AMinVer := '';
      CVer := Copy(AVer, 1, 1);
      if ValidInt(CVer) then
        case StrToInt(CVer) of
         1:AMinVer := '10';
         8: AMinVer := '8.2.5';
         9: AMinVer := '9.4';
         end
      else exit;
      if CVer='1' then CVer:='10';
      AExe := RegKeyStrParamRead('HKCR','Software\Adobe\Acrobat\Exe','');
    
      if Pos('acrobat.exe',LowerCase(AExe)) > 0 then
      begin
        if AMinVer = '' then
        begin
    	AddToLog(A16); AddToLog('');
    	ICounter:=ICounter+1;
        end
       else
       begin
        ARes:=RegKeyStrParamRead('HKLM','SOFTWARE\Adobe\Adobe Acrobat\'+CVer+'.0\Installer','ENU_GUID');
        AVer:=RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'+ARes,'DisplayVersion');
        if AVer<AMinVer then
        begin
    	AddToLog(A17 + AVer + A18 + AMinVer);
    	if CVer='8' then
    	begin
    	 if AVer < '8.1' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.1/misc/AcrobatUpd810_efgj_incr.msp');
    	 if AVer < '8.1.1' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.1.1/misc/AcrobatUpd811_all_incr.msp');
    	 if AVer < '8.1.2' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.1.2/misc/AcrobatUpd812_all_incr.msp');
    	 if AVer < '8.1.3' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.1.3/misc/AcrobatUpd813_all_incr.msp');
    	 if AVer < '8.1.6' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.1.6/misc/AcrobatUpd816_all_incr.msp');
    	 if AVer < '8.1.7' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.1.7/misc/AcrobatUpd817_all_incr.msp');
    	 if AVer < '8.2' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.2/misc/AcrobatUpd820_all_incr.msp');
    	 if AVer < '8.2.2' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.2.2/misc/AcrobatUpd822_all_incr.msp');
    	 if AVer < '8.2.3' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.2.3/misc/AcrobatUpd823_all_incr.msp');
    	 if AVer < '8.2.5' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/8.x/8.2.5/misc/AcrobatUpd825_all_incr.msp');
    	end
    	else // 9
    	begin
    	 if AVer < '9.1' then
    	 begin
    	  AddToLog('Pro/Standard - http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.1/misc/AcroProStdUpd910_T3T4_incr.msp');
    	  AddToLog('Pro Extended - http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.1/misc/AcroProExUpd910_all_incr.msp');
    	 end;
    	 if AVer < '9.1.2' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.1.2/misc/AcrobatUpd912_all_incr.msp');
    	 if AVer < '9.1.3' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.1.3/misc/AcrobatUpd913_all_incr.msp');
    	 if AVer < '9.2' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.2/misc/AcrobatUpd920_all_incr.msp');
    	 if AVer < '9.3' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.3/misc/AcrobatUpd930_all_incr.msp');
    	 if AVer < '9.3.2' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.3.2/misc/AcrobatUpd932_all_incr.msp');
    	 if AVer < '9.3.3' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.3.3/misc/AcrobatUpd933_all_incr.msp');
    	 if AVer < '9.4' then
    	  AddToLog('http://ardownload.adobe.com/pub/adobe/acrobat/win/9.x/9.4.0/misc/AcrobatUpd940_all_incr.msp');
    	end;
    	AddToLog(''); ICounter:=ICounter+1;
        end;
       end;
      end else
      begin
        if AMinVer = '' then
        begin
    	AddToLog(A19);
    	AddToLog('http://get.adobe.com/reader/otherversions'); AddToLog('');
    	ICounter:=ICounter+1;
        end else
        begin
         ARes:=RegKeyStrParamRead('HKLM','SOFTWARE\Adobe\Acrobat Reader\'+CVer+'.0\Installer','ENU_GUID');
         AVer:=RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'+ARes,'DisplayVersion');
         if AVer<AMinVer then
         begin
    	AddToLog(A20 + AVer + A18 + AMinVer);
    	if CVer='8' then
    	begin
    	  if AVer<'8.2' then
    	  begin
    		AddToLog(A21);
    		AddToLog('http://get.adobe.com/reader/otherversions/');
    	  end else
    	  begin
    		if AVer < '8.2.2' then
    		  AddToLog('http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.2.2/misc/AdbeRdrUpd822_all_incr.msp');
    		if AVer < '8.2.3' then
    		  AddToLog('http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.2.3/misc/AdbeRdrUpd823_all_incr.msp');
    		if AVer < '8.2.5' then
    		  AddToLog('http://ardownload.adobe.com/pub/adobe/reader/win/8.x/8.2.5/misc/AdbeRdrUpd825_all_incr.msp');
    	  end;
    	end else // 9
    	begin
    	  AddToLog(A19);
    	  AddToLog('http://get.adobe.com/reader/otherversions');
    	end;
            AddToLog(''); ICounter:=ICounter+1;
         end;
        end;
      end;
      ARes := ExtractFilePath(NormalFileName(AExe))+'authplay.dll';
      if (AVer='9.4.0') and FileExists(ARes) then DeleteFile(ARes);
    end;
    
    Procedure FireFoxVuln;
    var
    AResult,AVer,ASubVer:string;
    Ver,SubVer,Buld:integer;
    FFIsOut:boolean;
    begin
      if RegKeyExists('HKCU','SOFTWARE\Mozilla\Mozilla Firefox') then
       AResult:=RegKeyStrParamRead('HKCU','SOFTWARE\Mozilla\Mozilla Firefox','')
      else if RegKeyExists('HKLM','SOFTWARE\Mozilla\Mozilla Firefox') then
       AResult:=RegKeyStrParamRead('HKLM','SOFTWARE\Mozilla\Mozilla Firefox','')
       else exit;
      AVer := Copy(AResult, 3, 1);
      if ValidInt(AVer) then Ver:=StrToInt(AVer) else exit;
      AVer := Copy(AResult, 5, 1);
      if ValidInt(AVer) then SubVer:=StrToInt(AVer) else SubVer:=0;
      Delete(AResult, 1, 6);
      if ValidInt(AResult) then Buld:=StrToInt(AResult) else Buld:=0;
      FFIsOut:=false;
      if Ver < 9 then FFIsOut:=true else
       case SubVer of
       0: FFIsOut:=true;
       1: if Buld<15 then FFIsOut:=true;
       2: if Buld<12 then FFIsOut:=true;
       end;
      if FFIsOut then
      begin
        AResult:=RegKeyStrParamRead('HKLM','SOFTWARE\Mozilla\Mozilla Firefox','CurrentVersion');
        AddToLog('Firefox '+AResult+A22);
        AddToLog('http://www.mozilla.com/'); AddToLog('');
        ICounter:=ICounter+1;
      end;
    end;
    
    Procedure JavaVuln;
    var
    ARes,ABuld : string;
    JavaIsOut:boolean;
    begin
      ARes := RegKeyStrParamRead('HKLM','SOFTWARE\JavaSoft\Java Runtime Environment','CurrentVersion');
      if ARes='' then exit;
      JavaIsOut:=false;
      ABuld := RegKeyStrParamRead('HKLM','SOFTWARE\JavaSoft\Java Runtime Environment','BrowserJavaVersion');
      if ABuld='' then
    	ABuld := RegKeyStrParamRead('HKLM','SOFTWARE\JavaSoft\Java Web Start','CurrentVersion');
      if ARes='1.6' then
       if ABuld<'1.6.0_20' then JavaIsOut:=true;
      if ARes='1.5' then
       if ABuld<'1.5.0_24' then JavaIsOut:=true;
      if ARes='1.4' then
       if ABuld<'1.4.2_26' then JavaIsOut:=true;
      if JavaIsOut then
      begin
        AddToLog(A23);
        AddToLog(A24); AddToLog('');
        ICounter:=ICounter+1;
      end;
    end;
    
    Procedure OperaVuln;
    var
    AResult,AVer:string;
    cVer:char;
    iPos:integer;
    begin
      AResult:=RegKeyStrParamRead('HKLM','SOFTWARE\Opera Software','Last CommandLine v2');
      if AResult = '' then
        AResult:=RegKeyStrParamRead('HKCU','SOFTWARE\Opera Software','Last CommandLine v2');
      if AResult = '' then exit;
      iPos := Pos('.exe', AResult);
      AResult := Copy(AResult, 1, iPos+4);
      AVer := GetFileVersion(AResult, 6);
      if AVer = '' then exit;
      cVer := Copy(AVer, 1, 1);
      if (cVer='1') or (AVer>'9.52') then exit;
      AddToLog('Opera '+AVer+A25);
      AddToLog('http://www.opera.com/browser/download'); AddToLog('');
      ICounter:=ICounter+1;
    end;
    
    Procedure QuickTimeVuln;
    var
    AResult, AVer :string;
    begin
      AResult:=RegKeyStrParamRead('HKCR','CLSID\{02BF25D5-8C17-4B23-BC80-D3488ABDDC6B}\InprocServer32','');
      if not FileExists(AResult) then exit;
      AVer:=GetFileVersion(AResult,3);
      Delete(AVer,7,7);
      if AVer<'7.6.8' then
      begin
       AddToLog('QuickTime '+AVer+A22);
       AddToLog('http://www.apple.com/quicktime/download'); AddToLog('');
       ICounter:=ICounter+1;
      end;
    end;
    
    begin
      ClearLog;
      if TranslateStr('$AVZ0075')='DLLs' then
      begin
       A00:='http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=';
       A01:='Install Service Pack 4 for Windows 2000';
       A02:='Windows 2000 lifecycle ended';
       A03:='Install Service Pack 3 for Windows XP';
       A04:='Install Service Pack 2 for Windows 2003';
       A05:='Install Windows Vista Service Pack 1 and 2';
       A06:='Search for critical vulnerabilities';
       A07:='Vulnerability in Server Service Could Allow Remote Code Execution';
       A08:='Vulnerabilities in SMB Server Could Allow Remote Code Execution';
       A09:='Vulnerability in Microsoft DirectShow Could Allow Remote Code Execution';
       A10:='Cumulative Security Update for Internet Explorer';
       A11:='Cumulative Security Update of ActiveX Kill Bits';
       A12:='Vulnerability in Help and Support Center Could Allow Remote Code Execution';
       A13:='Vulnerability in Windows Shell Could Allow Remote Code Execution';
       A14:='Vulnerabilities in Adobe Flash Player for Internet Explorer';
       A15:='Vulnerabilities in Adobe Flash Player for Firefox/Safari/Opera';
       A16:='Install Adobe Acrobat 9 or uninstall vulnerable';
       A17:='Adobe Acrobat ';
       A18:='installed. You mast update it up to ';
       A19:='Install Adobe Reader 9.4 or uninstall vulnerable.';
       A20:='Adobe Reader ';
       A21:='Install Adobe Reader 8.2 and update it to 8.2.5. Or install Adobe Reader 9.4';
       A22:=' vulnerable. Uninstall it or install actual one';
       A23:='Vulnerabilities in Sun Java JDK and JRE. Uninstall it and install actual one:';
       A24:='http://www.java.com/en/download/manual.jsp';
       A25:=A22;
       A26:='Frequently used critical vulnerabilities not found';
       A27:='Vulnerabilities found: ';
       A28:='Log saved in subfolder Log';
       A29:='Log saved in c:\avz_log.txt file';
       A30:='Vulnerability in Print Spooler Service Could Allow Remote Code Execution';
       A31:='Vulnerability in Windows Shell Graphics Processing could allow remote code execution';
      end else
      begin
       A00:='http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=';
       A01:='Установите Service Pack 4 для Windows 2000';
       A02:='Жизненный цикл Windows 2000 закончился';
       A03:='Установите Service Pack 3 для Windows XP';
       A04:='Установите Service Pack 2 для Windows 2003';
       A05:='Установите Service Pack 1 и 2 для Windows Vista';
       A06:='Поиск критических уязвимостей';
       A07:='Уязвимость службы сервера делает возможным удаленное выполнение кода';
       A08:='Уязвимости в протоколе SMB делают возможным удаленное выполнение кода';
       A09:='Уязвимости в Microsoft DirectShow делают возможным удаленное выполнение кода';
       A10:='Накопительное обновление безопасности для браузера Internet Explorer';
       A11:='Накопительное обновление для системы безопасности, устанавливающее флаг блокировки для элемента ActiveX';
       A12:='Уязвимость в Центре справки и поддержки Windows';
       A13:='Уязвимость оболочки Windows делает возможным удаленное выполнение кода';
       A14:='Уязвимости в Adobe Flash Player для Internet Explorer';
       A15:='Уязвимости в Adobe Flash Player для Firefox/Safari/Opera';
       A16:='Установите Adobe Acrobat 9 или удалите старый';
       A17:='Установлен Adobe Acrobat версии ';
       A18:='. Необходимо обновить его до версии ';
       A19:='Установите Adobe Reader 9.4 или удалите старый.';
       A20:='Установлен Adobe Reader версии ';
       A22:=' устарел. Удалите его или установите новый';
       A21:='Adobe Reader 8.2 есть только с английским интерфейсом. Для русского интерфейса установите версию 9.4';
       A23:='Множественные уязвимости в Sun Java JDK и JRE. Деинсталлируйте старую версию и установите новую:';
       A24:='http://www.java.com/ru/download/manual.jsp';
       A25:=' устарела. Удалите её или установите новую';
       A26:='Часто используемые уязвимости не обнаружены';
       A27:='Обнаружено уязвимостей: ';
       A28:='Протокол сохранён в под-папке Log';
       A29:='Протокол сохранён в файле c:\avz_log.txt';
       A30:='Уязвимость в службе диспетчера очереди печати делает возможным удаленное выполнение кода';
       A31:='Уязвимость обработки графики в оболочке Windows делает возможным удаленное выполнение кода';
      end;
      ICounter:=0;
      WinVuln;
      AdobeFlashVuln;
      AdobeReaderVuln;
      FireFoxVuln;
      JavaVuln;
      OperaVuln;
      QuickTimeVuln;
    
      if (ICounter=0) then AddToLog(A26)
      else
      begin
       AddToLog(A27+IntToStr(ICounter));
       SaveLog(GetAVZDirectory+'log\avz_log.txt');
       if FileExists(GetAVZDirectory+'log\avz_log.txt') then
         AddToLog(A28)
       else
       begin
        SaveLog('c:\avz_log.txt');
        AddToLog(A29);
       end;
      end;
    end.
    Скрипт абсолютно безопасен и работатет на Windows XP/Vista/7.

    Последний раз редактировалось Bern; 03.04.2011 в 21:20.

 

 

Похожие темы

  1. Trojan.MbrLock ищем код разблокировки
    от Ксения в разделе Винлоки - анализ, рассмотрение и коды разблокировки
    Ответов: 0
    Последнее сообщение: 26.10.2011, 23:49

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •