在这篇文章中,我们将跟大家讨论一些关于渗透测试方面的内容,并给大家介绍一款名叫 Vulnreport 的新型开源工具,而这款工具将能够让任何场景下的渗透测试任务变得更加简单。
Vulnreport 是一款渗透测试管理与自动化平台,它可以帮助我们完成很多枯燥乏味的安全渗透测试任务。虽然它无法代替渗透测试人员的位置,但是它可以增强测试人员的能力,使他们的工作更有效率。简而言之,它可以帮我们把所有的 "脏活累活" 全部做完,而研究人员就可以将精力全部放在 "难啃的骨头" 上了。
【 GitHub 传送门 】
如需本工具的完整文档,请点击【 这里 】。
你可以使用 Heroku 完成工具的自动化部署,然后按照下列指令登陆 Vulnreport 并完成配置。【 Heroku 传送门 】
按照下列代码将工具部署到 Heroku:
- gitclone [Vulnreport repo url]
- herokugit:remote -a [Heroku app name]
- herokuaddons:create heroku-postgresql:hobby-dev
- herokuaddons:create heroku-redis:hobby-dev
- herokuaddons:create rollbar:free
- herokuaddons:create sendgrid:starter
接下来,打开. env 文件并将键值对拷贝到 Heroku 设置中,这一步你也可以通过命令行接口来完成。
- herokuconfig:set VR_SESSION_SECRET=abc123456
- herokuconfig:set RACK_ENV=production
- gitpush heroku master
为了完成 Vulnreport 的初始化配置,你需要运行 SEED.rb 脚本。如果你将工具部署在了 Heroku 上,你可以直接使用下列命令来完成配置:
- herokurun. / SEED.rb
如果你使用了 Heroku 的自动化部署功能,那么这一步就已经自动完成了。
- Running./SEED.rb on ⬢ vulnreport-test... up,run.8035
- Vulnreport3.0.0.alpha seed script
- WARNING:This script should be run ONCE immediately after deploying and then DELETED
- Settingup Vulnreport now...
- Settingup the PostgreSQL database...
- Done
- Seedingthe database...
- Done
- UserID 1 created for you
- ALLDONE! <img data-original="http://image.3001.net/images/index/smilies/icon_smile.gif" src="http://www.freebuf.com/buf/themes/freebuf/images/grey.gif" alt=":)" />
Loginto Vulnreport now and go through the rest of the settings!
配置成功之后,你就可以删除 SEED.rb 文件了。
管理员账户默认的用户名为 admin,密码也是 admin。接下来,你就可以进入 Vulnreport(上述例子中的 URL 为 https://my-vr-test.herokuapp.com )并使用默认账户进行登录了。登录之后,你就可以进入 Vulnreport 的设置界面中创建并配置你的 Vulnreport 实例了。关于如何使用你新创建的 Vulnreport 实例,请查看官方给出的【 操作文档 】。
目前,Vulnreport 支持 XML 格式的输入以及输出,如果你需要在不同的环境下使用 Vulnreport 来进行渗透测试的话,这种功能将会非常有用。Vulnreport 目前所支持的 XML 格式如下:
- <?xmlversion="1.0" encoding="UTF-8"?>
- <Testxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Vuln>
- <Type>[Vulntype ID]</Type>
- <File>[File Vuln Data]</File>
- <Code>
- [Code Vuln Data]
- </Code>
- <File>clsSyncLog.cls</File>
- <Code>
- hello world
- </Code>
- ...etc...
- </Vuln>
- <Vuln>
- <Type>6</Type>
- <File>clsSyncLog.cls</File>
- <File>CommonFunction.cls</File>
- <Code>
- 12 Public Class CommonFunction{
- </Code>
- </Vuln>
- </Test>
- <?xmlversion="1.0" encoding="UTF-8" ?>
- <Testxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- ">
- <Vuln>
- <Type>REQUIRED - EXACTLY 1 - INTEGER- ID of VulnType. 0 = Custom</Type>
- <CustomTypeName>OPTIONAL - EXACTLY 1- STRING if TYPE == 0</CustomTypeName>
- <BurpData>OPTIONAL - UNLIMITED -STRING - Burp req/resp data encoded in our protocol</BurpData>
- <URL>OPTIONAL - UNLIMITED - STRING -URL for finding</URL>
- <FileName>OPTIONAL - UNLIMITED -STRING - Name/path of file for finding</FileName>
- <Output>OPTIONAL - UNLIMITED - STRING- Output details</Output>
- <Code>OPTIONAL - UNLIMITED - STRING -Code details</Code>
- <Notes>OPTIONAL - UNLIMITED - STRING- Notes for vuln</Notes>
- <Screenshot>
- OPTIONAL - UNLIMITED - Screenshots ofvuln
- <Filename>REQUIRED - EXACTLY 1 -STRING - Filename with extension</Filename>
- <ImageData>
- REQUIRED - EXACTLY 1 - BASE64 -Screenshot data
- </ImageData>
- </Screenshot>
- </Vuln>
- ....unlimited vulns....
- <Vuln>
- </Vuln>
- </Test>
Vulnreport 的工作流程其实跟渗透测试人员的测试步骤是差不多的。当你在进行一次渗透测试时,无论你遇到的是什么漏洞(例如存储型 XSS),你可以直接从列表中选择它,然后输入相关数据:
测试完成之后,Vulnreport 会给我们生成一份非常 nice 的报告:
除此之外,Vulnreport 还实现了非常简单的 外部接口 ,而这些接口可以帮助我们执行各种类型的外部活动,例如发送报告邮件和记录漏洞状态等等。
测试本身就很难,而渗透测试就更加麻烦了,虽然自动化的渗透测试工具无法完全代替测试人员,但是我们可以尽可能地让那些枯燥乏味的重复性操作以自动化的方式去实现。希望这款工具可以给大家带来帮助。
来源: http://www.tuicool.com/articles/QNnUVf3