常见漏洞检查示例
自定义漏洞检查数据与Insight Platform不兼容dota2必威联赛
如果您是利用本文中描述的自定义漏洞检查功能的InsightVM订阅者,请注意,您创建的任何自定义检查以及从这些检查派生的任何扫描数据都将包含在内部安全控制台中并仅限于此。自定义检查及其扫描结果不会上游传送到洞察平台。dota2必威联赛这意味着它们将不存在于InsightVM基于云的功能和体验中,例如指示板那修复项目,目标和sla.
这写作漏洞检查本教程将通过一个简单的示例介绍如何编写基于http的漏洞检查并在安全控制台中运行它。这个页面包含了更多你可以创建的不同类型检查的例子。
服务旗帜检查
这<代码类=“prism-code language-text">
这<代码类=“prism-code language-text"><产品>元素表示在该服务上发现的指纹产品。这<代码类=“prism-code language-text"><版本>元素检查产品版本号的范围。要注意<代码类=“prism-code language-text">
http-apache-frossive-newline-dos.vck
XML.
1
<VulnerabilityCheckid=“http-apache-excessive-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.
<ftprequeresteSponse.>
5.
<FTPRequest>慢性消耗病\\..%20.FTPRequest>
6.
<FTPResponse代码=“250“>
7.
<正则表达式>目录更改为/..正则表达式>
8.
FTPResponse>
9.
ftprequeresteSponse.>
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">< >组件A.<代码类=“prism-code language-text"><产品>,例如PHP。
php-ecalloc-integer-overflow.vck
XML.
1
<VulnerabilityCheckid=“PHP-ECALLOC-整数溢出“范围=“端点“>
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">< ActiveXControlInstalled >元素允许您测试Windows系统上ActiveX控件是否存在(通过GUID)。默认情况下,该元素不支持kill-bit。换句话说,如果安装了ActiveX控件,但设置了kill-bit,检查将报告“不容易攻击”。如果即使设置了终止位,也希望报告漏洞,请指定<代码类=“prism-code language-text">< ActiveXControlInstalled honorKillBit = " 0 " >.
ibm-access-support-activex-bof.vck
XML.
1
<?xml version = ' 1.0 '编码=“utf - 8”?>
2
<VulnerabilityCheckid=“ibm-access-support-activex-bof“范围=“节点“版本=“1.0“>
3.
<ActiveXControlInstalledguid=“74 ffe28d - 2378 - 11 - d5 - 990 - c - 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">
- 这<代码类=“prism-code language-text">的名字属性指定注册表值的名称(在父键下)。
- 这<代码类=“prism-code language-text">类型属性指定注册表值的预期类型,该类型必须是以下类型之一。看到http://msdn.microsoft.com/en-us/library/ms724884%28VS.85%29.aspx有关不同值类型的更多信息。
REG_SZREG_EXPAND_SZREG_BINARYREG_DWORDREG_DWORD_LITTLE_ENDIANREG_DWORD_BIG_ENDIANREG_LINKREG_MULTI_SZREG_RESOURCE_LISTREG_FULL_RESOURCE_DESCRIPTORREG_RESOURCE_REQUIREMENTS_LISTREG_QWORDREG_QWORD_LITTLE_ENDIAN
- 这<代码类=“prism-code language-text">默认的属性用于当您希望检查键下的注册表“默认值”而不指定<代码类=“prism-code language-text">的名字属性。
如果要测试注册表项和注册表值是否存在,请使用<代码类=“prism-code language-text">< registryKeyExists >和<代码类=“prism-code language-text">< registryValueExists >元素。
WindowsFileExists
这<代码类=“prism-code language-text">
% SystemDrive %%列出%%csidl_system%% CSIDL_SYSTEMX86%% ProgramFiles %%Programfiles(x86)%% CommonProgramFiles %% CSIDL_PROGRAM_FILES_COMMONX86%% SQLPath %% ExchangePath %% OfficePath %
trojan-gimmiv.vck
XML.
1
<VulnerabilityCheckid=“trojan-gimmiv“范围=“节点“>
2
<或>
3.
<!--由滴管创建成分(Gimmiv.一种的)-->
4.
<WindowsRegistry>
5.
<registryKeyExists的名字=“HKLM \ System \ CurrentControlset \ Services \ Sysmgr \参数“>
6.
<registryValueExists的名字=“ServiceDll“/>
7.
<registryValueExists的名字=“ServiceMain“/>
8.
registryKeyExists>
9.
<registryKeyExists的名字=“HKLM \ SYSTEM \ \ sysmgr CurrentControlSet \服务“>
10
<registryValueExists的名字=“DisplayName“/>
11
<registryValueExists的名字=“ImagePath“/>
12
registryKeyExists>
13
WindowsRegistry>
14
<WindowsFileExists>
15
<!--由滴管创建成分(Gimmiv.一种的)-->
16
<fileExists的名字=“% CSIDL_SYSTEM % \ wbem \ sysmgr.dll“/>
17
<!--由蠕虫创造成分(Gimmiv.B.的)-->
18
<fileExists的名字=“% CSIDL_SYSTEM % \ wbem \ winbaseInst.exe“/>
19
<fileExists的名字=“% CSIDL_SYSTEM % \ wbem \ winbase.dll“/>
20.
<fileExists的名字=“% CSIDL_SYSTEM % \ wbem \ basesvc.dll“/>
21
<fileExists的名字=“% CSIDL_SYSTEM % \ wbem \ syicon.dll“/>
22
WindowsFileExists>
23
或>
24
VulnerabilityCheck>
WindowsFileVersion -检查Windows的。exe或。dll的版本
这个检查查找Windows的版本<代码类=“prism-code language-text">. exe或<代码类=“prism-code language-text">. dll.<代码类=“prism-code language-text">< WindowsFileVersion >测试允许测试在扫描期间从被测试端点的文件系统上的文件中检索到的版本。如果在扫描过程中发现文件版本控制服务,安全控制台将使用它们来执行这些测试。
文件版本检查测试类似如下:
XML.
1
<WindowsFileVersion>
2
<fileVersion的名字=“% % \ 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.
<操作系统minCertainty=“1.0“的名字=“Windows XP Professional.“供应商=“微软“>
4.
<版本>
5.
<价值>SP2.价值>
6.
版本>
7.
操作系统>
8.
系统>
9.
<WindowsFileVersion>
10
<fileVersion的名字=“% % \ system32系统\ shsvcs.dll列出“mustExist=“1“>
11
<版本><范围><高包容=“0.“>6.0.2900.3051高>范围>版本>
12
fileVersion>
13
WindowsFileVersion>
14
VulnerabilityCheck>
以下是针对特定版本的Internet Explorer的一个示例检查,用于测试该特定产品的多个注册表值:
XML.
1
<VulnerabilityCheckid=“acme-windows-registry-check-1“范围=“节点“版本=“1.0“>
2
<InstalledSoftware>
3.
<产品minCertainty=“1.0“的名字=“IE浏览器“供应商=“微软“>
4.
<版本>
5.
<价值>5.01SP4.价值>
6.
版本>
7.
产品>
8.
InstalledSoftware>
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
<InstalledSoftware>
2
<产品minCertainty=“1.0“的名字=“Exchange 2000服务器“供应商=“微软“>
3.
<版本>
4.
<价值>SP3.价值>
5.
版本>
6.
产品>
7.
InstalledSoftware>
默认的帐户检查
在Security Console中,所有用户名和密码检查的工作方式基本相同。你有一个<代码类=“prism-code language-text">
以下<代码类=“prism-code language-text">类型属性值可以用于<代码类=“prism-code language-text">
IBM小型机PortMapperpcAnywhere-controlCIFS(可选<代码类=“prism-code language-text"><世界>指定Windows域名)DB2(<代码类=“prism-code language-text"><世界>指定数据库名称,例如<代码类=“prism-code language-text">样本的)FTP.http.mysql.(<代码类=“prism-code language-text"><世界>指定数据库名称,例如<代码类=“prism-code language-text">mysql的)Novell NetWare甲骨文(<代码类=“prism-code language-text"><世界>指定数据库名称)Postgres(<代码类=“prism-code language-text"><世界>指定数据库名称,例如<代码类=“prism-code language-text">template1的)远程执行(rexec,如port<代码类=“prism-code language-text">512 / tcp的)SNMP.(仅指定<代码类=“prism-code language-text"><密码>元素,它将是SNMP团体名,例如<代码类=“prism-code language-text">私人的的)SSHTDS(Microsoft SQL Server,<代码类=“prism-code language-text"><世界>指定数据库名称,例如<代码类=“prism-code language-text">主的)- Sybase (<代码类=“prism-code language-text"><世界>指定数据库名称,例如<代码类=“prism-code language-text">主的)
远程登录
cifs-default-password-administrator-password.vck
此检查查找CIFS上的Administrator/密码:
XML.
1
<VulnerabilityCheckid=“cifs-generic-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类型=“SSH“/>
3.
<defaultAccount.>
4.
<uid>根uid>
5.
<密码>密码密码>
6.
defaultAccount.>
7.
VulnerabilityCheck>
telnet-default-account-root-password-password.vck * *
此检查在Telnet上查找root / password:
XML.
1
<VulnerabilityCheckid=“telnet-default-account-root-password-password“范围=“端点“>
2
<NetworkService类型=“远程登录“/>
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
<操作系统minCertainty=“1.0“的名字=“Windows NT服务器“供应商=“微软“>
3.
<版本>
4.
<价值>4.0SP5.价值>
5.
版本>
6.
<版本>
7.
<价值>4.0SP6a价值>
8.
版本>
9.
<版本>
10
<价值>4.0SP4.价值>
11
版本>
12
操作系统>
13
系统>
拒绝服务检查
有时你想做一个不安全的检查,例如拒绝服务检查。在这种情况下,请设置安全属性<代码类=“prism-code language-text">< VulnerabilityCheck >来<代码类=“prism-code language-text">0..这将导致跳过此检查,除非用户显式地在其扫描模板中启用不安全检查。
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><brokexception.类=“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>