{ Скрипт AVZ для обнаружения наиболее часто используемых уязвимостей. Версия 1.46 Автор: Андрей Кондауров, участник форума 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,A38,A39,A40,A41 : string; noSP : boolean; 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, AFName : 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'+#13#10); noSP:=true; ICounter:=ICounter+1; end; if AOSVer = '5.1' then if ASP < 'Service Pack 3' then begin AddToLog(A03+#13#10); noSP:=true; ICounter:=ICounter+1; end else if ASP = 'Service Pack 3' then IOSVer := 13; if AOSVer = '5.2' then if ASP < 'Service Pack 2' then begin AddToLog(A04); noSP:=true; ICounter:=ICounter+1; end 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(''); noSP:=true; ICounter:=ICounter+1; 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; 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+#13#10); 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+#13#10); 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+#13#10); 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 (ссылки на MS12-023) 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 := '74ce0e29-046b-4ac3-89a1-b292a177972f'; 22: ID := '3289a80a-d1b1-4494-bede-03d0be579acf'; 122:ID := 'dff4fb63-b319-49ed-8a9d-6b15e43d5bfd'; 32: ID := '44284277-06a7-405d-9187-8f50a042604d'; 132:ID := '19684033-ddeb-464f-9a22-f580a9c19f8e'; 40: ID := '9a58ca0b-fad7-418e-80ae-ca478168f887'; 41: ID := '9a58ca0b-fad7-418e-80ae-ca478168f887'; 140:ID := '7215f707-c536-4d81-ad66-e7bff592e400'; 141:ID := '7215f707-c536-4d81-ad66-e7bff592e400'; end; 7: case IOSVer of 13: ID := '81b28dd9-87aa-46cc-94c6-2da39d0298db'; 22: ID := '17b0c139-2709-424d-9d17-827af468e858'; 122:ID := '04656a93-e958-4764-afe8-27c476855506'; 32: ID := 'f598cad1-4d1a-40ce-a016-bb58778d5dc0'; 132:ID := '2717a997-2066-4a83-ae9b-4611a0851101'; end; 6: case IOSVer of 13: ID := '2a490c62-16c4-402a-b2d9-3e8cfb5bcebd'; 22: ID := '020e0d68-dd1c-4297-b565-fcc6dcf5f280'; 122:ID := '295292d3-01a3-4574-b994-8cdbcf5a0d2e'; end; end; end; if ID <> '' then if FS.FindFirst('%System32%\Mshtml.dll') then if FS.FileTime < 1032700000 then begin AddToLog(A10); AddToLog(A00+ID+#13#10); 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+#13#10); 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+#13#10); 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+#13#10); 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+#13#10); 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'+#13#10); 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+#13#10); ICounter:=ICounter+1; end; // MS11-087 ссылки на MS12-034 IMinVer := 0; ID := ''; case IOSVer of 13 : begin IMinVer:=6178; ID:='8d341077-8fcd-4666-a27e-2141a04a321e'; end; 22 : begin IMinVer:=4938; ID:='6287b994-041f-45b7-a230-d689bf1901a8'; end; 122: begin IMinVer:=4938; ID:='f9f49cd0-24db-4438-afde-aa7113ec2035'; end; 32 : ID:='292d1f3b-a065-4d7d-9046-f35ab7f0591b'; 132: ID:='8f90c09c-a2cb-4adb-ace7-a8bc38d78ba6'; 40 : ID:='572af8d4-effb-41a6-8448-7576b03f18fd'; 41 : ID:='572af8d4-effb-41a6-8448-7576b03f18fd'; 140: ID:='c09cbb73-7814-4946-8c0a-323d304dd633'; 141: ID:='c09cbb73-7814-4946-8c0a-323d304dd633'; 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+#13#10); 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+#13#10); 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+#13#10); ICounter:=ICounter+1; end; // MS12-004 IMinVer := 0; ID := ''; case IOSVer of 13 : begin IMinVer:=6160; ID:='a142f7ba-4268-4453-a8eb-470213c028ac'; end; 22 : begin IMinVer:=4916; ID:='3c266dfb-630d-4f32-b2ca-63955279b6a9'; end; 122: begin IMinVer:=4916; ID:='8dd1c882-4ed1-4e47-a017-7d162bd94194'; end; 32 : ID:='99d9b9fc-ed37-4a32-a20d-6604a1b9c4ca'; 132: ID:='44aa8d91-2b30-4191-8965-8aee2b860d50'; end; AResult:='%System32%\Winmm.dll'; if not FileExists(AResult) then AResult:='\\127.0.0.1\'+StringReplace(NormalFileName('%System32%\Winmm.dll'),':','$'); if (ID<>'') and FileExists(AResult) then if FS.FindFirst(AResult) then if ((IMinVer=0) and (FS.FileTime<1060000000)) or ((IMinVer>0) and IsFileBuldLow(AResult, IMinVer)) then begin AddToLog(A38); AddToLog(A00+ID+#13#10); ICounter:=ICounter+1; end; // MS12-027 AFName := NormalFileName('%System32%\MSCOMCTL.OCX'); if FileExists(AFName) and IsFileBuldLow(AFName,9833) then if RegKeyParamExists('HKLM','SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot','Path') then begin AddToLog(A40+#13#10+A00+'23c9d7bf-c9e0-4e01-8b66-da542332a28b'+#13#10); ICounter:=ICounter+1; end else if RegKeyParamExists('HKLM','SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot','Path') then begin AddToLog(A40+#13#10+A00+'d0d34b4f-4bcd-4df7-8ebc-87367e889959'); AResult := RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\Office\11.0\Common\ProductVersion','LastProduct'); if AResult < '11.0.8173.0' then AddToLog(A41+'3'+#13#10+A00+'e25b7049-3e13-433b-b9d2-5e3c1132f206'); AddToLog(''); ICounter:=ICounter+1; end else if RegKeyParamExists('HKLM','SOFTWARE\Microsoft\Office\12.0\Common\InstallRoot','Path') then begin AddToLog(A40+#13#10+A00+'17294713-5c03-4439-bcae-471e9b1e1ac9'); AResult := RegKeyStrParamRead('HKLM','SOFTWARE\Microsoft\Office\12.0\Common\ProductVersion','LastProduct'); if AResult < '12.0.6425.1000' then AddToLog(A41+'7'+#13#10+A00+'0E40BBE7-1422-40EA-912D-2A29D709F93F'); 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; i : integer; Plugin64Old, AX64old : boolean; begin // x64 Plugin64Old := false; AX64old := false; if IsWow64 then begin SetupAVZ('X64R=NN'); AResult := RegKeyStrParamRead('HKCR','CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InprocServer32',''); if AResult <> '' then begin AResult := GetFileVersion(AResult, 6); if IsFlashOld(AResult) then begin AddToLog(A14 + ' x64'); AddToLog('http://fpdownload.macromedia.com/pub/flashplayer/current/licensing/win/install_flash_player_11_active_x_64bit.exe'+#13#10); AX64old := true; ICounter:=ICounter+1; end; end; AResult := RegKeyStrParamRead('HKLM','SOFTWARE\MozillaPlugins\@adobe.com/FlashPlayer','Version'); if AResult <> '' then if IsFlashOld(AResult) then begin AddToLog(A15 + ' x64'); AddToLog('http://fpdownload.macromedia.com/pub/flashplayer/current/licensing/win/install_flash_player_11_plugin_64bit.exe'+#13#10); Plugin64Old := true; ICounter:=ICounter+1; end; SetupAVZ('X64R=YY'); end; // x86 if not AX64Old then 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'+#13#10); ICounter:=ICounter+1; end; end; if not Plugin64Old then begin 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'+#13#10); ICounter:=ICounter+1; end; 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.19 then if ValidInt(ABuild) then if (StrToInt(ABuild) >= 19) or (AFlVer > '184') then Result:=false; '11' : if StrToFloat(AFlVer) >= 202.235 then if ValidInt(ABuild) then if (StrToInt(ABuild) >= 235) or (AFlVer > '203') 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+#13#10); 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/'+#13#10); 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'); case ARes of '1.7': if ABuld<'10.3.0' then JavaIsOut:=true; '1.6': if ABuld<'1.6.0_31' then JavaIsOut:=true; '1.5': if ABuld<'1.5.0_34' then JavaIsOut:=true; '1.4': if ABuld<'1.4.2_36' then JavaIsOut:=true; end; if JavaIsOut then begin AddToLog(A23); AddToLog(A24+#13#10); 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.62') then exit; AddToLog('Opera '+AVer+A25); AddToLog('http://www.opera.com/browser/download'+#13#10); 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'+#13#10); ICounter:=ICounter+1; end; end; begin ClearLog; if GetAVZVersion>4.37 then begin ShowMessage('Для этого скрипта требуется AVZ версии от 4.34 до 4.37 включительно'); Exit; end; 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'; A38:='Vulnerabilities in Windows Media Could Allow Remote Code Execution'; A39:='dozens.'; A40:='Vulnerability in Windows Common Controls Could Allow Remote Code Execution'; A41:='This update require the SP3 installed on Office 200'; 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 могут привести к несанкционированному получению прав'; A38:='Уязвимости в Windows Media делают возможным удаленное выполнение кода'; A39:='очень много.'; A40:='Уязвимость общих элементов управления Windows делает возможным удаленное выполнение кода'; A41:='Для установки этого обновления требуется установить SP3 для Office 200'; end; ICounter:=0; noSP:=false; AddToLog(A06); WinVuln; AdobeFlashVuln; AdobeReaderVuln; FireFoxVuln; JavaVuln; OperaVuln; QuickTimeVuln; if (ICounter=0) then begin AddToLog(A26); MessageDlg(A26, mtInformation, mbOk, 0); end else begin if noSP then AddToLog(A27+A39) else 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.