《高度安全环境下的高级渗透测试》—第1章1.7节Dradis框架介绍

简介:

本节书摘来自异步社区《高度安全环境下的高级渗透测试》一书中的第1章1.7节Dradis框架介绍,作者【英】Lee Allen,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 Dradis框架介绍
Dradis框架是一个Rails应用程序,它可以用于管理在渗透测试时出现的数据过载情况。Dradis基于Web的用户界面体验良好,它简化了渗透测试周期的数据收集过程,并且能够将数据方便地分享给团队其他成员。

在结合不同的数据源,例如Nmap、Nessus,甚至Metasploit时,你通常需要构造某种数据库,然后使用各种方法管理导入的数据。Dradis可以让你单击几下鼠标,就能通过插件导入这些数据。Dradis也允许你上传附件(例如截图),或将你自己的注释添加至数据库中。


f5270db19e06d5a3d3d2d9390b78b389a06091b0

Dradis框架可以安装在Linux、Windows或OSX上。
Dradis服务器可以通过单击快捷方式Applications | BackTrack | Reporting Tools | Evidence Management | Dradis,或在终端输入以下内容来开启:
# cd /pentest/misc/Dradis/
#./start.sh

一旦服务开启,你需要打开你的浏览器并输入https://127.0.0.1:3004,这将进入Dradis应用程序的介绍界面。


f5270db19e06d5a3d3d2d9390b78b389a06091b0

由于证书是自签署的,所以浏览器会向用户提示警告消息。将证书添加至你的例外列表中并继续。你可能也想在 No Script 浏览器插件中选择Allow 127.0.0.1。
你将看到“What is Dradis”欢迎界面.为了设置服务器共享密码,你需要单击页面右上角的back to the app链接。图1.15是设置密码页面的截图。

99e4c1e965643a040410cf6f3e9d0c29d33d7816

Dradis框架使用了可以供所有团队成员共享的密码。在Password区域中输入你选择的密码。

f5270db19e06d5a3d3d2d9390b78b389a06091b0
永远不要重复使用密码!
单击Initialize按钮继续。这将建立新密码并接受默认元服务器(Meta-Server)选项。

你现在可以在Login字段选择一个新的用户名。用户登录作为信息使用,它不会影响工作区域。在Password区域输入共享的服务密码。一旦你单击Log in按钮,Dradis主工作区域就会出现。用户名及密码输入页面如图1.16所示。


0c2e7cd5dc073f4c3233bd0ebcbd7056b1384406

我们将通过创建一个新分支来设置个Dradis环境,该分支将代表我们的渗透测试工作。这些分支可以基于用户创建的标准来管理检测结果

1.在程序窗口顶部的工具栏中单击add branch按钮。

2.你可以为新的分支重命名。使用PracticePenTest重写branch #2,并按Enter键。

3.右键单击PracticePenTest并选择add child来分级。

4.试验一下并添加几个文件夹,然后思考你将如何安排你的数据,以方便访问和易于管理。

图1.17是一个项目树示例,假定该项目树在渗透测试期间用来收集数据。


557c8d1cc727012dc74b77b007f23dcce37bc8bf

1.7.1 导出一个项目模板
测试包含一系列计划好的阶段和过程这些阶段计划在不同测试情况下变化不大。为了充分利用这一事实,我们将创建一个可重复利用的模板。

在选择好PracticePenTest节点后,在顶部菜单栏上单击export图标。当展开Project export菜单时,将看到As template选项。单击该选项可以将项目模板以XML文件的形式存储到我们需要的位置。导出操作如图1.18所示。


6dfebb10d778a2f0cbc444aedb1250e426234a6c

将文件保存到你的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所示。


ce937586e27ef603d60bb6f150c1424893fa4cdf

1.7.3 准备导入样本数据
为了完全领会Dradis框架的价值,我们将使用一些在渗透测试和漏洞测试中常用的工具来产生一些测试数据。大多数人应该比较熟悉这些工具,所以这里不会深入讨论这些工具。

要是BT5_R1_Tester1还没有启动,我们首先要做的就是立刻让它跑起来。一旦你登录到BackTrack客户端主机并通过startx命令打开了用户图形界面,那么在顶部菜单栏单击终端图标就会启动一个新的终端会话。用户图形界面如图1.20所示。


43a682c716fbac556f467c078041f271bf53c05e

你可能已经注意到,自己在以root身份运行,因为很多工具都需要管理员权限才能正常运行。
将目录更改为Desktop,然后自己创建一个名为testData的新目录。这里将存储一些将要使用的导出文档。将你的当前工作目录更改为/Desktop/testData。
# cd Desktop/
# mkdir testData
# cd 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所示。


70cdc673773db8fa5a6efff065d05058a862cde5

