渗透测试是一项在计算机系统上进行的授权模拟攻击,旨在对其安全性进行评估。渗透测试的8大流程步骤:1、明确目标;2、信息收集;3、漏洞探测;4、漏洞验证;5、信息分析;6、获取所需;7、信息整理;8、形成报告;
本文由 项目管理工具PingCode 小编整理
一、什么是渗透测试?
渗透测试是一项在计算机系统上进行的授权模拟攻击,旨在对其安全性进行评估。渗透测试人员使用与攻击者相同的工具、技术和流程,来查找和展示系统弱点对业务带来的影响。
渗透测试通常会模拟各种可能威胁您业务的攻击。渗透测试可以检查系统是否足够稳定,能否抵抗来自经过认证和未经认证的攻击,以及一系列系统角色发起的攻击。在合适的范围内,针对您需要评估的系统的任何方面,渗透测试都可以深入其中。
二、渗透测试完整流程
常规渗透测试流程:明确目标→信息收集→漏洞探测→漏洞验证→信息分析→获取所需→信息整理→形成报告
1、明确目标
确认范围:测试目标的范围,IP,域名,内外网。
确认规则:能渗透到什么程度,时间,能否提权等。
确认需求:WEB应用的漏洞(新上线程序)?业务逻辑漏洞(针对业务的)?人员权限管理漏洞(针对人员、权限)?等等,要做到立体全方位。
2、信息收集
方式:主动扫描,开放搜索:利用搜索引擎获得后台,未授权页面,敏感url等。
基础信息:真实IP,网段,域名,端口。
系统信息:操作系统的版本。
应用信息:各端口的应用,例如WEB应用,邮件应用等。
版本信息:所有这些探测到的东西的版本。
人员信息:域名注册人员信息,WEB应用中网站发帖人的id,管理员姓名等。
防护信息:试着看能否探测到防护设备。
3、漏洞探测
方法:使用漏扫,例如:AWVS、IBM appscan等。
结合漏洞去exploit-db等网址找利用。
在网上寻找验证poc。
内容:系统漏洞:系统没有及时打补丁。
Websever漏洞:Websever配置问题。
Web应用漏洞:Web应用开发问题。
其它端口服务漏洞
通信安全
4、漏洞验证
自动化验证:结合自动化扫描工具提供的结果。
手动验证:根据公共资源进行验证。
试验验证:自己搭建模拟环境进行验证。
登陆猜解:有时可以尝试猜解一下登陆的账号密码等信息。
业务漏洞验证:如发现业务漏洞,要进行验证。
5、信息分析
精准打击:准备好上一步探测到的漏洞的exp,用来精准打击。
绕过防御机制:是否有防火墙等设备,如何绕过。
定制攻击路径:优异工具路径,根据薄弱入口,高内网权限位置,最终目标。
绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)。
攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等。
6、获取所需
实施攻击:根据前几步的结果,进行攻击。
获取内部信息:基础设施(网络连接,路由,拓扑等)。
进一步渗透:内网入侵,敏感目标。
持续性存在:一般我们对客户做渗透不需要。rootkit,后门,添加管理账号等。
清处痕迹:清理相关日志(访问,操作),上传文件等。
7、信息整理
整理渗透工具:整理渗透过程中用到的代码,poc,exp等。
整理收集信息:整理渗透过程中收集的一切信息。
整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息。
目的:为了最后形成报告,形成测试结果使用。
8、形成报告
按需整理:按照之前名列前茅步跟客户确定好的范围,需要来整理资料,并将资料形成报告。
补充介绍:要对漏洞成因,验证过程和带来危害进行分析。
修补建议:当然要对所有产生的问题提出合理高效安全的解决办法。
渗透测试报告编写:
- 封皮
- 明确重点和要求
- 给谁看?不同职位的人关注的侧重点不一样
- 内容提要
- 漏洞列表(一页纸内)
- 过程清晰准确
- 工具(版本和功能)
- 渗透测试团队成员及联系方式
- 修补建议
三、渗透测试的收益
理想情况下,您的组织在开始对其软件和系统进行设计时,就力争消除危险的安全漏洞。渗透测试帮您深入了解这一目标的实现情况。其中,渗透测试支持以下安全活动: