2022 OSCP Exam Review
上周五我参加了OSCP(Offensive Security Certified Professional,进攻性安全认证专家)考试,并于周六提交了考试报告,就在周日晚上大概十二点,我收到了来自offsec的邮件,通知我已经通过了认证。
我最终解决了AD的三台机器+两台独立机器的完全控制权限+另一台机器的初始shell。另外我还做完了课本习题和lab里的超过10台机器的报告,如果所有报告都没有被扣分的话,我最后的成绩应该是90+10分。
我大概花了一年多的时间去准备这个考试,期间有过很多困惑,踩过许多坑,我在学习的过程当中受到过很多人的启发,因此现在我也想写一篇学习回顾,以(希望能够)帮助那些当初和我一样不知道如何入门的学员,如果你是渗透测试的大佬,那么这篇东西只是浪费你的时间,因为它真的很基础。
我本职工作是一个程序员,此前没有任何渗透测试经历,当时的我知道nmap是扫描器,kali是专门做渗透测试的,但没怎么用过,说是零基础也不为过。因为出于兴趣我想系统学习渗透测试,就在一年多以前我知道了OSCP这个认证,那时候我想以考促学,并且OSCP学费还挺贵的,我觉得这样或许能push自己一把。我没有一开始就报名,我记得当时我注册了offsec的账号,为了了解购买流程我还下了一个订单,但是没有付款。然后过了没多久,新加坡的David就打了一个越洋电话给我,问我是不是有兴趣学习,还说可以给我申请一个很优惠的折扣。我说我对于这个东西完全是零基础,我可能现在还不合适去报名。然后David说没关系,还建议我先到HTB打打靶机学习。应该说这还是挺良心的,不会让一个0基础的人盲目去报名。事实证明,延迟报名的决定非常正确,如果你像我当初一样对渗透是零基础,那建议还是补一下基础知识,我后面会分享到我当初遇到的那些我感觉很好的课程和平台。
众所周知,OSCP在2022年1月初启用了新版本的考试结构。
旧版本的考试结构:
1台简单机器 10分
2台中等机器 20分x2
2台困难机器 25分x2,其中一台为bof题,必出,圈内评价是送分题。
总分达到70分通过考试,完成所有课后练习+10台lab报告可以另外+5分
新版本的考试结构:
AD包含3台机器,总共40分,只有攻入DC才有分,没有过程分,也就是要么40分全拿,要么0分。
3台独立机器,每台20分,bof题不是必出,而且需要提权。
完成所有课后练习+10台lab报告(包含4台域机器)可以另外+10分
总分也是达到70分通过考试。
应该说新版本考试结构难度增加了不少。
我在考试之前在各个平台打了一些靶机,我后来统计了一下:
TryHackMe:53
OSCP LAB:75
HTB:60
PG:40
vulnhub:11
我认为TryHackMe是很好的专题学习平台,以及是很好的基础学习平台,但是我不推荐打太多里面的靶机,因为他们多数都是CTF形式,与OSCP相去甚远。从技术的角度,一个零基础学员从任何方向出发当然都是进步,但是从考试的角度,我们还是要有的放矢,毕竟时间也是资源。
我完成了TryHackMe里的 Complete Beginner , Offensive Pentesting , CompTIA Pentest+ 三个路径,这三个路径的学习让我对渗透测试有了一个初步的了解。我非常建议初学者跟着这些路径学习。而且TryHackMe非常良心,他的很多房间都是免费的,就算续费每个月也只是需要10美元。这个花费对于你将可以学到的知识来说简直是不值一提。
后面TryHackMe又出了好几个学习路径,我现在还没有去做,在这里不评价,我想我后面有时间会去做一下。
我在今年三月份报的名,报的是两个月的课程。需要注意的是,今年4月以后OSCP只有三个月的课程了,价格是1499美元。
我在第一个月完成了课本上的所有习题以及打了40台靶机,在第二个月我完成了剩下的35台靶机。这两个月可以说是我目前人生最累的两个月,几乎每天下班以后我都要肝到晚上一两点,第二天还要上班。这期间有痛苦,有绝望,有焦虑同时也是收获满满。OSCP之旅绝对是一个折磨之旅,我看到有朋友的评论是"比高考还累"。
OSCP Lab是一个多级的网络,它外网有40台左右的机器,但是我觉得它最有意思的是内网,有些内网你还需要转发多次才能访问。这样的靶机环境一般在其他平台很少遇到,因此会是一个很不错的学习体验。我看到有些早期的学员说内网很卡,我这边觉得还好,可能是offsec后来升级了OSCP LAB的网络。但是我自己为备考也拉了一条300M的网线,以及买了一个美国节点的vps,整个OSCP Lab的旅程中我觉得网络非常舒服。
这里有一个小技巧,我不知道这算不算offsec的一个bug,OSCP Lab其实是有多个节点的,而且同样的vpn可以登录不同的节点,我一般扫描探测和爆破的时候用的是美国的vps(跟lab的延时大概是10ms以内),其他手动的枚举或者拿shell时用的是本地kali机。需要注意,因为lab各个节点是独立的,在美国vps触发的rev shell,在本地kali是接收不到的。但是vps可以省去你很多探测和爆破的时间。
鉴于OSCP现在只有3个月lab time的选择,这是绝对够时间打完OSCP所有lab的。关于什么时候应该去论坛看hint,我的理解是,当你觉得你已经穷尽了你目前所知道的所有方法和技巧还是没有进度,那就去看。我认为不必去忌讳看hint这个东西,你就是来学习的,不懂很正常,基本上你不可能去hack一个你完全不懂的东西。相反的,如果你都觉得OSCP Lab对你一点难度都没有,那么OSCP只是浪费你的时间,你应该去挑战更难的东西。
我强烈推荐这个HTB的OSCP vm like list,同时这也是很多OSCP前辈的一致推荐。如果你备考的时间有限,我建议你就好好打一下这个list里面的机器。
这个是offsec的亲儿子,也有很多前辈推荐里面的机器作为OSCP的练习,考试里单机的难度大概相当于里面的中等难度机器。
vulnhub好像是被offsec收购了,好多机器都在PG里。我打的不多,感觉有些还是偏向CTF。。
我听说有人打了30多台就通过了OSCP考试,有的大佬打了400多台。。。我的理解是,越多越好,你在练习中踩的坑越多,在考试的时候才会越游刃有余,Practice make prefect。
官方有一个靶机数量与通过率的表格,打过的靶机数量和通过率是正相关的,这也符合人的直觉。
对比各个平台靶机的难度,我主观上的感觉是:HTB PG OSCP Lab
我觉得备考打这三个lab就够了
如果你实在备考时间有限,那推荐上面的1和3。
OSCP的教材和视频都是全英文的,你在备考中看到的所有文章,资料等等99%都会是英文,所以英文是逃不掉的。
我自己也是英语渣,但是好在计算机类的英语词汇固定,语法结构也简单,看多几次也就知道了,实在不懂还可以在线翻译嘛,所以在英语上不必有太大的压力。如果你实在很想学习,你总是会想得到办法的。
从你决定要开始OSCP之旅,无论以前你有没有记录笔记的习惯,从现在都要开始记录。开一个博客,或者自己记录一份文档。
记录一切你遇到的东西,命令,技巧,原理,靶机wp。记完以后尝试去整理他们,反复阅读,这也是一个学习的过程,而且很重要。
这一年来我大概记了十几万字的笔记和wp,我习惯用markdown格式记录,这样我可以用sublime快速查找我想知道的一切记录过的东西。
我预定的是周五早上9点钟的考试,前一天晚上我还吃了安眠药睡觉,因为我习惯性焦虑,容易考试前失眠。好在那天我睡的还挺好。
我为考试准备了咖啡,巧克力,红牛,面包和一些饺子,整个考试期间我喝了三杯美式咖啡和一瓶红牛,这的确让我考试的时候异常亢奋,但是第二天我非常痛苦,完全没办法睡觉。
我用了6个小时完成了AD部分的内容,之后3个小时,我拿到了一台主机的完全控制权限。然后我又花了几个小时,拿到了一台单机的foothold,但是后面提权的部分,我在这台机器卡了很久,一直到凌晨一点,我跟监考人员说我太累了需要休息一下。然后我睡了大概一个多小时(其实也没睡着,因为我喝太多咖啡了),在凌晨两点我醒来,我决定先放一下那台机器的提权,再看看另外一台单机,从凌晨2点一直到早上6点,我完全卡死在这台机器的foothold里,然后我跟监考人员说我要休息一下,之后我躺在床上突然想到了一个点,于是马上起来验证,结果成功进入这台机器,此时距离考试结束还有两个多小时,我发现我唯一那次msf的机会还没用,于是我决定上msf,用了10分钟拿到了这台机器的system权限。我用剩下的时间补充了一些截图,然后结束了这个23小时45分钟的考试。
我在OSCP之前学习过CRTP的课程,老实说OSCP的AD部分的内容,无论广度和深度完全都比不上CRTP。但是我在这里不是说你在考OSCP之前要去考个CRTP,完全没有必要,而且我也没有过CRTP考试。。(T_T)。OSCP考试里ad方面的知识全都在教程里,没有任何超纲的东西。但是考试时ad部分难的可能是ad之外的东西。。。
关于考试,我的建议是每隔一两个小时,要起来喝水,走动一下,或者躺一下。就我做程序员的经验,我职业生涯中遇到的所有技术上能说的是难题的东西,要么是我躺在床上想到解决方法,要么是我走在路上想到的解决方法,但是绝对不会是坐在电脑前想到的。一旦卡住了就起来走走,放轻松。OSCP考试除了考验技术以外,我觉得很大一部分也是考验一个人的心理承受能力。因为这种24小时的考试真的是太变态了,如果心态崩了那本来很容易的东西可能会被你miss掉。
第二天我陆陆续续花了一天时间写完了报告,多数都是先写中文,然后放到deepl上去翻译的,我没有任何渗透测试工作经历,因此我不太知道一个合格的渗透测试报告应该是怎么样的,好在官方有个报告模板,我就按照那个模板来写。一直忙到当天晚上差不多12点,我提交了我的考试报告和练习报告。
以下是我备考过程当中遇到的一些我觉得很好的资源:
hacktricks :黑客圣经,你在备考中每天都应该会去翻阅它。
PayloadsAllTheThings :各种cheetsheet,和hacktricks有重合的地方,但是更侧重各种命令的记录,我弄rev shell的时候经常翻阅。
gtfobins :linux提权宝典。
bufferoverflowprep :最好的Buffer Overflow练习,专门为OSCP准备。
linux提权房间1 :tryhackme上的一个提权房间
linux提权房间2 :另外一个linux的提权房间,专门为OSCP制作,在 udemy 上有对应的视频课程。
windows提权房间 :上面提权系列的windows姐妹版,也是专门为OSCP制作,在 udemy 上有对应的视频课程。
what-to-do-with-new-oscp :老外整理的关于OSCP里AD部分的学习资源集锦。
hackingarticles :三哥整理的一个博客,有很多很好的思路和方法的介绍。
0xdf :0xdf的博客,HTB官方打lab人员,能学到很多技巧。
IppSec :IppSec的youtube频道,也是HTB官方的,同样的也可以学习到很多技巧。
我觉得一旦你觉得要准备OSCP的时候,一定要好好跟家里人/女朋友/老婆沟通,跟他们解释为什么你需要那么多时间自己一个人在电脑前鼓捣。我觉得整个备考期间我牺牲了好多跟女友和家里人相处的时间,每每回想总是心中有愧,我要感谢我的女友小头,她一直很理解和支持我去做这一切,接下来我想花多点时间陪伴身边的人。
公司分析报告
导语:分析报告是一种比较常用的文体。有市场分析报告、行业分析报告、经济形势分析报告、社会问题分析报告等等。
【篇一:分析报告模板】
前言
原理与思路:
市场研究与市场推广是市场营销的两个步骤,二者相互关联,不可或缺。前者通过详尽的市场调查,采集相关市场数据,并运用科学的方法加以分析,从而准确把握宏观市场及区域市场的供需状况,深入了解国家政治经济政策对房地产市场的影响,科学的预测市场走向、竞争对手及竞争形式,最终确定准确合理的市场定位;而后者则根据前者的研究成果——市场定位——解决市场推广中的具体措施,如价格策略,销售策略,广告宣传策略,促销手段的组合策略等。
简言之,前者是基础,后者为前者逻辑结论。
体系与方法:
市场调研报告将从宏观和微观两个层面展开,宏观方面包括:宏观经济形势,产业政策向导,房地产项目开发、销售情况,产品自身与市场营销的所处阶段与具体特征;微观方面包括:项目所在区域的自然、经济及人文状况,区域市场的供应及需求分析。
第一部分宏观区域分析
一、区域社会经济发展状况
1、区域概况(网上资料或统计局)
(1)地理位置(位置、所辖区域、面积、市区面积)
(2)城市性质及地位(城市的历史、文化、所占的重要地位)
(3)城市规模(城市用地规模、人口规模)
(4)城市总体布局(城市格局、所含区、规划方向、突出特色)
2、区域经济发展概况(数据来源统计局)
二、区位分析
1、项目区域位置与自然概况
(1)项目所在区域概况(项目所在区域是大区域的什么地带、占有什么地位、起到什么作用)附:项目地块位置图
(2)区域位置(项目具体位置、占地及位置优势)
(3)区域景观条件(项目所在区域景观)
2、项目与城市主要商业区及就业区的联系分析
(1)项目所在区域的交通情况(项目周边的快速路、主干路、次干路、支路;项目周边的公交线路;项目到达市中心的乘车路线及时间)
(2)主要商业区、就业区的分布及与项目的关系
A、CBD(中央商务区)(所处位置与项目距离、时间)
B、CRD(中心商业区)(所处位置与项目距离、时间)
C、CID(科技商务中心区)(所处位置与项目距离、时间)
D、分析项目与上述区域的关系
3、城市规划对项目开发的影响
(1)区域整体规划概况
(2)项目周围规划概况
(3)规划对项目的影响
三、区域分析结论
1、经济发展、人均收入及支出消费
2、项目的区位优劣势
3、项目的交通优劣势
4、大规划与项目周边的`小规划对项目的影响分析
第二部分区域房地产的市场分析
一、区域住宅(商业)市场的发展状况
1、区域住宅(商业)市场的发展回顾及概况
(1)起步兴起期(时间、首批代表作、产品特征)
(2)平稳发展期(时间、代表作、产品特征、需求状况)
(3)整合提升期(时间、代表大盘、产品及战略理念、需求状况)
2、近年来区域住宅(商业)市场供求分析
(1)市场供应方面(近几年来的施工面积及增长)(数据来源:房地产开发办)
(2)市场需求方面(近几年来的销售面积及增长,销售总额)(数据来源:房地产开发办)
(3)价格变化(各类房产项目的价格及涨幅:经济适用房、多层住宅、高层住宅、别墅、高档公寓、写字楼、商业用房)(数据来源:统计局)
3、区域住宅(商业)市场的发展特点
(1)政府对市场的管理调控力强(相关房地产政策及区域房产政策的出台及作用)
(2)市场体系逐步完善(主要包括出现多层次的供应房及二手房的发展)
(3)市场热点向规模化的转移(大盘的出现、配套的完善,社区的规划及设计)
(4)房地产企业的汰弱留强进程加快(外地开发商的进入和现有开发商的状况及分析)
(5)其他
4、区域住宅(商业)市场格局(根据市场状况将城市划分为几个区域版快,再根据版快进行分析)
例:东部版快(发展背景:区域状况、交通、配套、规划;楼盘特点:该板块内的楼盘共性;销售情况:价格、交房、档次、销售率)
二、项目所在区域的房地产特性
前面板块分析中应涉及到该部分内容,再将该区域目前销售的具体代表项目进行分析,为本项目提供依据。
1、项目所在区域住宅(商业)项目概况
第三部分项目条件分析
一、项目地块自身条件分析
1、地理位置(现场)
2、地质状况(发展商提供勘察报告、风水情况)
3、土地面积及其东线图(发展商提供)
4、七通一平现状(现场、与发展商交流)
二、项目周边环境分析
1、地块各方面的环境(建筑物、污染状况、近景、远景及视野遮盖情况)
2、地块适当半径内历史人文景观列示(标明距离项目地块车距)
3、项目用地居住情况:周边小区居住情况
4、项目周边居民状况
5、项目外围情况
三、地块交通状况
1、周达市政路网纵横图
2、周边公交系统起始状况、频次及远景规划
3、直入地块的道路交通状况
四、项目附近公建配套设施分析
1、购物中心(商场、超市、菜市场)
2、文化教育(幼托、小学、中学、大学图书馆及质量)
3、医疗(各级医院、药店及质量)
4、金融(各种银行)
5、邮政局、所
6、娱乐餐饮(体育健身、歌舞餐饮)
五、周边已成社区状况
1、附近小区列图
2、各楼盘及小区的居民阶层
3、小区规划、价格等
六、项目条件分析结论
第四部分市场研究结论
一、从区域市场的发展来看
1、房地产的发展趋势
2、供需关系
3、区域开发实力
4、市场产品主要竞争点及产品趋势
二、从项目所在区域的市场分析来看
1、从项目开发的规模来看
2、区域项目类型、主力户型
3、从项目所在区域的销售情况来看:期房销售率、现房销售率、售价
4、从客户情况来看,主要客户群体
5、从项目的营销推广来看,综合评估
三、从对区域市场的调查分析来看
1、选择在本区域购房的客户,其年龄、文化程度、家庭结构、家庭收入、区域、从业
2、潜在客户对区域房价的接受能力
3、从潜在客户对户型面积的选择上看
【篇二:财务分析报告模板】
一、基本情况
1、历史沿革。公司实收资本为万元,其中:万元,占93、43%;万元,占5、75%;万元,占0、82%。
2、经营范围及主营业务情况我公司主要承担等业务。上半年产品产量:
3、公司的组织结构(1)、公司本部的组织架构根据企业实际,公司按照精简、高效,保证信息畅通、传递及时,减少管理环节和管理层次,降低管理成本的原则,现企业机构设置组织结构如下图:
4、财务部职能及各岗位职责
(1)、财务部职能(略)
(2)、财务部的人员及分工情况财务部共有X人,副总兼财务部部长X人、财务处处长X人、财务处副处长X人、成本价格处副处长X人、会计员X人。
(3)、财务部各岗位职责(略)
二、主要会计政策、税收政策
1、主要会计政策公司执行《企业会计准则》《企业会计制度》及其补充规定,会计年度1月1日—12月31日,记账本位币为人民币,采用权责发生制原则核算本公司业务。坏账准备按应收账款期末余额的0、5%计提;存货按永续盘存制;长期投资按权益法核算;固定资产折旧按平均年限法计提;借款费用按权责发生制确认;收入费用按权责发生制确认;成本结转采用先进先出法。
2、主要税收政策
(1)、主要税种、税率主要税种、税率:增值税17%、企业所得税33%、房产税1、2%、土地使用税X元/每平方米、城建税按应交增值税的X%。
(2)、享受的税收优惠政策车桥技改项目固定资产投资购买国产设备抵免企业所得税。
三、财务管理制度与内部控制制度
(一)财务管理制度(略)
(二)内部控制制度
1、内部会计控制规范——货币资金
2、内部会计控制规范——采购与付款
3、物资管理制度
4、产成品管理制度
5、关于加强财务成本管理的若干规定
四、资产负债表分析
1、资产项目分析
(1)、银行存款”分析银行存款期末XX7万元,其中保证金X万元,基本账户开户行:;账号:
(2)、“应收账款”分析应收账款余额:年初X万元,期末X万元,余额构成:一年以下X万元、一年以上两年以下X万元、两年以上三年以下X万元、三年以上X万元。预计回收额X万元。
(3)、“其他应收款”分析其他应收款余额:年初X万元,期末X万元。余额构成:一年以下X万元、一年以上两年以下X万元、三年以上X万元。预计回收额X万元。
(4)、“预付账款”(无)
(5)、“存货”分析期末构成:原材料X万元、低值易耗品X万元、在制品X万元、库存商品X万元,年初构成:原材料万元、低值易耗品X万元、在制品X万元、库存商品X万元。原材料增加X万元,低值易耗品减少X万元,在制品增加X万元,库存商品减少X万元。
(6)、“长期债权投资”(无)
(7)、“长期股权投资”分析对XXXX有限公司投资,账面余额X万元。
【篇三:测试分析报告模板】
1)引言
1、1编写目的
说明这份测试分析报告的具体编写目的,指出预期的阅读范围。
1、2背景
说明:
a。被测试软件系统的名称;
b。该软件的任务提出者、开发者、用户及安装此软件的计算中心,指出测试环境与实际运行环境之间可能存在的差异以及这些差异对测试结果的影响。
1、3定义
列出本文件中用到的专问术语的定义和外文首字母组词的原词组。
1、4参考资料
列出要用到的参考资料,如:
a、本项目的经核准的计划任务书或合同、上级机关的批文;
b、属于本项目的其他已发表的文件;
c、本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2)测试概要
用表格的形式列出每一项测试的标识符及其测试内容,并指明实际进行的测试工作内容与测试计划中预先设计的内容之间的差别,说明作出这种改变的原因。
3)测试结果及发现
3、1测试1(标识符)
把本项测试中实际得到的动态输出(包括内部生成数据输出)结果同对于动态输出的要求进行比较,陈述其中的各项发现。
3、2测试2(标识符)
用类似本报告L。3、1条的方式给出第2项及其后各项测试内容的测试结果和发现。
4)对软件功能的结论
4、1功能1(标识符)
4、1、1能力
简述该项功能,说明为满足此项功能而设计的软件能力以及经过一项或多项测试已证实的能力。
4、1、2限制
说明测试数据值的范围(包括动态数据和静态数据),列出就这项功能而言,测试期间在该软件中查出的缺陷、局限性。
4、2功能2(标识符)
用类似本报告4、l的方式给出第2项及其后各项功能的测试结论。
5)分析摘要
5、1能力
陈述经测试证实了的本软件的能力。如果所进行的测试是为了验证一项或几项特定性能要求的实现,应提供这方面的测试结果与要求之间的比较,并确定测试环境与实际运行环境之间可能存在的差异对能力的测试所带来的影响。
5、2缺陷和限制
陈述经测试证实的软件缺陷和限制,说明每项缺陷和限制对软件性能的影响,并说明全部测得的性能缺陷的累积影响和总影响。
5、3建议
对每项缺陷提出改进建议,如:
a。各项修改可采用的修改方法;
b。各项修改的紧迫程度;
c。各项修改预计的工作量;
d。各项修改的负责人。
5、4评价
说明该项软件的开发是否已达到预定目标,能否交付使用。
6)测试资源消耗
总结测试工作的资源消耗数据,如工作人员的水平级别数量、机时消耗等
一个完整的渗透测试流程,分为那几块,每一块有哪些内容
包含以下几个流程:
信息收集
第一步做的就是信息收集,根据网站URL可以查出一系列关于该网站的信息。通过URL我们可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等等一些列的信息。
漏洞探测
当我们收集到了足够多的信息之后,我们就要开始对网站进行漏洞探测了。探测网站是否存在一些常见的Web漏洞,比如:SQL注入 。
漏洞利用
探测到了该网站存在漏洞之后,就要对该漏洞进行利用了。不同的漏洞有不同的利用工具,很多时候,通过一个漏洞我们很难拿到网站的webshell,我们往往需要结合几个漏洞来拿webshell。
内网渗透
当我们能跟内网主机进行通信后,我们就要开始进行内网渗透了。可以先使用nmap对内网主机进行扫描,探测在线的主机,并且探测其使用的操作系统、开放的端口等信息。
内网中也有可能存在供内网使用的内网服务器,可以进一步渗透拿下其权限。
痕迹清除
达到了目的之后,有时候只是为了黑入网站挂黑页,炫耀一下;或者在网站留下一个后门,作为肉鸡,没事的时候上去溜达溜达;亦或者挂入挖矿木马。
撰写渗透测试保告
在完成了渗透测试之后,就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击。
渗透测试报告自动生成工具
公众号:白帽子左一
领取配套练手靶场、安全全套课程及工具...
在安服仔的日子里,发现其他人输出的渗透测试报告结果不规范,主要在报告质量、内容、字体、及修复方案中存在诸多问题,而且 大部分安服仔需要对每次的项目结果进行统计整理,方便后续跟踪复测。
因此研发了 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:( )
原文地址:
怎样写完整的软件测试报告?
摘要
测试报告是把测试的过程和结果写成文档,并对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。本文提供测试报告模板以及如何编写的实例指南。
关键字
测试报告 缺陷
正文
测试报告是测试阶段最后的文档产出物,优秀的测试经理应该具备良好的文档编写能力,一份详细的测试报告包含足够的信息,包括产品质量和测试过程的评价,测试报告基于测试中的数据采集以及对最终的测试结果分析。
下面以通用的测试报告模板为例,详细展开对测试报告编写的具体描述。
PARTⅠ 首页
0.1页面内容:
密级
通常,测试报告供内部测试完毕后使用,因此密级为中,如果可供用户和更多的人阅读,密级为低,高密级的测试报告适合内部研发项目以及涉及保密行业和技术版权的项目。
XXXX项目/系统测试报告
报告编号
可供索引的内部编号或者用户要求分布提交时的序列号
部门经理 ______项目经理______
开发经理______测试经理______
XXX公司 XXXX单位 (此处包含用户单位以及研发此系统的公司)
XXXX年XX月XX日
0.2格式要求:
标题一般采用大体字(如一号),加粗,宋体,居中排列
副标题采用大体小一号字(如二号)加粗,宋体,居中排列
其他采用四号字,宋体,居中排列
0.3版本控制:
版本 作者 时间 变更摘要
新建/变更/审核
PARTⅡ 引言部分
1.1编写目的
本测试报告的具体编写目的,指出预期的读者范围。
实例:本测试报告为XXX项目的测试报告,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求(或达到XXX功能目标)。预期参考人员包括用户、测试人员、、开发人员、项目管理者、其他质量管理人员和需要阅读本报告的高层经理。
提示:通常,用户对测试结论部分感兴趣,开发人员希望从缺陷结果以及分析得到产品开发质量的信息,项目管理者对测试执行中成本、资源和时间予与重视,而高层经理希望能够阅读到简单的图表并且能够与其他项目进行同向比较。此部分可以具体描述为什么类型的人可参考本报告XXX页XXX章节,你的报告读者越多,你的工作越容易被人重视,前提是必须让阅读者感到你的报告是有价值而且值得浪费一点时间去关注的。
1.2项目背景
对项目目标和目的进行简要说明。必要时包括简史,这部分不需要脑力劳动,直接从需求或者招标文件中拷贝即可。
1.3系统简介
如果设计说明书有此部分,照抄。注意必要的框架图和网络拓扑图能吸引眼球。
1.4术语和缩写词
列出设计本系统/项目的专用术语和缩写语约定。对于技术相关的名词和与多义词一定要注明清楚,以便阅读时不会产生歧义。
1.5参考资料
1.需求、设计、测试用例、手册以及其他项目文档都是范围内可参考的东东。
2.测试使用的国家标准、行业指标、公司规范和质量手册等等
PARTⅢ 测试概要
测试的概要介绍,包括测试的一些声明、测试范围、测试目的等等,主要是测试情况简介。(其他测试经理和质量人员关注部分)
2.1测试用例设计
简要介绍测试用例的设计方法。例如:等价类划分、边界值、因果图,以及用这类方法(3-4句)。
提示:如果能够具体对设计进行说明,在其他开发人员、测试经理阅读的时候就容易对你的用例设计有个整体的概念,顺便说一句,在这里写上一些非常规的设计方法也是有利的,至少在没有看到测试结论之前就可以了解到测试经理的设计技术,重点测试部分一定要保证有两种以上不同的用例设计方法。
2.2测试环境与配置
简要介绍测试环境及其配置。
提示:清单如下,如果系统/项目比较大,则用表格方式列出
数据库服务器配置
CPU:
内存:
硬盘:可用空间大小
操作系统:
应用软件:
机器网络名:
局域网地址:
应用服务器配置
…….
客户端配置
…….
对于网络设备和要求也可以使用相应的表格,对于三层架构的,可以根据网络拓扑图列出相关配置。
2.3测试方法(和工具)
简要介绍测试中采用的方法(和工具)。
提示:主要是黑盒测试,测试方法可以写上测试的重点和采用的测试模式,这样可以一目了然的知道是否遗漏了重要的测试点和关键块。工具为可选项,当使用到测试工具和相关工具时,要说明。注意要注明是自产还是厂商,版本号多少,在测试报告发布后要避免大多工具的版权问题。
如何写好一份渗透测试报告
当你连续奋战了好几天,终于合上了笔记本,想要出去透透风时,一个熟悉的问句传来:“你好,请问什么时候可以交付报告?”
有成千上万的书籍讲解什么是信息安全,什么是渗透测试,也有数不清的培训课程视频。但是,我敢打赌,在这些材料中,只有不到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条大神的评论