写作漏洞检查
自定义漏洞检查数据与Insight平台不兼容dota2必威联赛
如果您是利用本文中描述的自定义漏洞检查功能的InsightVM订阅者,请注意,您创建的任何自定义检查以及从这些检查派生的任何扫描数据都将包含在内部安全控制台中并仅限于此。自定义检查及其扫描结果不会上游传送到洞察平台。dota2必威联赛这意味着它们将不存在于InsightVM基于云的功能和体验中,例如指示板那修复项目,目标和sla。
这是一个关于在安全控制台中开发自定义漏洞检查的教程。关于这个主题的更多信息可在以下文章中获得:
- <李><一种href=“//m.gcpym.com/insightvm/common-vulnerability-check-examples">漏洞检查示例一种>
- 构建弱凭据漏洞检查一种>
- 转换NASL检查一种>
安全控制台包括一个框架,用于使用简单的XML格式创建复杂的漏洞检查。漏洞检查在两个或多个文件之间进行分割,当扫描引擎启动时,安全控制台将解析这些文件。
- <李>漏洞描述符—以。结尾的文件<代码class="prism-code language-text">. xml扩展包含有关特定漏洞的信息(标题,描述,严重性,CVE ID,CVSS分数等)。
- 漏洞检查—以。结尾的文件<代码class="prism-code language-text">.vck.包含多个测试的扩展,该测试在运行时编译并由安全控制台使用,以验证描述符中描述的漏洞的存在(或不存在)。
一个漏洞可以有几种不同类型的检查(或<代码class="prism-code language-text">.vck.与它相关联。
- <李>漏洞解决方案文件—以。结尾的文件<代码class="prism-code language-text">.sol扩展包含漏洞解决方案信息。该解决方案信息可以可选地包含在漏洞定义中<代码class="prism-code language-text">. xml文件或分解成一个<代码class="prism-code language-text">.sol重新使用其他漏洞。解决方案包含有关如何修复漏洞的信息。解决方案文件允许在推荐的解决方案更改使用相同解决方案的许多漏洞时,将解决方案写入一次并在一个地方更新。
- <李>您可以在此阅读更多关于解决方案文件的信息<一种href=“https://github.com/BrianWGray/cmty-nexpose-checks/wiki/Understanding-Fingerprints-and-Vulnerability-Checks">外部引用一种>。
创建您的第一个漏洞检查
在本文中,我们将重新实现来自Nikto的简单漏洞检查,因为它是许多人将熟悉的开源工具。此示例基于添加到Nikto的Check for WordPress版本信息泄漏。让我们在安全控制台中进行同样的检查,以便您可以看到方法的差异。
1
“006184”、“0”、“3”、“/ wp-links-opml.php”、“得到”,“发电机= \”WordPress /","","","",""," 这个WordPress脚本揭示了安装版本。”、“”、“”
在此检查中:
- <李><代码class="prism-code language-text">006184是尼克托漏洞ID
/ wp-links-opml.php是请求的URL路径吗Generator = \“WordPress /是要在响应中查找的字符串,该字符串将指示存在此漏洞(引用在Nikto文件格式中转义)
现在,让我们在Security Console中创建一个相同漏洞的检查——您将发现格式更复杂,并且需要更长时间来编写(尽管在Rapid7内部,我们有创作工具来加快这个过程)。
创建一个漏洞描述符(.xml)文件
首先,我们创造了<代码class="prism-code language-text">. xml描述符文件。这个文件看起来很复杂,但实际上很容易解释。创建一个名为<代码class="prism-code language-text">cmty-http-wordpress-wplinks-opml-info-leak.xml其内容如下:
1
<?XML版本='1.0'编码='UTF-8'?>
2
<脆弱性id=“CMTY-HTTP-WordPress-WPLINKS-OPML-Info-Lea漏“发表=“2007-05-26“添加=“2010-03-13“修改=“2010-03-13“版本=“2.0“>
3.
<的名字>WordPress.版本信息通过WP泄漏-链接-opml.。php的名字>
4.
<标签>
5.
<标签>WordPress.标签>
6.
<标签>网络标签>
7.
<标签>社区标签>
8.
标签>
9.
<cvss>(AV.:N./AC.:L./Au.:N./C:P./一世:N./一种:N.的)cvss>
10
<AlternateIds>
11
<id的名字=“URL“>http://blogsecurity。净/wordpress/工具/wp-扫描器id>
12
AlternateIds>
13
<描述>
14
<P.>这版本的这WordPress.博客软件可以通过一个请求泄露到
15
名为wp的文件-链接-opml.。php。这页面输出链接信息在opml.
16
格式。opml.是这
17
<一种href=“http://en.wikipedia.org/wiki/OPML“>大纲处理器标记语言一种>那
18
用于在博客和RSS聚集器。P.>
19
描述>
20.
<解决方案>
21
<解决方案id=“cmty-http-wordpress-disable-wplinks-opml“时间=“30米“>
22
<总结>禁用访问WP-链接-opml.。php页面总结>
23
<解决方案>
24
<P.>评估是否opml.需要启用为你的博客。如果不那禁用访问WP-链接-opml.。PHP页面要么
25
删除它或使用您的web服务器的访问控制机制(为例子。htaccess上Apache.的)禁用HTTP访问
26
来这文件。P.>
27
解决方案>
28
解决方案>
29
解决方案>
30.
脆弱性>
让我们来解释一下这个文件的不同部分:
- <李>这<代码class="prism-code language-text">id属性 - 安全控制台中的每个漏洞都有一个唯一的标识符。此ID可区分此漏洞,并由相应的漏洞引用<代码class="prism-code language-text">.vck.文件(下面描述)。在这种情况下,漏洞ID是<代码class="prism-code language-text">CMTY-HTTP-WordPress-WPLINKS-OPML-Info-Lea漏。这<代码class="prism-code language-text">CMTY.部分代表“社区”。此前缀用于防止此漏洞与Rapid7发布的任何漏洞发生冲突。
- 这<代码class="prism-code language-text">发表属性 - 漏洞可能具有发布日期,该日期描述了第一次发布漏洞的信息时的日期。此属性是可选的,但如果漏洞的信息可用,则强烈建议包含该属性。在这种情况下,我们选择了<代码class="prism-code language-text">2007-05-26因为这是我能找到的最早的信息泄露参考。此属性可以包含有效日期,形式为<代码class="prism-code language-text">YYYY-MM-DD。
- 这<代码class="prism-code language-text">添加属性 - 描述符可以具有添加日期,该日期用于注意其首次包含在安全控制台中。在这种情况下,添加日期是<代码class="prism-code language-text">2010-03-13,这是本教程最初编写的日期。
- 这<代码class="prism-code language-text">修改attribute—描述最后一次修改XML文件的时间。
- <李>如果修改XML文件,则必须修改<代码class="prism-code language-text">修改属性,否则安全控制台将不会重新处理此文件。如果希望安全控制台将此数据重新导入其内部数据库,则必须更改<代码class="prism-code language-text">修改属性。
- <李>请注意,XML文件必须具有与ID相同的基名。漏洞ID包含不超过255个字母、数字或连字符(<代码class="prism-code language-text">-).
- <李>安全控制台从向量自动计算CVSS基本分数。
- <李><代码class="prism-code language-text">< id名称=“出价”> 8725 < / id >获取Bugtraq ID
< id名称= " CVE " > CVE - 2002 - 1850 < / id >获取CVE ID创建一个漏洞检查(.vck)文件
现在创建一个名为<代码class="prism-code language-text">cmty-http-wordpress-wplinks-opml-info-lever.vck其内容如下:
1
<vulnerabilityCheck.id=“CMTY-HTTP-WordPress-WPLINKS-OPML-Info-Lea漏“范围=“端点“>
2
<NetworkService.类型=“HTTP | HTTPS“/>
3.
<httpcheck.>
4.
<HTTPRequest方法=“得到“>
5.
<URI>/wp-链接-opml.。phpURI>
6.
HTTPRequest>
7.
<HTTPResponse代码=“200“>
8.
<正则表达式>发电机=“wordpress /(.*)”正则表达式>
9.
HTTPResponse>
10
httpcheck.>
11
vulnerabilityCheck.>
让我们来解释一下这个文件的不同部分:
- <李>这<代码class="prism-code language-text">id属性引用XML文件中使用的相同ID。这将告诉安全控制台此检查针对的是哪个漏洞。
- 这<代码class="prism-code language-text">范围属性应设置为<代码class="prism-code language-text">端点针对特定于服务的漏洞(影响特定端口或服务的漏洞)或<代码class="prism-code language-text">节点对于系统范围的漏洞(影响整个系统的漏洞)。根据定义,Web漏洞是特定于端点的,而对TCP/IP堆栈的利用将针对整个节点。
- 这<代码class="prism-code language-text">< NetworkService >元素指示扫描引擎对发现正在运行HTTP或HTTPS协议的任何端口运行此检查。注意the的用法<代码class="prism-code language-text">|字符(也称为“管道”字符),用于指示HTTP或HTTPS。
- 这个特殊的<代码class="prism-code language-text">.vck.使用<代码class="prism-code language-text">< HTTPCheck >元素指示一个基本的HTTP“发送请求,匹配响应”类型的检查。<代码class="prism-code language-text">< HTTPCheck >只能包含一个<代码class="prism-code language-text">
儿童元素和一个<代码class="prism-code language-text">< HTTPResponse >元素。这<代码class="prism-code language-text"> 元素可以包含一个或多个<代码class="prism-code language-text">< URI >元素。如果多个<代码class="prism-code language-text">< URI >元素时,将依次请求每个URI,以查找与<代码class="prism-code language-text">< HTTPResponse >状况。 - 这<代码class="prism-code language-text">< HTTPResponse >元素表示“查找HTTP状态代码为。<代码class="prism-code language-text">200谁的身体与给定的正则表达式相匹配“。
- 这<代码class="prism-code language-text"><正则表达式>元素使用Perl 5语法,但有一些小差异。这将与HTTP响应体进行匹配。看到<一种href=“http://nlp.stanford.edu/nlp/javadoc/gnu-regexp-docs/syntax.html“>http://nlp.stanford.edu/nlp/javadoc/gnu-regexp-docs/syntax.html一种>查阅完整的语法参考。如果要进行不区分大小写的匹配,请指定<代码class="prism-code language-text">< regex cflags = " REG_ICASE " >。模式匹配在按线路基础上发生。如果您希望正则表达式匹配多行,请指定<代码class="prism-code language-text">< regex cflags = " REG_LINE_ANY_CRLF " >。
部署您的漏洞检查
要部署此漏洞检查,只需复制您的<代码class="prism-code language-text">. xml和相同的<代码class="prism-code language-text">.vck.文件进入以下目录:
1
/插件/ java / 1 / customscanner / 1 /
接下来,访问<一种href=“//m.gcpym.com/insightvm/using-the-command-console">InsightVM命令控制台一种>和运行<代码class="prism-code language-text">加载内容命令。注意控制台上的错误(查看<代码class="prism-code language-text">nsc.log.),当内容被重新加载时。如果您犯了任何错误,Security Console在编译新的漏洞时将记录一些错误消息。如果一切都成功了,你应该在日志中看到类似下面的消息:
1
2015-12-18T08:59:43 [INFO]插入1个漏洞。
2
...
3.
2015-12-18T08:59:55 [INFO]加载内容命令完成。
最后,打开漏洞在安全控制台中的选项卡并访问您的新漏洞检查的详细信息。最简单的方法是追加<代码class="prism-code language-text">CMTY-HTTP-WordPress-WPLINKS-OPML-Info-Lea漏到<代码class="prism-code language-text">/脆弱/ vuln-summary.jsp吗?vulnid =格式在浏览器的URL字段。下面是一个类似的例子(代换)<代码class="prism-code language-text">{console-address-or-domain}使用您的控制台主机的正确IP地址或FQDN):
1
https:// {console-address-or-domain}: 3780 /脆弱/ vuln-summary.jsp ? vulnid = cmty-http-wordpress-wplinks-opml-info-leak
您应该在这个视图中看到新漏洞的详细信息。复习资料并改正错误。在进行了必要的更改之后,不要忘记将文件重新部署到Security Console目录。
用你的新漏洞进行扫描
您的新漏洞将自动包含在大多数默认扫描模板中。只需对与具有此漏洞的服务器运行扫描并查看它是否显示。安全控制台应显示任何新的受影响资产<代码class="prism-code language-text">vulnerability.html上面描述的页面URL(别忘了刷新页面)。如果系统易受攻击,但您的支票未被检测到,请尝试运行受影响资产的漏洞报告卡报告(带有详细级别设置为高电平),以了解为什么安全控制台没有找到漏洞。