常见漏洞检查示例
的编写漏洞检查教程通过如何在安全控制台中撰写如何编写基于HTTP的漏洞检查并运行它的简单示例。此页面包含您可以创建的不同类型检查的详细示例。
服务旗帜检查
的<代码类="prism-code language-text">
的<代码类="prism-code language-text">
http-apache-newline-dos.vck
xml
1<VulnerabilityCheck身份证件="http-apache-excessive-newline-dos"范围="终点">2<NetworkService类型="HTTP | HTTPS">3.<产品姓名="Apache">4<版本>5<范围><低>2.0低><高的>2。45高的>范围>6版本>7产品>8NetworkService>9VulnerabilityCheck>
ftp-proftpd-cwd-format-string.vck
此检查使用FTP横幅版本测试来测试是否存在漏洞:
xml
1<VulnerabilityCheck身份证件="ftp-proftpd-cwd-format-string"版本="1"范围="终点">2<NetworkService类型="文件传输协议">3.<产品姓名="Proftpd.">4<版本><范围><高的>1.2.0rc3高的>范围>版本>5产品>6NetworkService>7VulnerabilityCheck>
ftp-servu-directory-traversal.vck
此检查连接到具有任何可用凭据的FTP服务器,执行目录更改命令,然后检查结果代码和文本:
xml
1<VulnerabilityCheck身份证件="ftp服务目录遍历"版本="1"范围="终点">2<NetworkService类型="文件传输协议"/>3.<FTPCheck登录="1">4<前驱反应>5<FTPRequest>CWD\\。。%20FTPRequest>6<FTPResponse代码="250.">7<正则表达式>目录更改为/。。正则表达式>8FTPResponse>9前驱反应>10.FTPCheck>11.VulnerabilityCheck>
http-wite-long-options-bof.vck
这个示例版本检查意味着在一个检查文件中有两个不同的产品版本。
xml
1<VulnerabilityCheck身份证件="http网站长选项bof"范围="终点">2<NetworkService类型="HTTP | HTTPS">3.<产品姓名="网站">4<版本><范围><高的>3.5.15高的>范围>版本>5产品>6<产品姓名="WebSitePro">7<版本><范围><高的>3.5.15高的>范围>版本>8产品>9NetworkService>10.VulnerabilityCheck>
有时你想检查某个特定的版本<代码类="prism-code language-text"><组件>的<代码类="prism-code language-text">
php-ecalloc-integer-odflow.vck
xml
1<VulnerabilityCheck身份证件="php-ecalloc-integer-overflow"范围="终点">2<NetworkService类型="HTTP | HTTPS">3.<产品姓名="Apache">4<组件姓名="PHP">5<版本><范围><低>4.0低><高的>4.3.0高的>范围>版本>6<版本><范围><低>5.0.0低><高的>5.2.0高的>范围>版本>7组件>8产品>9NetworkService>10.VulnerabilityCheck>
经过身份验证的Windows检查
为了让Security Console执行经过身份验证的Windows检查,它必须访问WMI或Remote Registry服务,这通常是使用默认帐户检查(已知默认密码)或站点配置中指定的管理凭据发现的。
ActiveXControlInstalled
此检查验证是否存在ActiveX控件。的<代码类="prism-code language-text">
IBM-Access-Support-ActiveX-BOF.VCK
xml
1< ?xml version = ' 1.0 '编码=“utf - 8”?>2<VulnerabilityCheck身份证件="IBM-Access-Support-ActiveX-BOF"范围="节点"版本="1">3.<ActiveXControlInstalledGUID.="74 ffe28d - 2378 - 11 - d5 - 990 - c - 006094235084"/>4VulnerabilityCheck>
WindowsRegistry.
Windows注册表检查测试是检查安全控制台在扫描过程中找到的Windows注册表服务中是否存在某些键、值或值数据的测试。
w32-protoride-b-worm.vck
xml
1<VulnerabilityCheck身份证件="w32-protoride-b-worm"范围="节点">2<WindowsRegistry.>3.<注册表项姓名="HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Run"Mustnotbepresent.="1">4<registryValue姓名="Windows任务栏管理器"><正则表达式cflags.="REG_ICASE">。*正则表达式>registryValue>5注册表项>6WindowsRegistry.>7VulnerabilityCheck>
的<代码类="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_expand_sz.
REG_二进制
reg_dword.
REG_DWORD_LITTLE_ENDIAN
REG_DWORD_BIG_ENDIAN
reg_link.
REG_MULTI_SZ
REG_RESOURCE_LIST
注册表\u完整\u资源\u描述符
REG_RESOURCE_REQUIREMENTS_LIST
REG_QWORD
REG_QWORD_LITTLE_ENDIAN
- 的<代码类="prism-code language-text">默认属性用于当您希望检查键下的注册表“默认值”而不指定<代码类="prism-code language-text">姓名属性
如果要测试注册表项和注册表值是否存在,请使用<代码类="prism-code language-text">< registryKeyExists >和<代码类="prism-code language-text">
WindowsFileexists.
的<代码类="prism-code language-text">< fileExists >元素用于确定文件在系统上是否可用trojan-gimmiv.vck下面的示例展示了这种检查是如何工作的。的<代码类="prism-code language-text">姓名属性是文件的名称。可以使用百分比替换指定某些知名的Windows路径。例如,并不总是知道Windows目录在哪里。通常,这是<代码类="prism-code language-text">C:\WINDOWS但是,它可能因设备的配置而变化。在运行时(扫描)期间,安全控制台将发现正在测试的设备的Windows root并替换<代码类="prism-code language-text">%列出%字符串的路径中<代码类="prism-code language-text">文件版本使用设备上的实际Windows根目录进行测试。支持以下替换字符串:
% SystemDrive %
%列出%
%CSIDL_系统%
%csidl_systemx86%
%programfiles%
% ProgramFiles (x86) %
%commonprogramfiles%
% CSIDL_PROGRAM_FILES_COMMONX86%
%SQLPath%
%ExpancePath%
% OfficePath %
trojan-gimmiv.vck
xml
1<VulnerabilityCheck身份证件="trojan-gimmiv"范围="节点">2<或>3.<!--由滴管创建组件(GIMMIV。一个)-->4<WindowsRegistry.>5<registryKeyExists姓名="HKLM\SYSTEM\CurrentControlSet\Services\sysmgr\Parameters">6<RegistryValueexists.姓名="服务"/>7<RegistryValueexists.姓名="点函数"/>8registryKeyExists>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">
文件版本检查测试类似如下:
xml
1<WindowsFileVersion>2<文件版本姓名="% % \ system32系统\ scesrv.dll列出"疯子="1">3.<版本><范围><高的包容="0">5.0.2195.3649高的>范围>版本>4文件版本>5WindowsFileVersion>
下面是一个更复杂的检查,其中包含仅针对Windows XP SP2上的特定文件版本的测试(系统和Windows文件版本检查测试的组合):
xml
1<VulnerabilityCheck身份证件="acme-windows-file-check-1"范围="节点"版本="1">2<系统>3.<操作系统minCertainty="1"姓名="Windows XP专业"小贩="微软">4<版本>5<价值>SP2价值>6版本>7操作系统>8系统>9<WindowsFileVersion>10.<文件版本姓名="%windir%\ system32 \ shsvcs.dll"疯子="1">11.<版本><范围><高的包容="0">6.0.2900.3051高的>范围>版本>12.文件版本>13.WindowsFileVersion>14.VulnerabilityCheck>
以下是针对特定版本的Internet Explorer的示例检查,该Internet Explorer为该特定产品测试多个注册表值:
xml
1<VulnerabilityCheck身份证件="acme-windows-registry-check-1"范围="节点"版本="1">2<InstalledSoftware>3.<产品minCertainty="1"姓名="Internet Explorer"小贩="微软">4<版本>5<价值>5.01SP4价值>6版本>7产品>8InstalledSoftware>9<WindowsRegistry.>10.<注册表项姓名="HKLM \ SOFTWARE \ \ \ Microsoft Internet Explorer ActiveX兼容性\ {d9998bd0 - 7957 - 11 - d2 - 8美联储- 00606730 - d3aa}">11.<registryValue姓名="兼容性旗帜"类型="reg_dword.">12.<价值>1024价值>13.registryValue>14.注册表项>15.<注册表项姓名="HKLM \ Software \ Microsoft \ Internet Explorer \ ActiveX兼容性\ {Be4191FB-59EF-4825-AEFC-109727951E42}">16.<registryValue姓名="兼容性旗帜"类型="reg_dword.">17.<价值>1024价值>18.registryValue>19.注册表项>20.WindowsRegistry.>21.VulnerabilityCheck>
检查已安装软件的版本
此检查查找已安装软件的版本。
xml
1<InstalledSoftware>2<产品minCertainty="1"姓名="Exchange 2000服务器"小贩="微软">3.<版本>4<价值>SP3价值>5版本>6产品>7InstalledSoftware>
默认的帐户检查
在Security Console中,所有用户名和密码检查的工作方式基本相同。你有一个<代码类="prism-code language-text">
以下<代码类="prism-code language-text">类型属性值可用于<代码类="prism-code language-text">
IBM AS400端口映射器
pcAnywhere控制
CIFS
(可选的<代码类="prism-code language-text">指定Windows域名) DB2
(<代码类="prism-code language-text">指定数据库名称,例如<代码类="prism-code language-text">样品) 文件传输协议
HTTP
MySQL
(<代码类="prism-code language-text">指定数据库名称,例如<代码类="prism-code language-text">mysql.) 网络操作系统
甲骨文
(<代码类="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">私人) SSH
TDS.
(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
此检查查找CIF上的管理员/密码:
xml
1<VulnerabilityCheck身份证件="cifs -通用- 0002"范围="节点">2<NetworkService类型="CIFS"/>3.<默认帐户>4<uid>行政人员uid>5<密码>密码密码>6默认帐户>7VulnerabilityCheck>
ssh-default-account-root-password-password.vck * *
这个检查查找SSH上的root/密码:
xml
1<VulnerabilityCheck身份证件="ssh-default-account-root-password-password"范围="终点">2<NetworkService类型="SSH"/>3.<默认帐户>4<uid>根uid>5<密码>密码密码>6默认帐户>7VulnerabilityCheck>
telnet-default-account-root-password-password.vck**
这个检查在Telnet上查找root/密码:
xml
1<VulnerabilityCheck身份证件="Telnet-Default-account-root-password-password"范围="终点">2<NetworkService类型="telnet."/>3.<默认帐户>4<uid>根uid>5<密码>密码密码>6<领域>领域>7默认帐户>8VulnerabilityCheck>
mysql-default-account-admin-nopassword。vck**(检查MySQL上没有密码的管理员)
此检查查找管理员在MySQL上没有密码:
xml
1<VulnerabilityCheck身份证件="mysql默认帐户管理员nopassword"范围="终点">2<NetworkService类型="MySQL"/>3.<默认帐户>4<uid>行政uid>5<密码>密码>6<领域>mysql.领域>7默认帐户>8VulnerabilityCheck>
操作系统指纹检查
xml
1<系统>2<操作系统minCertainty="1"姓名="Windows NT服务器"小贩="微软">3.<版本>4<价值>4SP5价值>5版本>6<版本>7<价值>4SP6A价值>8版本>9<版本>10.<价值>4SP4价值>11.版本>12.操作系统>13.系统>
拒绝服务检查
有时您希望进行不安全的检查,例如拒绝服务检查。在这种情况下,设置的安全属性<代码类="prism-code language-text">
xml
1<VulnerabilityCheck身份证件="http-jrun-long-url-bof"安全="0"范围="终点">2<NetworkService类型="HTTP | HTTPS">3.<产品姓名="杰伦"/>4NetworkService>5<HTTPCheck重试="3.">6<HTTPRequest方法="得到">7<URI>/<垃圾长度="5200">R7.垃圾>。jspURI>8HTTPRequest>9<httpresponse.><thrownException类="java.io.ioexception."/>httpresponse.>10.HTTPCheck>11.<状态检查等待="2500"地位="关闭"/>12.VulnerabilityCheck>
布尔表达式
有时你可能想要将一组检查分组<代码类="prism-code language-text"><和>或<代码类="prism-code language-text"><、>(或组合)形成复杂的布尔测试。例如:
xml
1VulnerabilityCheck身份证件=“例子-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>