单击Upload将完成导入。这需要一些时间来处理这些数据。处理时间与拥有的数据大小成正比。上传完成后如图1.22所示。

d10b473274c5b54a5f4f3b4c2fd85b3acc485baa

数据导入后会在树上增加一个新的节点,你可以将这个节点在PracticePenTest内进行任意移动,仅需要单击鼠标左键进行拖曳即可。将127.0.0.1的扫描结果放到PracticePenTest的逻辑结构中后,你可以轻松地将扫描结果与本次渗透测试和其他相关数据关联起来,如图1.23所示。

8ed5121421273042f595faa3da5099352929a4bc

1.7.4 将导出数据转成HTML格式
使用这种集中式数据收集一个好处是,你可以在注释上设置标记,让数据导出成PDF、MS Word或者HTML格式。

在Dradis启动和运行时,我们需要选择PracticePenTest节点,同时单击工作区项目树右边的Add note按钮,在弹出的编辑器中输入This is a note,然后单击Save。这就将你的注释添加至列表中了。


f5270db19e06d5a3d3d2d9390b78b389a06091b0

这些注释对你渗透测试的工作非常重要,你应该慎重考虑并清楚写明注释内容。避免注释仅在当前环境下起作用,因为你可能在几天后重新查看这些注释。
1.7.5 Dradis类别区域
你不会总是想将所有内容导出到你的报告中。为了解决这个问题,Dradis开发团队添加Category区域。这个区域将标记那些Dradis提供的各种格式的数据,这些数据有待导出。在此情况下,我们需要双击在“This is a note”右边列出的default category文本,在下拉菜单选择HTMLExport ready选项,见图1.24。

8d782337fed34ca1f01582b714c18af8b1c7f749

为了查看数据,在顶端工具栏选择export选项,并单击HTML export,你将得到所有以HTML格式输出的PracticePenTest注释文件,该文件在整个项目树中是HTMLExport类别的一个成员。

更改默认的HTML模板
可以看到,Dradis的输出非常友好,但如果你需要更多定制的输出呢?你可以通过更改标准模板,来定制(自定义)导出的格式,下面是如何更改文档脚的例子:

将当前工作目录更改为选择导出插件。在此情况下我们将修改html_export/template.html.erb文件。

# cd /pentest/misc/dradis/server/vendor/plugins/html_export

为了修改template.html.erb文件,我们将使用Nano,它是一个强大且易用的文本编辑器。

# nano template.html.erb

文件将显示在Nano文本编辑器中。如果需要参考的话,Nano的命令会显示在应用的底部。我们通过设置template.html.erb文件来使用HTML文件对模板进行小的修改。将

You can change this template to suite your needs.

放到<%= title %>行的下面。
<title><% = title %></title>
<h1>You can change this template to suite your needs. </h1>

在Nano中使用Ctrl+O保存你修改的文件并写到磁盘中。你将被问到用什么文件名来保存文件,你可以使用默认的文件名并在键盘上直接按Enter。

想查看改变是否生效,回到Dradis Web控制界面,选择PraticePenTest,然后单击工具栏的export→HTMLexport选项。你的新模板将被加载,在导出的报告中即可看到改变是否成功。模板是可以定制的,只要你付出一点努力并具备HTML技巧,你就能够定制自己想要的模板。


a6bc05acd62d0cbe14b4f54313f5c42264e41e28

请注意,MS Word导出功能需要你安装MS Office。

这表示在使用BackTrack下不能完全展示Dradis的性能。Word模板容易定制,使其包含公司信息,以你喜欢的格式列出数据并将标准页眉和页脚添加到文档中。

由于Dradis是使用起来非常方便如果你需要将数据导出到MS Word的功能,但是没有许可将它安装在BackTrack上,那么你可以将Dradis安装在一台安装了MS Office的Windows主机上,将Dradis项目从BackTrack中导出并重新导入Windows的Dradis中。

