写漏洞检查
自定义漏洞检查数据与Insight平台不兼容dota2必威联赛
如果您是InsightVM订阅者,它利用本文中描述的自定义漏洞检查功能,请注意您创建的任何自定义检查以及从这些检查中派生的任何扫描数据都将包含在内部部署安全控制台中。自定义检查及其扫描结果不会在洞察平台上游行驶。dota2必威联赛这意味着它们在InsightVM的基于云的特征和经验中不存在,例如仪表板,整治项目, 和目标和斯拉斯.
这是在安全控制台中开发自定义漏洞检查的教程。有关此主题的更多信息,请参阅以下文章:
- <一个HREF.="http.s://www.gcpym.com/insightvm/common-vulnerability-check-examples">漏洞检查示例一个>
- 构建弱凭证漏洞检查一个>
- 转换NASL检查一个>
安全控制台包括使用简单XML格式创建复杂漏洞检查的框架。漏洞检查跨越安全控制台启动时由安全控制台解析的两个或多个文件。
组成漏洞检查的2种XML文件:
- 漏洞描述符- 结尾的文件<代码class="prism-code language-text">.xml.扩展包含有关特定漏洞的信息(标题,描述,严重性,CVE ID,CVSS分数等)。
- 漏洞检查- 结尾的文件<代码class="prism-code language-text">.vck包含多个测试的扩展,该测试在运行时编译并由安全控制台使用,以验证描述符中描述的漏洞的存在(或不存在)。
一个漏洞可以有几种不同类型的检查(或<代码class="prism-code language-text">.vckS)与它相关联。
存在第三个可选的XML文件类型:
- 漏洞解决方案文件- 结尾的文件<代码class="prism-code language-text">.sol.扩展包含漏洞解决方案信息。该解决方案信息可以可选地包含在漏洞定义中<代码class="prism-code language-text">.xml.文件或分解成一个<代码class="prism-code language-text">.sol.以便重用其他漏洞。解决方案包含关于如何修复漏洞的信息。解决方案文件允许只编写解决方案一次,并在针对使用相同解决方案的许多漏洞所推荐的解决方案发生更改时在一个地方进行更新。
- 你可以阅读更多有关此解决方案文件<一个HREF.="http.s://github.com/BrianWGray/cmty-nexpose-checks/wiki/Understanding-Fingerprints-and-Vulnerability-Checks">外部参考一个>.
创建您的第一个漏洞检查
在本文中,我们将重新实现来自尼克托的简单漏洞检查,因为它是许多人熟悉的开源工具。此示例基于添加到Nikto的Check for WordPress版本信息泄漏。让我们在安全控制台中进行同样的检查,以便您可以看到方法的差异。
尼克托支票是这样写的:
1“006184”, “0”, “3”, “/ WP-链接-opml.php”, “GET”, “发电机= \” 的WordPress / “ ”“, ”“, ”“, ”“,” 这WordPress的脚本揭示了安装的版本。“””,‘’
在此检查中:
- <代码class="prism-code language-text">006184是nikto漏洞ID
/wp-links-opml.php.
是请求的URL路径Generator = \“WordPress /
在将表明此漏洞的存在(报价在Nikto的文件格式转义)的响应,以查找字符串
现在让我们在安全控制台中创建检查相同的漏洞 - 您会发现格式更复杂,并且写入更长的时间(尽管在RAPID7的内部我们有创作工具来加快工具来加速该过程。
创建漏洞描述符(.xml)文件
首先,我们创造了<代码class="prism-code language-text">.xml.描述符文件。文件看起来很复杂,但它实际上很容易解释。创建一个名为的文件<代码class="prism-code language-text">cmty-http-wordpress-wplinks-opml-info-leap.xml具有以下内容:
xml
1<?xml版本='1.0'编码='utf-8'?>2<漏洞ID="cmty-http-wordpress-wplinks-opml-info-leak"发表="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/交流:l/非盟:N/C:P/我:N/一个:N)CVSS.>10.<alterateids.>11.<ID姓名="URL.">http.://博主安全.网/WordPress./工具/WP.-扫描仪ID>12.alterateids.>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"时间="30m.">22.<概括>禁用访问WP-链接-OPML..PHP页面概括>23.<解决方法>24.<p>评估无论OPML.需要启用为了你的博客.如果不是,禁用访问WP-链接-OPML..PHP页面要么25.删除它或使用您的Web服务器的访问控制机制(为了例子.htaccess onApache)要禁用http.使用权26.到这个文件.p>27.解决方法>28.解决方案>29.解决方案>30.漏洞>
让我们来解释一下这个文件的不同部分:
- 的<代码class="prism-code language-text">IDattribute—安全控制台中的每个漏洞都有一个唯一的标识符。此ID用于区分该漏洞,并被相应的代码引用<代码class="prism-code language-text">.vck文件(下面描述)。在这种情况下,漏洞ID是<代码class="prism-code language-text">cmty-http-wordpress-wplinks-opml-info-leak.的<代码class="prism-code language-text">cmty部分代表“社区”。此前缀用于将此漏洞保留与RAPT7发布的任何内容碰撞。
- 请注意,XML文件必须具有与ID相同的基本名称。该漏洞ID包含一系列最多255个字母字符,数字或连字符(<代码class="prism-code language-text">-)。
- 的<代码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">添加attribute—描述符可能有一个添加的日期,用于说明首次包含在安全控制台中的时间。在本例中,添加的日期为<代码class="prism-code language-text">2010-03-13,这是本教程最初写的日期。
- 的<代码class="prism-code language-text">修改的属性 - 这描述了上次修改此XML文件时。
- 如果修改XML文件,则必须修改<代码class="prism-code language-text">修改的否则,否则安全控制台不会重新处理此文件。如果希望安全控制台将此数据重新导入其内部数据库,则必须更改<代码class="prism-code language-text">修改的每次更改此文件时都会属性。
- 的<代码class="prism-code language-text">版本属性 - 此属性是指漏洞描述符文件格式的版本。这应该始终设置为<代码class="prism-code language-text">2.0.
- 的<代码class="prism-code language-text">
元素 - 这<代码class="prism-code language-text"> 元素是漏洞的标题,如安全控制台UI和报告中的漏洞细节列表中显示。 - 的<代码class="prism-code language-text">
元素 - 这个元素存储完整的CVSSv2载体,其得分此漏洞。看<一个HREF.="http://www.first.org/cvss/cvss-guide.html.">http://www.first.org/cvss/cvss-guide.html..一个>关于CVSS的更多信息。 - 安全控制台自动计算来自矢量的CVSS基本分数。
- 的<代码class="prism-code language-text"><标签>element—标签用于对漏洞进行分类,以便进行分类搜索或自定义扫描模板。我给这个漏洞添加了两个标签:<代码class="prism-code language-text">网页和<代码class="prism-code language-text">WordPress.
- 的<代码class="prism-code language-text">
element—此元素用于将多个引用标识符分组到漏洞描述符。这些通常包括对Secunia通知、CVE id和url的引用。Security Console将根据内置逻辑在UI和报告中为大多数类型的id自动生成正确的超链接。备用id可以采用几种形式,包括: - <代码class="prism-code language-text">
8725 id> 用于ID的Bugtraq
对于CVE IDcve-2002-1850 id>
- <代码class="prism-code language-text">
- 的<代码class="prism-code language-text"><描述>element—该元素用于提供有关漏洞行为的有用信息,这些信息显示在UI中的漏洞详细信息页面中。此元素支持HTML标记的有限子集,包括<代码class="prism-code language-text">,<代码class="prism-code language-text">,<代码class="prism-code language-text">
- 的<代码class="prism-code language-text"><解决方案>元素 - 这个元素描述“我怎样才能修补或修复此漏洞?”。对于漏洞的解决方案,解决方案元素分组,并按要么引用<代码class="prism-code language-text">ID(对于文件外解决方案)或在文件本身(内联解决方案)中构建。解决方案ID的原因是,修复报告可以自动弄清楚如何优化修复步骤(例如,将多个漏洞折叠成单个常见解决方案,该解决方案全部修复全部)。时间属性是指遵循解决方案中列出的步骤的估计时间。您可以使用<代码class="prism-code language-text">30m.代表30分钟或<代码class="prism-code language-text">2h20m以代表2小时20分钟。
创建漏洞检查(.vck)文件
现在创建一个名为的文件<代码class="prism-code language-text">cmty-http-wordpress-wplinks-opml-info-lever.vck具有以下内容:
xml
1<VulnerabilityCheckID="cmty-http-wordpress-wplinks-opml-info-leak"范围="终点">2<NetworkService类型="HTTP | HTTPS"/>3.<HTTPCheck>4<的HTTPRequest方法="得到">5<Uri.>/WP.-链接-OPML..PHP.Uri.>6的HTTPRequest>7<httpresponse.代码="200.">8<正则表达式>发电机=“WordPress /(. *)”正则表达式>9httpresponse.>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">节点对系统范围内的安全漏洞(那些影响整个系统)。网络漏洞是端点特定的定义,而一个利用了TCP / IP协议栈的将是整个节点。
- 的<代码class="prism-code language-text">
元件指示扫描引擎运行任何港口此检查发现被运行HTTP或HTTPS协议。注意使用的<代码class="prism-code language-text">|字符(也称为“管道”字符)以指示HTTP或HTTPS。 - 这个特别<代码class="prism-code language-text">.vck用来<代码class="prism-code language-text">
元件以指示一个基本的HTTP“发送的请求时,匹配的响应”类型的检查。<代码class="prism-code language-text"> 可能只包含一个<代码class="prism-code language-text"> 子元素和1<代码class="prism-code language-text"> 元素。的<代码class="prism-code language-text"> 元素可能包含一个或多个<代码class="prism-code language-text"> 元素。如果多个<代码class="prism-code language-text"> 元件存在,每个URI将被请求反过来,寻找匹配到<代码class="prism-code language-text"> 条件。 - 的<代码class="prism-code language-text">
元素说“使用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"> .模式匹配在按线路基础上发生。如果您希望正则表达式匹配多行,请指定<代码class="prism-code language-text"> .
部署您的漏洞检查
要部署此漏洞检查,只需复制你<代码class="prism-code language-text">.xml.和相同的<代码class="prism-code language-text">.vck文件进入以下目录:
1< nexpose-install-dir > / plugins / java / 1 / CustomScanner / 1 /
接下来,访问<一个HREF.="http.s://www.gcpym.com/insightvm/using-the-command-console">InsightVM命令控制台一个>并运行<代码class="prism-code language-text">负载内容命令。在控制台上观看错误(看<代码class="prism-code language-text">nsc.log)重新加载内容时。如果您犯了任何错误,则安全控制台将在编译新漏洞时记录一些错误消息。如果一切都成功,您应该在日志中看到类似以下消息的内容:
12015-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-leak到了<代码class="prism-code language-text">/vulnerability/vuln-summary.jsp?vulnid=.格式在浏览器的URL字段中。以下是这看起来像(股权<代码class="prism-code language-text">{控制台地址或域}与您的控制台主机的正确的IP地址或FQDN):
1HTTPS:// {控制台地址或域}:3780 /漏洞/ vuln-summary.jsp vulnid = CMTY-HTTP-WordPress的-wplinks-OPML-信息泄漏
您应该看到在这个看你的新漏洞的细节。查看信息并纠正任何错误。不要忘了,你做的任何必要的修改后的文件重新部署到安全控制台目录。
使用您的新漏洞进行扫描
您的新漏洞将自动包含在大多数默认扫描模板中。只需对具有此漏洞的服务器进行扫描,看看是否显示该漏洞。安全控制台应该显示任何新的受影响的资产<代码class="prism-code language-text">vultnerability.html.上面描述的页面URL(不要忘记刷新页面)。如果系统易受攻击,但您的检查未被检测到,请尝试运行受影响资产的漏洞报告卡报告(详细级别设置为高),以了解为什么安全控制台没有找到漏洞。