渗透测试报告自动生成工具
公众号:白帽子左一
领取配套练手靶场、安全全套课程及工具...
在安服仔的日子里,发现其他人输出的渗透测试报告结果不规范,主要在报告质量、内容、字体、及修复方案中存在诸多问题,而且 大部分安服仔需要对每次的项目结果进行统计整理,方便后续跟踪复测。
因此研发了 Savior—渗透测试报告辅助生成系统 , 起这个名字也是为了拯救大多数渗透测试工程师,
告别繁琐的渗透测试报告编写过程及漏洞统计过程。
前端 : Ant Design Pro
后端 : Django REST Framework
数据库 : Mysql
用户管理 : 主要是方便统计漏洞的发现者,后续可能大概也许会添加漏洞统计模块,根据提交数据、漏洞类型、时间等进行统计报表,当前用户管理模块仅允许通过Django后台进行修改,前端只负责展示,主要是我太懒了。
项目管理 : 根据项目的不同可上传项目的专属渗透测报告模板,并可以根据需要进行模板自定义模板(/Demo/demo.docx);
模板自定义 : 不用修改源代码,仅需修改word即可进行模板自定义;
整改建议管理 : 此平台主要就是为了体现标准化输出,因此可通过内置漏洞描述及修复建议进行快速输出,并支持自定义修改(/Demo/常规WEB渗透测试漏洞描述及修复方法.docx);
一键生成: 通过提交报告模块,内联项目模板,快速生成渗透测试报告,真正达到了一键生成,并确保报告内数据准确、字体统一、格式标准;
自动邮件: 在生成报告后可通过用户管理配置的自动邮件发送功能进行邮件通知,可自定义邮件模板,这样再报告给客户的时候就可以直接转发了(暖男功能);
漏洞统计: 每次渗透过后,需要挨个查找报告进行统计整理,现在只要提交报告后,后台会自动联动;
漏洞报表一键导出
漏洞跟踪: 增加了漏洞状态字段,创建报告后,漏洞状态默认为新增,漏洞管理模块可进行复测,包括已整改、未整改两种状态;
Demo :
演示账号 :admin
演示密码 : Savior@404
首先将代码clone到本地:
Docker部署
我们推荐使用Docker进行部署,相对于源码部署更为简单和快速。
部署前请务必先安装 Docker 及 docker-compose 。
修改配置文件
首先复制根目录的 .env.docker 并重命名为 .env , 修改其中的Email Settings和initial Administrator配置。
这两个配置分别控制邮件提醒,以及初始管理帐号密码及邮箱。
同时需要注意以下两点:
1. 务必把邮箱修改为自己邮箱,不然可能会出现非预期错误!
2. 如果使用阿里云、腾讯云服务器,请使用smtp的ssl协议,两家云厂商默认封禁了25端口。
一键启动
访问 即可看到页面。
修改启动端口
如果想修改启动端口,可以修改docker-compose.yaml文件中web容器的ports。
默认为8000:8000,比如要修改为8080端口可改为8080:8000。
所需环境:
前端环境
环境变量设置 创建字符集为utf-8编码的数据库。
复制**.env.docker为.env**,并配置数据库、邮箱、管理员等信息。
后端环境
源码部署环境:
前台页面 :
Django管理后台:
其中Savior平台包含两个后台页面。考虑到安全性,目前用户管理、项目管理托管于Django管理后台(主要是这两个模块不会写),其余功能均可通过前台页面实现。
前台页面 :
Django管理后台 :
访问Django管理后台: ,
请完善API用户的Name、Avatar、Autosentmail三个字段,分别控制报告的作者、头像(图片Url)、生成报告后自动发送渗透测试报告到邮箱。
访问Django管理后台:
请通过APIProjects进行添加项目,可根据不通项目选择不通的渗透测试报告模板。
参数说明:Project logo(项目Logo)、Project center(项目名称)、Project description(项目描述)、Project template(渗透测试报告模板,目前标准模板可使用Demo/demo.docx,如需自定义模板,请参考模版自定义部分)
访问 可进入Savior平台,通过个人设置整改设置添加漏洞模板可进行设置漏洞类型、漏洞描述、修复建议从而达到标准化。
目前整理了一些通用的修复建议模板,请参考Demo/常规WEB渗透测试漏洞描述及修复方法.docx。
目前根据我经常使用的渗透测试报告模板生成了一个demo版本(请参考/Demo/demo.docx)。
当然您也可以根据自己的需求进行模板自定义,其中仅需在WORD模板中进行参数替换,目前Savior中具体参数如下:
以下漏洞详情请利用{%tr for vuls in vuls %}{%tr endfor %}进行循环遍历。
如想列出所有漏洞URL,则使用参数{%tr for vuls in vuls %}{{item.vul_url}}{%tr endfor %}
注: Savior平台渗透测试模板遵循Jinja2语法,更多内容请参考
如果我们完善了用户信息、项目管理、整改设置后,就可以通过前端页面进行创建报告,其大概流程如下:首先完善报告的基本信息。
选择漏洞管理的添加漏洞功能。选择漏洞类型后,漏洞名称、漏洞描述、修复建议会根据整改设置进行自动联动,并可根据需求进行自定义修改。
需要注意的是漏洞详情处如果需要插入XSS语句,请进行url编码后进行输入!
注: 未提交前请勿刷新页面,此时漏洞详情保存为前端。提交后会自动生成渗透测试报告并进行下载。
打开报告会提示更新域,更新请选择是,再选择更新整个目录,此问题主要是为了更新目录,不然渗透测试报告中目录无法自动更新。
如果在用户管理打开了Autosentmail功能,渗透测试报告会自动发送至我们邮箱,方便转给甲方爸爸。
访问Savior平台,选择漏洞列表可进行漏洞统计并进行漏洞复测。
其中漏洞包含三个状态(新发现、已修复、未修复)。
通过选择导出数据功能,可将漏洞列表导出为Excle。
用户管理、项目管理迁移至前端
大数据看板
感谢 echo503 提供的项目帮助
感谢 lp0int 提供的项目帮助
项目框架及 Docker 部署参考 Github-Monitor:( )
原文地址:
如何写一份网络渗透测试计划报告?
网络渗透测试计划报告
网络和计算机安全问题已经成为政府、企业必须面对的现实问题。应对安全威胁的途径之一就是采用渗透测试的方法模拟黑客的攻击,找出网络和计算机系统中存在的安全缺陷,有针对性地采取措施,堵住漏洞,固身健体。
渗透测试是一个日渐壮大的行业。本书详细阐述了渗透测试中如何模拟外部攻击者对网络和主机的攻击和渗透,给出了各个步骤。其内容可以划分为两部分:渗透测试的思想、方法、指导原则和具体的渗透测试过程。前一部分重点放在理解渗透测试、评估风险和建立测试计划;后一部分着重介绍具体的操作和工具。除了介绍攻击方法之外,基本上每一章都给出了检测攻击的方法,同时也说明了如何通过加固系统和网络来防止此类攻击。在各章的末尾,都给出了运用本章介绍的工具和方法进行实际操作的示例。本书为读者提供了渗透测试的思想、方法、过程和途径,而不仅仅是工具。
本书既可以作为政府、企业网络安全的参考资料,也可以作为大专院校学生渗透测试方面的教材,适用于招聘渗透测试人员的单位、要应聘渗透测试的人员及保护网络安全、避免恶意攻击的人员。
想问一下大家都是怎么做渗透测试的呢?
这个要根据个人的实际情况来决定的,比如你先要去了解什么是渗透测试:
1、渗透测试属于信息安全行业,准确的说是网络计算机/IT行业
2、现在你知道了它的行业属性,那么你是否具备一些这个行业的知识呢?
3、具备的话学习起来比较简单,直接去学习渗透测试实战就行,不具备接着往下看
4、现在知道它行业属性,你大概就能清楚需要些什么样的基础知识了;下面是我从非计算机网络相关专业的同学想要学习渗透测试必须掌握的知识。
5、前期入门大概需要掌握或者说了解以下知识点:
1)了解基本的网络知识,例如什么是IP地址(63.62.61.123)去掉点是扣扣学习群,IP地址的基本概念、IP段划分、什么是A段、B段、C段等2)广域网、局域网、相关概念和IP地址划分范围。
3)端口的基本概念?端口的分类?
4)域名的基本概念、什么是URL、了解TCP/IP协议、
5)了解开放式通信系统互联参考模型(OSI)
6)了解http(超文本传输协议)协议概念、工作原理
7)了解WEB的静态页面和WEB动态页面,B/S和C/S结构
8)了解常见的服务器、例如、Windows server2003、Linux、UNIX等
9)了解常见的数据库、MySQL、Mssql、、Access、Oracle、db2等
10)了解基本的网络架构、例如:Linux + Apache + MySQL + php
11)了解基本的Html语言,就是打开网页后,在查看源码里面的Html语言
12)了解一种基本的脚本语言、例如PHP或者asp,jsp,cgi等
然后你想学习入门,需要学习以下最基础的知识:
1、开始入门学习路线
1)深入学习一种数据库语言,建议从MySQL数据库或者SQL Server数据库、简单易学且学会了。
其他数据库都差不多会了。
2)开始学习网络安全漏洞知识、SQL注入、XSS跨站脚本漏洞、CSRF、解析漏洞、上传漏洞、命令执行、弱口令、万能密码、文件包含漏洞、本地溢出、远程溢出漏洞等等
)工具使用的学习、御剑、明小子、啊D、穿山甲(Pangolin)、Sqlmap、burpsuite抓包工具等等
2、Google hacker 语法学习
3、漏洞利用学习、SQL注入、XSS、上传、解析漏洞等
4、漏洞挖掘学习
5、想成为大牛的话、以上都是皮毛中的皮毛,但前提是以上的皮毛都是最基础的。
6、Linux系统命令学习、kali Linux 里面的工具学习、Metesploit学习
7、你也可以找一些扣扣群去和大佬交流,比如上面的IP去掉点就是,里面有很多的教程。
8、没事多逛逛安全论坛、看看技术大牛的文章、漏洞分析文章等
一个完整挖洞/src漏洞实战流程【渗透测试】
只要搞渗透,不就会听到很多行业内人前辈一直在重复:“信息搜集” 信息搜集有多重要,你搜集的到的多少资产信息,决定了你后续进行的一系列实战到什么程度!
要说SQL注入的漏洞咋找,逻辑漏洞咋找,支付漏洞咋找,越权漏洞咋找,等等
实这都一个道理,用谷歌语法,找通杀用fofa,这里演示几个类型的漏洞,其它的也是一个道理。
第一个: SQL注入漏洞
AS:首先是SQL注入的,这个漏洞说实话,基本就是谷歌语法找的快,
语法: inurl:asp?id=23公司,这时候你会问:不是inurl:asp?id= 就行了吗,当然!
这可以!如果你想找到一些奇奇怪怪的站可以用这个,比如:
这时候明白接公司的重要性了吧,这里找的是asp的站,为啥找asp的站?
其中一一个最重要的原因就是因为他,好挖!
当然这里只是找了一小部分站点的, 如果突然发现重复了咋办?
这个简单,换个id就行了同学!
inurl:asp?id-34公司,这里的id 值不断的变变变就行了,你们也可以对比一下
这是不是就不一样了,当然如果有兴趣的话,也可以搜搜inurl :php?id=12公司
这也是可以找到很多站的,不过加WAF的几率很大
我找了10个9个都加过,所以说要想上分上的快,asp 的站绝对不能落下!
这里我就不多叙述,因为这站好找,真的特别好找,但是要想能弱密码进去的却很少
直接上镜像站一放inurl:什么牛鬼蛇神都出来了,这后台管理的站可以说是非常多了
当然如果不想找到国外其它奇奇怪怪的站点的话,建议加个关键词公司
可以看到这里一堆后台,当然要渗透这些后台弱密码很少能进去了
你看到我打inur1: 它自动给我补齐关键词了吗,说明这玩意很多人挖
一般搞后台,先信息收集,这个等会说,反正我是没搞到过几个
这种漏洞咋找?商城,积分商城。
试试谷歌语法: info:商城AND积分商城
这不全是商城吗,当然对于一些大厂, 建议不要去搞
因为防护也会比一般的站点比较严格,况且现在做在线网上商城的站点也很少了
其实可以在漏洞挖掘的时候注意一下站点是否有paypal这个功能,有的话,可以搞一搞的,这还是有搞头的
再来就是逻辑漏洞,比如说平行,垂直越权,任意密码重置啊什么的。这类漏洞还是很多的,大家也可以去慢慢测的!
最后一个,通杀的漏洞咋找?
这时候就是要靠我们万能的fofaQ了,首先我们要知道有哪些cms有漏洞
这里大家可以去找网上的漏洞库,里面- -般都会有漏洞合集和这里我稍后会给大家推荐一两个
看到没有,就是这么多cms,杀一个准,上分必备漏洞
不过有些重复提交了,可以给你们看看学员们的战果!
当然,重复了几个,但还是相当不错了。
看完开头,相信你已经知道怎么找漏洞了,那我们就说说漏洞如何挖掘,这里分事件型和通用型漏洞
首先来的,肯定是我们的sq1注入了,首先使用我们的通用语法inurl:asp?id=xx 公司
直接点进去,不要害怕,只要不违法,咱不干坏事就行
看到报错了,说明啥,说明可能存在注入啊朋友,直接and 1=1 |and 1=2插进去
经过一番寻找,我们来到了这个网站:
看到网站直接插单引号,看他报不报错
看到效果十分明显,这种情况直接丢sqlmap9 ,反正我是丢的sqlmap , 大家如果时间充足的话可以上手
下一个站,这个站存在的漏洞是任意密码重置和CSRF漏洞
首先是CSRF漏洞,相信不用我说你们也应该会了,这里就是这点出现漏洞
你们可以自己去测测,这里说我主要说的是任意密码重置漏洞
(这个漏洞现在也已经被修复了)
在这一步的时候, 抓个包
这里再改成自己的邮箱,这样自己的邮箱就能接收到验证链接,直接点击就好
看到这里,支付漏洞 和验证码绕过之类的逻辑漏洞是不是感觉+分的好挖,有没有这种感觉!
这里类型比较多,篇幅太长不好阅读。举例这两种做参考~
三、提交报告
例如baidu.com发现了SQL注入
第一步:“标题”和“厂商信息”和“所属域名”
站长工具icp.chinaz.com/baidu.co...
查询域名备案信息,看到这个公司名了吗
这样写
漏洞类别啥的,如果不是0day的话,像图中一样就行了
所属域名要写该公司的“网站首页”或者“官网”
看到这个了吗
漏洞类型: -般都是Web漏洞,然后漏洞是什么写什么,这里是一个SQL注入。
漏洞等级: SQL注入-般都是高危,但如果厂商比较小的话,会降级,降成中危。
漏洞简述:描述一下SQL注入是什么、 有什么危害之类的。
漏洞url:出现漏洞的URL。
影响参数:哪个参数可以注入就写哪个
漏洞POC请求包: Burp抓个包复制粘贴。
如果你嫌每次打字麻烦,可以新建一个记事本, 把框架写好,提交的时候替换一些内容就可以了。
把标题、漏洞简述、复现步骤、修复方案,把标题、漏洞简述、复现步骤、修复方案,可以省不少时间!
今天的内容虽然偏长,但是都是干货呀!从找漏洞到提交直接一步到位! 安排的明明白白!
注:任何未经授权的渗透都是违法行为,咱们挖SRC,担心会违法,记住一点, 点到为止,不要动里面的数据,发现漏洞之后,尽快提交漏洞,联系厂商进行修复。
什么是渗透检测
渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
我们认为渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。
作为网络安全防范的一种新技术,对于网络安全组织具有实际应用价值。但要找到一家合适的公司实施渗透测试并不容易。
如何写好一份渗透测试报告
当你连续奋战了好几天,终于合上了笔记本,想要出去透透风时,一个熟悉的问句传来:“你好,请问什么时候可以交付报告?”
有成千上万的书籍讲解什么是信息安全,什么是渗透测试,也有数不清的培训课程视频。但是,我敢打赌,在这些材料中,只有不到10%是在讲写报告的事情。在一个完整的渗透测试过程中,有将近一半的时间都用在了编写报告上,这听起来很让人吃惊,但是也并不奇怪。
教会某人写报告不像教会某人制作一个完美的缓冲区溢出那么有意思,大部分的渗透测试人员情愿复习19次TCP数据包结构的工作原理,也不愿意写一份报告。
不管我们的渗透测试水平多么高,想要把一个很深的技术点解释的很通俗易懂,即使是完全不懂安全的人也可以理解,这是一件异常艰难的挑战。不但得学会简单明了的解释渗透测试的结果,还得控制好时间。这样做的好处很多,关系到客户会不会不断的采购你的服务。有一次,我开车到350英里以外的一家客户那里做售前,当面重新解释了渗透测试报告的本内容;如果能把测试报告写的简单明了,我就不用跑这么一趟,相当于节省了一整天的时间和一整箱汽油。
举个例子:
一个模糊不清的解释:“SSH版本应该被禁用,因为它含有高危漏洞,可能允许攻击者在网络上拦截和解密通信,虽然攻击者控制网络的风险很低,这减少了严重性。”
清楚的解释:“建议在这些设备上禁用SSH,如果不这样做,就有可能允许攻击者在当地网络解密和拦截通讯。”
为什么渗透测试报告如此重要?
请谨记:渗透测试是一个科学的过程,像所有科学流程一样,应该是独立可重复的。当客户不满意测试结果时,他有权要求另外一名测试人员进行复现。如果第一个测试人员没有在报告中详细说明是如何得出结论的话,第二个测试人员将会不知从何入手,得出的结论也极有可能不一样。更糟糕的是,可能会有潜在漏洞暴露于外部没有被发现。
举个例子:
模糊不清的描述:“我使用端口扫描器检测到了一个开放的TCP端口。“
清晰明了的描述:“我使用Nmap 5.50,对一段端口进行SYN扫描,发现了一个开放的TCP端口。
命令是:nmap –sS –p 7000-8000“
报告是实实在在的测试过程的输出,且是真实测试结果的证据。对客户高层管理人员(批准用于测试的资金的人)可能对报告的内容没有什么兴趣,但这份报告是他们唯一一份证明测试费用的证据。渗透测试不像其他类型的合同项目。合同结束了,没有搭建新的系统,也没有往应用程序添加新的代码。没有报告,很难向别人解释他们刚买的什么东西。
报告给谁看?
至少有三种类型的人会阅读你的报告:高级管理人员,IT管理和IT技术人员。
高级管理人员根本不关心,或者压根不明白它的意思,如果支付服务器使用SSL v2加密连接。他们想知道的答案是“我们现在到底安不安全?”
IT管理对该组织的整体安全性感兴趣,同时也希望确保其特定的部门在测试过程中都没有发现任何重大问题。我记得给三个IT经理一份特别详细的报告。阅读这份报告后有两个人脸色变得苍白,而第三个人笑着说“太好了,没有数据库的安全问题”。
IT人员是负责修复测试过程中发现的问题的人。他们想知道三件事:受影响系统的名称,该漏洞的严重程度以及如何解决它。他们也希望这些信息以一种清晰而且有组织的方式呈现给他们。最好的方法是将这些信息以资产和严重程度来进行划分。例如“服务器A”存在“漏洞X,Y和Z,漏洞Y是最关键的。这样IT人员就可以快速的找到问题的关键,及时修复。
当然,你可以问你的客户是否愿意对漏洞分组。毕竟测试是为了他们的利益,他们是付钱的人!一些客户喜欢有个详细说明每个漏洞的页面,并表明受漏洞影响的资产有哪些。
虽然我已经提到了渗透测试报告三种最常见的读者,但这并不是一个详尽的清单。一旦报告交付给客户,取决于他们用它干什么。它可能最终被提交给审计人员作为审计的证据。它可以通过销售团队呈现给潜在客户。“任何人都可以说自己的产品是安全的,但他们可以证明这一点?我们可以看看这里的渗透测试报告。“
报告甚至可能最终共享给整个组织。这听起来很疯狂,但它确实发生过。我执行一次社会工程学测试,其结果低于客户的期望。被触怒的CEO将报告传递给整个组织,作为提高防范社会工程攻击意识的一种方式。更有趣的是,几周后当我访问同一个公司做一些安全意识的培训。我在自我介绍时说,我就是之前那个负责社工测试的人。愤怒的目光,嘲讽的语气,埋怨我给他们所有人带来多少麻烦。我的内心毫无波动,答道:“把密码给我总比给真正的黑客好。”
报告应该包含什么?
有时候你会很幸运的看到,客户在项目计划之初就表明他们想要的报告内容。甚至有一些更为细小的要求,比如,字体大小和线间距等。但是这只是少数,大部分客户还是不知道最终要什么结果,所以下面给出一般报告的撰写程序。
封面
封面是报告的第一面窗户,封面页上包含的细节可以不那么明显。但是测试公司的名称、标志以及客户的名称应该突出显示。诸如“内部网络扫描”或“DMZ测试”测试标题也应该在那里,对于相同的客户执行多个测试时,可以避免混淆。测试时间也要写上,随着时间的推移,用户可以清楚的得知他们的安全状况是否得到了改善。另外该封面还应包含文档的密级,并与客户商定如何保密好这份商业上的敏感文件。
内容提要
我见过一些简直像短篇小说一样的内容提要,其实这部分一般要限制在一页纸以内。不要提及任何特定的工具、技术,因为客户根本不在乎,他们只需要知道的是你做了什么,发现了什么,接下来要发生什么,为什么,执行摘要的最后一行应该是一个结论,即明确指出是该系统是安全还是不安全。
举个例子:
一个糟糕的总结:“总之,我们发现一些地方的安全策略运作良好,但有些地方并未遵从。这导致了一定风险,但并不是致命风险。”
一个优秀的总结:“总之,我们发现了某些地方没有遵守安全策略,这给组织带来了一个风险,因此我们必须声明该系统是不安全的。”
漏洞总结
将漏洞列表放在一个页面上,这样,IT经理便可以一目了然的知道接下来要做什么。具体怎样表现出来,形式多样,你可以使用花哨的图形(像表格或图表),只要清晰明了就行。漏洞可以按类别(例如软件问题,网络设备配置,密码策略)进行分组,严重程度或CVSS评分——方法很多,只要工作做得好,很容易理解。
测试团队的详细信息
记录测试过程中所涉及的每一个测试人员的名字,这是一个基本的礼节问题,让客户知道是谁在测试他们的网络,并提供联系方式,以便后续报告中问题讨论。一些客户和测试公司也喜欢依据测试的内容向不同的测试小组分配任务。多一双眼睛,可以从不同的角度查看系统的问题。
工具列表
包括版本和功能的简要描述。这点会涉及到可重复性。如果有人要准确复现您的测试,他们需要确切地知道您使用的工具。
工作范围
事先已经同意,转载作为参考是有用的。
报告主体
这部分才是报告的精华,报告的正文应包括所有检测到的漏洞细节,如何发现漏洞,如何利用漏洞,以及漏洞利用的可能性。无论你做的是什么,都要保证给出一个清晰的解释。我看过无数份报告,都是简单的复制粘贴漏洞扫描的结果,这是不对的。另外报告中还应包括切实贴合的修复建议。
最终交付
在任何情况下任何一份报告应该加密传输。这虽然是常识,但往往大家就会摔倒在最后的这环上。
0条大神的评论