渗透测试平台Vulnreport介绍与使用
在这篇文章中,我们将跟大家讨论一些关于渗透测试方面的内容,并给大家介绍一款名叫Vulnreport的新型开源工具,而这款工具将能够让任何场景下的渗透测试任务变得更加简单。
Vulnreport是什么?
Vulnreport是一款渗透测试管理与自动化平台,它可以帮助我们完成很多枯燥乏味的安全渗透测试任务。虽然它无法代替渗透测试人员的位置,但是它可以增强测试人员的能力,使他们的工作更有效率。简而言之,它可以帮我们把所有的“脏活累活”全部做完,而研究人员就可以将精力全部放在“难啃的骨头”上了。
Vulnreport下载地址
如需本工具的完整文档,请点击【这里】。
工具安装与部署
Heroku自动化部署
你可以使用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!
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实例,请查看官方给出的【操作文档】。
XML输出与导入
目前,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的使用
Vulnreport的工作流程其实跟渗透测试人员的测试步骤是差不多的。当你在进行一次渗透测试时,无论你遇到的是什么漏洞(例如存储型XSS),你可以直接从列表中选择它,然后输入相关数据:
测试完成之后,Vulnreport会给我们生成一份非常nice的报告:
除此之外,Vulnreport还实现了非常简单的外部接口,而这些接口可以帮助我们执行各种类型的外部活动,例如发送报告邮件和记录漏洞状态等等。
总结
测试本身就很难,而渗透测试就更加麻烦了,虽然自动化的渗透测试工具无法完全代替测试人员,但是我们可以尽可能地让那些枯燥乏味的重复性操作以自动化的方式去实现。希望这款工具可以给大家带来帮助。