本节书摘来自异步社区《高度安全环境下的高级渗透测试》一书中的第1章1.7节dradis框架介绍,作者【英】lee allen,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.7 dradis框架介绍
dradis框架是一个rails应用程序,它可以用于管理在渗透测试时出现的数据过载情况。dradis基于web的用户界面体验良好,它简化了渗透测试周期的数据收集过程,并且能够将数据方便地分享给团队其他成员。
在结合不同的数据源,例如nmap、nessus,甚至metasploit时,你通常需要构造某种数据库,然后使用各种方法管理导入的数据。dradis可以让你单击几下鼠标,就能通过插件导入这些数据。dradis也允许你上传附件(例如截图),或将你自己的注释添加至数据库中。
dradis框架可以安装在linux、windows或osx上。
dradis服务器可以通过单击快捷方式applications | backtrack | reporting tools | evidence management | dradis,或在终端输入以下内容来开启:
由于证书是自签署的,所以浏览器会向用户提示警告消息。将证书添加至你的例外列表中并继续。你可能也想在 no script 浏览器插件中选择allow 127.0.0.1。
你将看到“what is dradis”欢迎界面.为了设置服务器共享密码,你需要单击页面右上角的back to the app链接。图1.15是设置密码页面的截图。
dradis框架使用了可以供所有团队成员共享的密码。在password区域中输入你选择的密码。
永远不要重复使用密码!
单击initialize按钮继续。这将建立新密码并接受默认元服务器(meta-server)选项。
你现在可以在login字段选择一个新的用户名。用户登录作为信息使用,它不会影响工作区域。在password区域输入共享的服务密码。一旦你单击log in按钮,dradis主工作区域就会出现。用户名及密码输入页面如图1.16所示。
我们将通过创建一个新分支来设置个dradis环境,该分支将代表我们的渗透测试工作。这些分支可以基于用户创建的标准来管理检测结果
1.在程序窗口顶部的工具栏中单击add branch按钮。
2.你可以为新的分支重命名。使用practicepentest重写branch #2,并按enter键。
3.右键单击practicepentest并选择add child来分级。
4.试验一下并添加几个文件夹,然后思考你将如何安排你的数据,以方便访问和易于管理。
图1.17是一个项目树示例,假定该项目树在渗透测试期间用来收集数据。
1.7.1 导出一个项目模板
测试包含一系列计划好的阶段和过程这些阶段计划在不同测试情况下变化不大。为了充分利用这一事实,我们将创建一个可重复利用的模板。
在选择好practicepentest节点后,在顶部菜单栏上单击export图标。当展开project export菜单时,将看到as template选项。单击该选项可以将项目模板以xml文件的形式存储到我们需要的位置。导出操作如图1.18所示。
将文件保存到你的backtrack desktop文件夹并使用默认名dradis-template.xml。返回你的dradis web应用窗口,选择practicepentest节点,右键单击,然后(在弹出的菜单中)选择delete node,将其删除。
1.7.2 导入一个项目模板
practicepentest节点伴随着剩下的数据一起删除了。现在是我们重新利用它的时候了,我们需要导入dradis-template.xml文件。单击菜单栏中的import from file选项,然后选择old importer。从下拉菜单中选择project template upload,单击upload完成导入程序,一旦你的屏幕刷新,将会有两个新的文件夹出现:一个文件夹名为upload files,另一个自然就是原来的practicepentest节点结构。具体操作如图1.19所示。
1.7.3 准备导入样本数据
为了完全领会dradis框架的价值,我们将使用一些在渗透测试和漏洞测试中常用的工具来产生一些测试数据。大多数人应该比较熟悉这些工具,所以这里不会深入讨论这些工具。
要是bt5_r1_tester1还没有启动,我们首先要做的就是立刻让它跑起来。一旦你登录到backtrack客户端主机并通过startx命令打开了用户图形界面,那么在顶部菜单栏单击终端图标就会启动一个新的终端会话。用户图形界面如图1.20所示。
你可能已经注意到,自己在以root身份运行,因为很多工具都需要管理员权限才能正常运行。
将目录更改为desktop,然后自己创建一个名为testdata的新目录。这里将存储一些将要使用的导出文档。将你的当前工作目录更改为/desktop/testdata。
现在我们将使用nmap生成数据,扫描生成的数据随后会导入到dradis中:
nmap -vv -o -ss -a -p- p0 -oa nmapscan 127.0.0.1
该命令会初始化nmap,使其扫描本地主机,并命令结果保存成三个格式的文件:xml文件、标准文件、grepable文件。由于没有指定目录,所以文件将保存在当前工作目录下。我们进行了一个针对所有端口和操作系统版本检测的细致tcp syn扫描,这个命令针对在线的所有主机。
导入你的nmap数据
在dradis web控制台已经打开,而且practicepentest项目树已经加载之后,选择import from file, old improter,然后在import from file菜单中选择nmap upload格式,然后单击select a file:输入区域右边的文件夹图标,浏览并选择nmapscan.xml文件,然后单击open。导入文件窗口如图1.21所示。
单击upload将完成导入。这需要一些时间来处理这些数据。处理时间与拥有的数据大小成正比。上传完成后如图1.22所示。
数据导入后会在树上增加一个新的节点,你可以将这个节点在practicepentest内进行任意移动,仅需要单击鼠标左键进行拖曳即可。将127.0.0.1的扫描结果放到practicepentest的逻辑结构中后,你可以轻松地将扫描结果与本次渗透测试和其他相关数据关联起来,如图1.23所示。
1.7.4 将导出数据转成html格式
使用这种集中式数据收集一个好处是,你可以在注释上设置标记,让数据导出成pdf、ms word或者html格式。
在dradis启动和运行时,我们需要选择practicepentest节点,同时单击工作区项目树右边的add note按钮,在弹出的编辑器中输入this is a note,然后单击save。这就将你的注释添加至列表中了。
这些注释对你渗透测试的工作非常重要,你应该慎重考虑并清楚写明注释内容。避免注释仅在当前环境下起作用,因为你可能在几天后重新查看这些注释。
1.7.5 dradis类别区域
你不会总是想将所有内容导出到你的报告中。为了解决这个问题,dradis开发团队添加category区域。这个区域将标记那些dradis提供的各种格式的数据,这些数据有待导出。在此情况下,我们需要双击在“this is a note”右边列出的default category文本,在下拉菜单选择htmlexport ready选项,见图1.24。
为了查看数据,在顶端工具栏选择export选项,并单击html export,你将得到所有以html格式输出的practicepentest注释文件,该文件在整个项目树中是htmlexport类别的一个成员。
更改默认的html模板
可以看到,dradis的输出非常友好,但如果你需要更多定制的输出呢?你可以通过更改标准模板,来定制(自定义)导出的格式,下面是如何更改文档脚的例子:
将当前工作目录更改为选择导出插件。在此情况下我们将修改html_export/template.html.erb文件。
为了修改template.html.erb文件,我们将使用nano,它是一个强大且易用的文本编辑器。
文件将显示在nano文本编辑器中。如果需要参考的话,nano的命令会显示在应用的底部。我们通过设置template.html.erb文件来使用html文件对模板进行小的修改。将
放到<%= title %>行的下面。
在nano中使用ctrl+o保存你修改的文件并写到磁盘中。你将被问到用什么文件名来保存文件,你可以使用默认的文件名并在键盘上直接按enter。
想查看改变是否生效,回到dradis web控制界面,选择praticepentest,然后单击工具栏的export→htmlexport选项。你的新模板将被加载,在导出的报告中即可看到改变是否成功。模板是可以定制的,只要你付出一点努力并具备html技巧,你就能够定制自己想要的模板。
请注意,ms word导出功能需要你安装ms office。
这表示在使用backtrack下不能完全展示dradis的性能。word模板容易定制,使其包含公司信息,以你喜欢的格式列出数据并将标准页眉和页脚添加到文档中。
由于dradis是使用起来非常方便如果你需要将数据导出到ms word的功能,但是没有许可将它安装在backtrack上,那么你可以将dradis安装在一台安装了ms office的windows主机上,将dradis项目从backtrack中导出并重新导入windows的dradis中。