常见漏洞检查示例
自定义漏洞检查数据与Insight平台不兼容dota2必威联赛
如果您是InsightVM订阅者,它利用本文中描述的自定义漏洞检查功能,请注意您创建的任何自定义检查以及从这些检查中派生的任何扫描数据都将包含在内部部署安全控制台中。自定义检查及其扫描结果不会在洞察平台上游行驶。dota2必威联赛这意味着它们在InsightVM的基于云的特征和经验中不存在,例如仪表板,修复项目,目标和斯拉斯.
的写作漏洞检查教程通过如何在安全控制台中撰写如何编写基于HTTP的漏洞检查并运行它的简单示例。此页面包含您可以创建的不同类型检查的详细示例。
服务旗帜检查
的<代码类="prism-code language-text">< NetworkService >元素检查网络上运行的某个服务是否存在。的<代码类="prism-code language-text">类型Attribute表示协议。多个<代码类="prism-code language-text">或者'd类型由a分开<代码类="prism-code language-text">|(管道)字符。使用以下示例<代码类="prism-code language-text">HTTP | HTTPS表示HTTP或HTTPS。
的<代码类="prism-code language-text"><产品>元素表示在该服务上发现的指纹产品。的<代码类="prism-code language-text">
http-apache-excessive-newline-dos.vck
xml
1
<VulnerabilityCheckid="http-apache-frose-newline-dos"范围="终点">
2
<NetworkService类型="HTTP | HTTPS">
3.
<产品姓名="Apache">
4
<版本>
5
<范围><低的>2.0.0低的><高>2.0.45高>范围>
6
版本>
7
产品>
8
NetworkService>
9
VulnerabilityCheck>
ftp-proftpd-cwd-format-string.vck
此检查使用FTP横幅版本测试来测试是否存在漏洞:
xml
1
<VulnerabilityCheckid="ftp-proftpd-cwd-format-string"版本="1.0"范围="终点">
2
<NetworkService类型="FTP">
3.
<产品姓名="ProFTPD">
4
<版本><范围><高>1.2.0rc3高>范围>版本>
5
产品>
6
NetworkService>
7
VulnerabilityCheck>
ftp-servu-directory-traversal.vck
此检查使用任何可用凭证连接到FTP服务器,执行目录更改命令,并检查结果代码和文本:
xml
1
<VulnerabilityCheckid="ftp-servu-directory-traversal"版本="1.0"范围="终点">
2
<NetworkService类型="FTP"/>
3.
<FTPCheck登录="1">
4
<FTPRequestResponse>
5
<FTPREQUEST.>慢性消耗病\\..%20。FTPREQUEST.>
6
<FTPResponse代码="250.">
7
<正则表达式>目录变成/..正则表达式>
8
FTPResponse>
9
FTPRequestResponse>
10
FTPCheck>
11
VulnerabilityCheck>
http-website-long-options-bof.vck
此示例版本检查是在一个检查文件中的两个不同的产品版本。
xml
1
<VulnerabilityCheckid="http-website-long-options-bof"范围="终点">
2
<NetworkService类型="HTTP | HTTPS">
3.
<产品姓名="网站">
4
<版本><范围><高>3.5.15高>范围>版本>
5
产品>
6
<产品姓名="WebSitePro">
7
<版本><范围><高>3.5.15高>范围>版本>
8
产品>
9
NetworkService>
10
VulnerabilityCheck>
有时您想检查特定的版本<代码类="prism-code language-text">< >组件的<代码类="prism-code language-text"><产品>,如PHP。
php-ecalloc-integer-overflow.vck
xml
1
<VulnerabilityCheckid="php-ecalloc-integer-overflow"范围="终点">
2
<NetworkService类型="HTTP | HTTPS">
3.
<产品姓名="Apache">
4
<组件姓名="PHP">
5
<版本><范围><低的>4.0.0低的><高>4.3.0高>范围>版本>
6
<版本><范围><低的>5.0.0低的><高>5.2.0高>范围>版本>
7
组件>
8
产品>
9
NetworkService>
10
VulnerabilityCheck>
经过身份验证的Windows检查
为了让Security Console执行经过身份验证的Windows检查,它必须访问WMI或Remote Registry服务,这通常是使用默认帐户检查(已知默认密码)或站点配置中指定的管理凭据发现的。
ActiveXControlInstalled.
此检查将验证是否存在ActiveX控件。的<代码类="prism-code language-text">
IBM-Access-Support-ActiveX-BOF.VCK
xml
1
<?xml版本='1.0'编码='utf-8'?>
2
<VulnerabilityCheckid="ibm-access-support-activex-bof"范围="节点"版本="1.0">
3.
<ActiveXControlInstalled.guid="74FFE28D-2378-11D5-990C-006094235084"/>
4
VulnerabilityCheck>
WindowsRegistry
Windows注册表检查测试是测试扫描期间安全控制台找到的Windows注册表服务中的某些键,值或值数据的测试。
W32-PROTORIDE-B-WORM.VCK
xml
1
<VulnerabilityCheckid="w32-protoride-b-worm"范围="节点">
2
<WindowsRegistry>
3.
<registryKey姓名="微软HKEY_LOCAL_MACHINE \ Software \ \ Windows \ CurrentVersion \运行"Mustnotbepresent.="1">
4
<RegistryValue.姓名="Windows任务栏管理器"><正则表达式cflags.="REG_ICASE">.*正则表达式>RegistryValue.>
5
registryKey>
6
WindowsRegistry>
7
VulnerabilityCheck>
的<代码类="prism-code language-text">< WindowsRegistry >元素是Windows注册表测试的顶层元素。此元素必须至少包含一个<代码类="prism-code language-text">< registryKey >子元素。不允许使用其他元素。
的<代码类="prism-code language-text">< registryKey >元素是描述要测试的注册表项和值的顶级元素。它有两个属性:<代码类="prism-code language-text">姓名和<代码类="prism-code language-text">Mustnotbepresent..的<代码类="prism-code language-text">姓名要检查的注册表项的名称。请注意,<代码类="prism-code language-text">Mustnotbepresent.属性在否定中呈措辞。如果<代码类="prism-code language-text">mustNotBePresent = " 1 ",它的意思是“如果键存在,则触发此检查,否则返回not vulnerable”。
的<代码类="prism-code language-text">< registryValue >元素指定分配给特定注册表值的预期数据。它包含三个属性:<代码类="prism-code language-text">姓名,<代码类="prism-code language-text">类型,<代码类="prism-code language-text">默认(在下面描述)。
- 的<代码类="prism-code language-text">姓名属性指定注册表值的名称(在父键下)。
- 的<代码类="prism-code language-text">类型属性指定注册表值的预期类型,必须是以下内容之一。看http://msdn.microsoft.com/en-us/library/ms724884%28VS.85%29.aspx有关不同价值类型的更多信息。
reg_sz.REG_EXPAND_SZREG_BINARYreg_dword.REG_DWORD_LITTLE_ENDIANREG_DWORD_BIG_ENDIANreg_link.REG_MULTI_SZREG_RESOURCE_LISTREG_FULL_RESOURCE_DESCRIPTORREG_RESOURCE_REQUIREMENTS_LIST.reg_qword.REG_QWORD_LITTLE_ENDIAN
- 的<代码类="prism-code language-text">默认当您想要在密钥下检查注册表“默认值”时使用属性而不指定<代码类="prism-code language-text">姓名属性。
如果要测试注册表项和注册表值是否存在,请使用<代码类="prism-code language-text">
WindowsFileExists
的<代码类="prism-code language-text">< fileExists >元素用于确定文件在系统中是否可用。的Trojan-Gimmiv.vck.下面的示例展示了这种检查是如何工作的。的<代码类="prism-code language-text">姓名属性是文件的名称。可以使用百分比替换指定某些众所周知的窗口路径。例如,Windows目录是不始终知道的。通常,这是<代码类="prism-code language-text">C:\WINDOWS,但根据设备配置的不同会有所不同。在运行时(扫描),安全控制台将发现被测试设备的Windows根目录并替换<代码类="prism-code language-text">%列出%的路径中的字符串<代码类="prism-code language-text">fileVersion使用设备上的实际Windows根目录进行测试。支持以下替换字符串:
% SystemDrive %%列出%% CSIDL_SYSTEM %%csidl_systemx86%%programfiles%% ProgramFiles (x86) %% CommonProgramFiles %%csidl_program_files_commonx86%%sqlpath%%ExpancePath%% OfficePath %
Trojan-Gimmiv.vck.
xml
1
<VulnerabilityCheckid="Trojan-Gimmiv"范围="节点">
2
<或>
3.
<!--由滴管创建组件(Gimmiv.一个)-->
4
<WindowsRegistry>
5
<RegistryKeyExists.姓名="HKLM \ SYSTEM \ CurrentControlSet \ Services \ sysmgr \参数">
6
<RegistryValueexists.姓名="服务"/>
7
<RegistryValueexists.姓名="ServiceMain"/>
8
RegistryKeyExists.>
9
<RegistryKeyExists.姓名="HKLM \ System \ CurrentControlset \ Services \ sysmgr">
10
<RegistryValueexists.姓名="显示名称"/>
11
<RegistryValueexists.姓名="imagepath."/>
12
RegistryKeyExists.>
13
WindowsRegistry>
14
<WindowsFileExists>
15
<!--由滴管创建组件(Gimmiv.一个)-->
16
<文件已存在姓名="%csidl_system%\ wbem \ sysmgr.dll"/>
17
<!--由蠕虫创造组件(Gimmiv.B)-->
18
<文件已存在姓名="%csidl_system%\ wbem \ winbaseinst.exe"/>
19
<文件已存在姓名="% CSIDL_SYSTEM % \ wbem \ winbase.dll"/>
20.
<文件已存在姓名="%csidl_system%\ wbem \ basesvc.dll"/>
21
<文件已存在姓名="%csidl_system%\ wbem \ syicon.dll"/>
22
WindowsFileExists>
23
或>
24
VulnerabilityCheck>
WindowsFileVersion -检查Windows的。exe或。dll的版本
此检查查找Windows的版本<代码类="prism-code language-text">。可执行程序或<代码类="prism-code language-text">. dll.<代码类="prism-code language-text">
文件版本检查测试将类似于以下内容:
xml
1
<WindowsFileVersion.>
2
<fileVersion姓名="%windir%\ system32 \ scesrv.dll"mustExist="1">
3.
<版本><范围><高包括的="0">5.0.2195.3649高>范围>版本>
4
fileVersion>
5
WindowsFileVersion.>
下面是一个更复杂的检查,其中包含仅针对Windows XP SP2上的特定文件版本的测试(系统和Windows文件版本检查测试的组合):
xml
1
<VulnerabilityCheckid="acme-windows-file-check-1"范围="节点"版本="1.0">
2
<系统>
3.
<OS.minCertainty="1.0"姓名="Windows XP专业"小贩="微软">
4
<版本>
5
<价值>SP2价值>
6
版本>
7
OS.>
8
系统>
9
<WindowsFileVersion.>
10
<fileVersion姓名="% % \ system32系统\ shsvcs.dll列出"mustExist="1">
11
<版本><范围><高包括的="0">6.0.2900.3051高>范围>版本>
12
fileVersion>
13
WindowsFileVersion.>
14
VulnerabilityCheck>
以下是针对特定版本的Internet Explorer的示例检查,该Internet Explorer为该特定产品测试多个注册表值:
xml
1
<VulnerabilityCheckid="acme-windows-registry-check-1"范围="节点"版本="1.0">
2
<安装软件>
3.
<产品minCertainty="1.0"姓名="Internet Explorer"小贩="微软">
4
<版本>
5
<价值>5.01SP4价值>
6
版本>
7
产品>
8
安装软件>
9
<WindowsRegistry>
10
<registryKey姓名="HKLM \ SOFTWARE \ \ \ Microsoft Internet Explorer ActiveX兼容性\ {d9998bd0 - 7957 - 11 - d2 - 8美联储- 00606730 - d3aa}">
11
<RegistryValue.姓名="兼容性旗帜"类型="reg_dword.">
12
<价值>1024价值>
13
RegistryValue.>
14
registryKey>
15
<registryKey姓名="HKLM \ SOFTWARE \ \ \ Microsoft Internet Explorer ActiveX兼容性\ {be4191fb - 59 - ef - 4825 aefc - 109727951 - e42}">
16
<RegistryValue.姓名="兼容性旗帜"类型="reg_dword.">
17
<价值>1024价值>
18
RegistryValue.>
19
registryKey>
20.
WindowsRegistry>
21
VulnerabilityCheck>
检查已安装软件的版本
此检查查找已安装软件的版本。
xml
1
<安装软件>
2
<产品minCertainty="1.0"姓名="Exchange 2000服务器"小贩="微软">
3.
<版本>
4
<价值>SP3价值>
5
版本>
6
产品>
7
安装软件>
默认帐户检查
在安全控制台中,所有用户名和密码检查都基本相同。你有一个<代码类="prism-code language-text">< NetworkService >元素,后跟服务类型<代码类="prism-code language-text">
以下<代码类="prism-code language-text">类型属性值可用于<代码类="prism-code language-text">< NetworkService >与A.<代码类="prism-code language-text">
IBM小型机PortMapperpcAnywhere-controlCIFS.(可选<代码类="prism-code language-text"><世界>指定Windows域名)DB2.(<代码类="prism-code language-text"><世界>指定数据库名称,例如<代码类="prism-code language-text">样本)FTPHTTPMySQL(<代码类="prism-code language-text"><世界>指定数据库名称,例如<代码类="prism-code language-text">mysql)网络操作系统甲骨文(<代码类="prism-code language-text"><世界>指定数据库名称)Postgres(<代码类="prism-code language-text"><世界>指定数据库名称,例如<代码类="prism-code language-text">template1)远程执行(REXEC,如港口<代码类="prism-code language-text">512 / tcp)SNMP(仅指定<代码类="prism-code language-text"><密码>元素,它将是SNMP团体名,例如<代码类="prism-code language-text">私人)sTDS(Microsoft SQL Server,<代码类="prism-code language-text"><世界>指定数据库名称,例如<代码类="prism-code language-text">主)- Sybase(<代码类="prism-code language-text"><世界>指定数据库名称,例如<代码类="prism-code language-text">主)
telnet.
cifs-default-password-administrator-password.vck
此检查查找CIFS上的Administrator/密码:
xml
1
<VulnerabilityCheckid="cifs -通用- 0002"范围="节点">
2
<NetworkService类型="CIFS."/>
3.
<DefaultAccount>
4
<uid>行政人员uid>
5
<密码>密码密码>
6
DefaultAccount>
7
VulnerabilityCheck>
ssh-default-account-root-password-password.vck * *
此检查查找SSH上的root /密码:
xml
1
<VulnerabilityCheckid="ssh-default-account-root-password-password"范围="终点">
2
<NetworkService类型="s"/>
3.
<DefaultAccount>
4
<uid>根uid>
5
<密码>密码密码>
6
DefaultAccount>
7
VulnerabilityCheck>
telnet-default-account-root-password-password.vck **
这个检查在Telnet上查找root/密码:
xml
1
<VulnerabilityCheckid="Telnet-Default-account-root-password-password"范围="终点">
2
<NetworkService类型="telnet."/>
3.
<DefaultAccount>
4
<uid>根uid>
5
<密码>密码密码>
6
<领域>领域>
7
DefaultAccount>
8
VulnerabilityCheck>
mysql-default-account-admin-nopassword。vck**(检查MySQL上没有密码的管理员)
此检查查找管理员在MySQL上没有密码:
xml
1
<VulnerabilityCheckid="mysql-default-account-admin-nopassword"范围="终点">
2
<NetworkService类型="MySQL"/>
3.
<DefaultAccount>
4
<uid>行政uid>
5
<密码>密码>
6
<领域>mysql领域>
7
DefaultAccount>
8
VulnerabilityCheck>
操作系统指纹检查
xml
1
<系统>
2
<OS.minCertainty="1.0"姓名="Windows NT服务器"小贩="微软">
3.
<版本>
4
<价值>4.0SP5价值>
5
版本>
6
<版本>
7
<价值>4.0SP6a价值>
8
版本>
9
<版本>
10
<价值>4.0SP4价值>
11
版本>
12
OS.>
13
系统>
拒绝服务检查
有时您希望进行不安全的检查,例如拒绝服务检查。在这种情况下,设置的安全属性<代码类="prism-code language-text">
xml
1
<VulnerabilityCheckid="http-jrun-long-url-bof"安全的="0"范围="终点">
2
<NetworkService类型="HTTP | HTTPS">
3.
<产品姓名="JRun"/>
4
NetworkService>
5
<HTTPCheck重试="3.">
6
<HTTPRequest方法="得到">
7
<URI>/<垃圾长度="5200">R7.垃圾>.jspURI>
8
HTTPRequest>
9
<httpresponse.><thrownException类="java.io.ioexception."/>httpresponse.>
10
HTTPCheck>
11
<TCPStatusCheck等待="2500"状态="关闭"/>
12
VulnerabilityCheck>
布尔表达式
有时你可能想要将一组检查分组<代码类="prism-code language-text"><和>或<代码类="prism-code language-text"><、>(或两者结合)以形成复杂的布尔测试。例如:
xml
1
VulnerabilityCheckid=”的例子-http-敏感的-数据“范围=“端点”>
2
<NetworkService类型=“HTTP | HTTPS />
3.
<HTTPCheck>
4
<HTTPRequest方法=“得到”><URI>/URI>
5
<httpresponse.代码=“200”>
6
<或>
7
<正则表达式>密码正则表达式>
8
<正则表达式>SSN.:[0-9]{3.}-[0-9]{2}-[0-9]{4}正则表达式>
9
或>
10
httpresponse.>
11
HTTPCheck>
12
VulnerabilityCheck>