渗透测试
网络渗透测试和安全测试都是测试工程师的必备技能之一,对公司各系统进行加固,公司网站、业务系统进行安全评估和测试,查看网站或APP软件是否存在安全漏洞等活动都需要用到渗透测试环节。今天跟小编一起学习渗透测试吧!
渗透测试是通过模拟恶意黑客的攻击方法,也是在授权情况下对目标系统进行安全性测试和评估的过程。它的重点是测试和过程,并不是不计后果的攻击或测试防御,它是一套科学流程并不局限于某一工具或技巧的运用。
渗透测试流程
01前期交互
渗透测试团队与客户组织进行前期的交互讨论,其中最重要就是确定渗透测试的范围、目标、限制条件以及服务合同细节。定义范围是渗透测试中最重要的组成部分之一,其中问卷调查是一种较好的形式,客户需要回答问题,以便于正确地估计参与范围。
该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。与客户双方目标达成一致后拿到正式的授权委托书。
02 情报搜集
目前很多公司没有考虑到公共场合关于其公司及员工的大量信息,而这些信息可能成为被人利用的弱点。
渗透测试团队尽可能地使用多种信息搜集工具,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。测试人员可以使用的情报搜集方法包括网站微信微博、邮箱、Google Hacking、whois查询、扫描探测、网络监听、社交网络等。
情报搜集能力是测试人员的一项非常重要的技能,只有建立在足够信息分析的基础上,渗透测试才能游刃有余。只有信息越多,发现漏洞的几率越大。当然还是要重点学习一些扫描探测的工具,如:netdiscover,nmap,appscan,nikto
03 威胁建模
在搜集到充分的情报信息后,渗透测试团队成员进行威胁建模与攻击规划。在威胁建模过程中,要对客户公司的组织资产进行分类和罗列,如:
公司的内部政策、商业计划、路线图
公司的产品信息和源代码
公司的财务信息(如银行,信贷,股权账户)
公司的技术信息如基础设施信息,系统配置信息和用户的账户凭据员工数据和客户数据当识别出这些商业资产,分析不同资产的价值,便建立准确的威胁模型,通过团队的头脑风暴,进行缜密的情报分析与渗透思路整理,可以从大量的信息情报中理清头绪,确定出最可行的渗透通道。
04 漏洞分析
在该阶段,高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,从而打开攻击通道上的关键路径,常见的漏洞搜索网站还有 exploit-db.com和github.com
05 渗透攻击
渗透攻击是渗透测试过程中进行精确打击并最具有魅力的环节。在此环节中,渗透测试团队需要利用找出的安全漏洞,来真正入侵系统当中,获得访问控制权。渗透攻击可以利用公开渠道可获取的渗透代码。
06 后渗透攻击
后渗透攻击是很能体现渗透测试团队职业操守和技术能力的环节。
在此环节中,在得到客户允许的情况下,渗透测试团队进行权限提升并保持对机器的控制以供以后使用。同时需要和客户约定规则,以确保客户的日常运营和数据不会面临风险。
07 形成报告
渗透测试过程最终向客户提交,取得认可并成功获得合同付款的就是一份渗透测试报告。
这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,渗透过程中用到的代码,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题以及修补与升级技术方案。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取