相关文章
|
15天前
|
Web App开发 IDE 测试技术
【专栏】Selenium 是一款广泛使用的自动化测试框架:深入理解 Selenium 的核心组件
【4月更文挑战第27天】Selenium 是一款广泛使用的自动化测试框架,核心组件包括 WebDriver(与浏览器交互的接口,支持多浏览器测试),IDE(可视化的测试脚本录制和编辑工具)和 Grid(分布式测试,实现多机器并行测试)。通过这些组件,开发者能高效、稳定地进行自动化测试,但需注意浏览器兼容性、脚本维护和性能问题。理解并掌握这些组件的使用,能提升测试效率和质量。
|
2天前
|
Java 中间件 测试技术
深入理解自动化测试框架Selenium的设计与实现
【5月更文挑战第10天】 本文旨在深度剖析自动化测试工具Selenium的核心架构与实现机制,通过对其设计理念、组件结构以及在实际软件测试中的应用进行详细解读,使读者能够全面理解Selenium在现代Web应用测试中的重要性和有效性。文章首先介绍Selenium的发展背景及其解决的问题,然后详细探讨其架构设计,包括各种驱动和API的作用,最后结合实际案例分析Selenium如何提高测试效率和准确性。
|
3天前
|
测试技术
测试基础 Junit单元测试框架
测试基础 Junit单元测试框架
11 2
测试基础 Junit单元测试框架
|
4天前
|
Java 测试技术 持续交付
自动化测试框架选型与实战:深入探索与应用
【5月更文挑战第8天】本文探讨了自动化测试框架的选型与实战应用,强调了其在软件质量保障中的重要性。选型原则包括考虑项目需求、技术栈、可扩展性和可维护性,以及社区支持和文档。介绍了Selenium、Appium、JUnit和Pytest等常用框架,并概述了实战应用的步骤,包括明确需求、搭建环境、编写测试用例、执行测试、分析结果、维护代码和持续集成。合理选型与实践能提升测试效率,保障项目成功。
|
7天前
|
敏捷开发 测试技术 持续交付
深入理解自动化测试:框架与实践
【5月更文挑战第5天】 在现代软件开发周期中,自动化测试已成为确保产品质量和加速交付过程的关键环节。本文将深入探讨自动化测试的核心概念、框架选择以及实际实施过程中的最佳实践。通过分析各种自动化测试工具和技术的优缺点,我们旨在为读者提供一种系统化的方法来构建和维护有效的自动化测试环境。
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试中AI驱动的决策框架设计与实现
【5月更文挑战第5天】 在软件测试领域,自动化测试已成为提升测试效率和质量的关键手段。然而,随着软件系统的复杂性增加,传统的自动化测试方法面临挑战,尤其在测试用例的生成、执行及结果分析等方面。本文提出一种基于人工智能(AI)的自动化测试决策框架,旨在通过智能化的算法优化测试过程,并提高异常检测的准确率。该框架结合机器学习和深度学习技术,能够自学习历史测试数据,预测高风险变更区域,自动生成针对性强的测试用例,并在测试执行过程中实时调整测试策略。此外,通过自然语言处理(NLP)技术,该框架还能对测试结果进行语义分析,进一步提供更深入的洞察。本研究不仅增强了自动化测试工具的智能性,也为软件质量保证提
|
11天前
|
数据管理 测试技术
深入理解自动化测试框架:以Selenium为例
【4月更文挑战第30天】 随着软件开发的快速发展,自动化测试已经成为保证软件质量和提升开发效率的重要手段。本文将深入探讨自动化测试框架的核心概念,并以广泛应用的开源工具Selenium为例,解析其架构、原理及在实际项目中的运用。通过实例分析与性能评估,旨在为读者提供一套系统的自动化测试解决方案,并探讨其在复杂应用场景下的优化策略。
|
12天前
|
敏捷开发 前端开发 JavaScript
深入理解自动化测试框架:以Selenium为例
【4月更文挑战第30天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快市场投放的关键步骤。本文聚焦于流行的自动化测试框架——Selenium,探讨其架构、核心组件以及如何有效地利用Selenium进行Web应用测试。通过分析真实案例,我们将揭示Selenium在实际项目中的应用优势与面临的挑战,并提出优化策略。文章的目的在于帮助测试工程师深入理解Selenium,提升其在复杂项目中的运用效率。
|
12天前
|
前端开发 IDE 数据可视化
深入理解与应用自动化测试框架Selenium的最佳实践
【4月更文挑战第30天】 本文将深入剖析自动化测试框架Selenium的核心原理,并结合最佳实践案例,探讨如何有效提升测试覆盖率和效率。文中不仅涉及Selenium的架构解析,还将提供针对性的策略来优化测试脚本,确保测试流程的稳定性与可靠性。通过实例演示,读者可以掌握如何在不同测试场景中灵活运用Selenium,以及如何处理常见的技术挑战。
|
12天前
|
JavaScript 安全 编译器
【TypeScript 技术专栏】TypeScript 与 Jest 测试框架
【4月更文挑战第30天】本文探讨了TypeScript与Jest测试框架的结合在确保代码质量和稳定性上的重要性。Jest以其易用性、内置断言库、快照测试和代码覆盖率分析等特点,为TypeScript提供全面的测试支持。两者结合能实现类型安全的测试,提高开发效率,并涵盖各种测试场景,包括异步操作。通过实际案例分析,展示了如何有效利用这两个工具提升测试质量和开发效率,为项目成功奠定基础。

热门文章

最新文章