{ Скрипт AVZ для обнаружения наиболее часто используемых уязвимостей. Версия 1.39 Автор: Андрей Кондауров, участник форума defendium.info (AndreyKa) Скрипт может свободно распространяться, при условии сохранения данного комментария Постоянный адрес скрипта: 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,A32,A33,A34,A35,A36,A37 : 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 begin AddToLog(A03); AddToLog(''); ICounter:=ICounter+1; end 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 < '6002' then begin if ASP = '6000' then AddToLog(A05); if IsWOW64 then begin if ASP = '6000' then AddToLog(A00+'86d267bd-dfcd-47cf-aa76-dc0626dcdf10') else AddToLog(A32); AddToLog(A00+'8ad69826-03d4-488c-8f26-074800c55bc3'); end else begin if ASP = '6000' then AddToLog(A00+'F559842A-9C9B-4579-B64A-09146A0BA746') else AddToLog(A32); 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 begin IOSVer := 40; if ASP = 'Service Pack 1' then IOSVer := 41; end; 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; // MS11-020 / MS11-048 IMinVer := 0; ID := ''; case IOSVer of 4 : begin IMinVer:=7365; ID:='267ce982-54a0-418f-ad52-e4963610f714'; end; // MS10-012 13 : begin IMinVer:=6082; ID:='CCB08A8A-F4D9-4320-8FFB-3FD4FE217987'; end; 22 : begin IMinVer:=4832; ID:='64C550D4-C927-4382-91E1-473ED6790819'; end; 122: begin IMinVer:=4832; ID:='EF62DB94-4F72-4245-AC9F-6391035E2516'; end; 32 : ID:='D6EDDFF4-A242-4DEC-9D84-72891DB2B754'; 132: ID:='2878C587-6544-40B4-9288-FC3B3CE1128D'; 40 : ID:='CF9E5ECD-68F7-4982-B4ED-BE80859B757C'; 41 : ID:='CF9E5ECD-68F7-4982-B4ED-BE80859B757C'; 140: ID:='2707650A-604C-4044-ACC4-07A30B5640D8'; 141: ID:='2707650A-604C-4044-ACC4-07A30B5640D8'; end; AResult:='%System32%\drivers\Srv.sys'; if not FileExists(AResult) then AResult:='\\127.0.0.1\'+StringReplace(NormalFileName('%System32%\drivers\Srv.sys'),':','$'); if FileExists(AResult) and (ID<>'') then if FS.FindFirst(AResult) then if ((IMinVer=0) and (FS.FileTime<1044000000)) or ((IMinVer>0) and 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-018 (ссылки на MS11-099) 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 := 'f3906245-b6f6-464a-84b6-e1b6b195df95'; 22: ID := '1cbe9469-05f4-4305-bbfd-76b4a04cd598'; 122:ID := 'a42fa727-482c-4578-9a30-61fdf14ed4da'; 32: ID := '4327147b-0481-4172-a835-8786abc50596'; 132:ID := '987f0966-01de-4edf-a0d6-4032d1d72966'; 40: ID := '018610bb-e80a-432a-8f32-f50451f71ad9'; 41: ID := '018610bb-e80a-432a-8f32-f50451f71ad9'; 140:ID := 'dbe85b05-e252-4029-8e25-f2452db1c017'; 141:ID := 'dbe85b05-e252-4029-8e25-f2452db1c017'; end; 7: case IOSVer of 13: ID := 'dc6dcd8c-c39f-4c4b-b5b2-b4c18c36973b'; 22: ID := 'b1b4af92-3ff1-4727-9ba3-52764a7b81bb'; 122:ID := '7a87f890-f106-41ab-bc53-4ca44dc99cb1'; 32: ID := '0adc422f-73f2-46ee-973f-9b7603a76d1e'; 132:ID := '8a3f2351-380b-4566-b186-906dca426d39'; end; 6: case IOSVer of 13: ID := 'caa9360b-2fd8-4f46-99e6-2decf1b60ca7'; 22: ID := '759041cf-fd8b-4e04-b289-d74112bf978b'; 122:ID := '5587eca8-86e9-4a63-81cb-81f68178a6c0'; 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 (ссылки MS11-090) 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'; // MS10-034 13: ID := '21b4b999-2dbf-4921-80bd-cc7ab2cd1190'; 22: ID := 'dfb948c5-8aee-4bcd-babf-3564b78712dd'; 122: ID := '2d37a8cb-2316-4db4-980c-11b6dcbdc696'; 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'; 32 : ID := '0C18ECCA-AFB9-4738-BC7B-76A0E815DFB8'; 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; // KB971029 IMinVer := 0; ID := ''; case IOSVer of 13 : begin IMinVer:=5853; ID:='96ca61f6-8b16-4157-9635-8cfc0bbf4c35'; end; 22 : begin IMinVer:=4559; ID:='edf9c049-bf1e-4130-87e6-0e64fa73f684'; end; 122: begin IMinVer:=4559; ID:='b8df9256-cbb0-418d-a336-d29dc4415a65'; end; 32 : ID:='dd6a61a3-b3c6-4b0a-a848-7b32be9f31c5'; 132: ID:='12e3fe0f-db79-4a27-aa7d-a456ee1c6ac4'; end; AResult:='%System32%\Shsvcs.dll'; if not FileExists(AResult) then AResult:='\\127.0.0.1\'+StringReplace(NormalFileName('%System32%\Shsvcs.dll'),':','$'); if (ID<>'') and FileExists(AResult) then if FS.FindFirst(AResult) then if ((IMinVer=0) and (FS.FileTime<988400000)) or ((IMinVer>0) and IsFileBuldLow(AResult, IMinVer)) then begin AddToLog(A33); AddToLog(A00+ID); AddToLog(''); ICounter:=ICounter+1; end; // MS11-087 IMinVer := 0; ID := ''; case IOSVer of 13 : begin IMinVer:=6178; ID:='b01bb041-005c-48c4-a606-66aa264ba0fa'; end; 22 : begin IMinVer:=4938; ID:='e84e6964-1580-41ef-9d3e-4d0c3ad4cb69'; end; 122: begin IMinVer:=4938; ID:='9d9f3667-3fd6-4948-83db-282783599f41'; end; 32 : ID:='7f69ec9d-43ad-4106-90ef-c191e7ec43af'; 132: ID:='ae1f1f86-6f13-4e1e-9f93-4f70b6c9927e'; 40 : ID:='0526727a-f2fb-4846-9b04-f1899f52f1f6'; 41 : ID:='0526727a-f2fb-4846-9b04-f1899f52f1f6'; 140: ID:='cfd42c42-1595-419a-bf04-b23b64663629'; 141: ID:='cfd42c42-1595-419a-bf04-b23b64663629'; end; AResult:='%System32%\Win32k.sys'; if not FileExists(AResult) then AResult:='\\127.0.0.1\'+StringReplace(NormalFileName('%System32%\Win32k.sys'),':','$'); if (ID<>'') and FileExists(AResult) then if FS.FindFirst(AResult) then if ((IMinVer=0) and (FS.FileTime<1064000000)) or ((IMinVer>0) and IsFileBuldLow(AResult, IMinVer)) then begin AddToLog(A35); AddToLog(A00+ID); AddToLog(''); ICounter:=ICounter+1; end; // MS10-092 ID := ''; case IOSVer of 32 : ID:='48F10251-34D8-4149-B4B2-BF3EC28F5846'; 132: ID:='099CCC5F-B92F-4D06-BCB5-92E35C49F613'; 40 : ID:='CF85CDB6-58C7-4144-82F6-F01A6A4F9C3A'; 41 : ID:='CF85CDB6-58C7-4144-82F6-F01A6A4F9C3A'; 140: ID:='0597018D-39F5-4CA9-B437-63D9E68F264D'; 141: ID:='0597018D-39F5-4CA9-B437-63D9E68F264D'; end; if ID<>'' then begin AResult:='%System32%\Taskeng.exe'; if not FileExists(AResult) then AResult:='\\127.0.0.1\'+StringReplace(NormalFileName('%System32%\Taskeng.exe'),':','$'); if FileExists(AResult) then if FS.FindFirst(AResult) then if (FS.FileTime<1029000000) then begin AddToLog(A36); AddToLog(A00+ID); AddToLog(''); ICounter:=ICounter+1; end; end; // MS11-011 IMinVer := 0; ID := ''; case IOSVer of 13 : begin IMinVer:=6055; ID:='A511D33A-9AE0-46EE-A225-9D97390DE7D1'; end; 22 : begin IMinVer:=4789; ID:='6BF2EEEC-8225-477F-A606-263D3EE434D6'; end; 122: begin IMinVer:=4789; ID:='EC544894-EE98-4A2B-AC4D-33B0C3754213'; end; 32 : ID:='66978514-BB7F-42CC-9360-2FD1C686F4E6'; 132: ID:='8FDB8C37-1B22-457B-BDC0-21F6A5061DD3'; 40 : ID:='E1224C90-B0BC-4E4B-999A-EFAE327213B4'; 140: ID:='DDCF352E-742C-485E-9ED5-19CDBA673562'; end; AResult:='%System32%\Ntdll.dll'; if not FileExists(AResult) then AResult:='\\127.0.0.1\'+StringReplace(NormalFileName('%System32%\Ntdll.dll'),':','$'); if (ID<>'') and FileExists(AResult) then if FS.FindFirst(AResult) then if ((IMinVer=0) and (FS.FileTime<1028000000)) or ((IMinVer>0) and IsFileBuldLow(AResult, IMinVer)) then begin AddToLog(A37); AddToLog(A00+ID); AddToLog(''); ICounter:=ICounter+1; 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.macromedia.com/pub/flashplayer/current/licensing/win/install_flash_player_11_active_x_32bit.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.macromedia.com/pub/flashplayer/current/licensing/win/install_flash_player_11_plugin_32bit.exe'); AddToLog(''); ICounter:=ICounter+1; end; end; function IsFlashOld(AFlVer: string) : boolean; var AVer, ABuild : string; begin if AFlVer = '' then exit; Result := true; AFlVer := StringReplace(AFlVer, ',', '.'); AVer := Copy(AFlVer, 1, 2); Delete(AFlVer, 1, 5); ABuild := AFlVer; Delete(ABuild, 1, 4); if ValidFloat(AFlVer) then case AVer of '10' : if StrToFloat(AFlVer) >= 183.10 then if ValidInt(ABuild) then if (StrToInt(ABuild) >= 10) or (AFlVer > '184') then Result:=false; '11' : if StrToFloat(AFlVer) >= 1.152 then Result:=false; end else Result:=false; 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.1.2'; 9: AMinVer := '9.5'; 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'2' then 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_29' then JavaIsOut:=true; if ARes='1.5' then if ABuld<'1.5.0_32' then JavaIsOut:=true; if ARes='1.4' then if ABuld<'1.4.2_34' 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 X or uninstall vulnerable'; A17:='Adobe Acrobat '; A18:='installed. Too dangerous to use the version below '; A19:='Install Adobe Reader X (10.1) or uninstall vulnerable.'; A20:='Adobe Reader '; A21:='Install Adobe X (10.1)'; 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'; A32:='Install Windows Vista Service Pack 2'; A33:='Update to the AutoPlay functionality in Windows'; A34:='Protected Mode for Adobe Reader X is disabled. Go to: Edit >Preferences >General and check "Enable Protected Mode at startup".'; A35:='Vulnerability in Windows Kernel-Mode Drivers Could Allow Remote Code Execution'; A36:='Vulnerability in Task Scheduler Could Allow Elevation of Privilege'; A37:='Vulnerabilities in Windows Kernel Could Allow Elevation of Privilege'; 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 X или удалите старый'; A17:='Установлен Adobe Acrobat версии '; A18:='. Опасно использовать версии до '; A19:='Установите Adobe Reader X (10.1) или удалите старый.'; A20:='Установлен Adobe Reader версии '; A22:=' устарел. Удалите его или установите новый'; A21:='Установите Adobe Reader X (10.1)'; 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 делает возможным удаленное выполнение кода'; A32:='Установите Service Pack 2 для Windows Vista'; A33:='Обновление функции автозапуска в Windows'; A34:='Зайдите в меню Adobe Reader X - Редактирование > Установки > Основные и отметьте "Включить защищённый режим при запуске"'; A35:='Уязвимость драйверов режима ядра Windows, делает возможным удаленное выполнение кода'; A36:='Уязвимость в планировщике заданий делает возможным несанкционированное получение прав'; A37:='Уязвимости в ядре 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.