渗透测试流程
1、介绍
渗透测试,既可以说是学习和梳理知识的框架,也可以说是实际测试的标准流程。
2、过程
2.1 确定目标
- 具体来说,就是确定向管理者拿到测试授权和测试范围(组织名称、域名、ip、端口、接口等)。
- 不确定目标,即不确定边界,那么意味着无限的延伸,这是不现实的。
- 确定边界之后,同时确定资产所属。从技术上来说,一方面边界可能被其它人忽略而捡漏,另一方面可以在有限范围内进行深入测试。从结果上来说,测试工作可以提交和拿到报酬
2.2 收集信息
在前一步基础上,通过一定的技术去收集目标的信息。
- 基于特定站点搜索信息,gitee/github、博客园/csdn、站长之家
- 基于浏览器直接访问目标网站
- 扫描目标主机
2.3 测试
(1)测试流程一般是先测试目标的网络安全(dns、路由、外围的堡垒机等)、主机系统、端口服务、网站整体,最后才是各功能模块
(2)功能模块一般是按照顺序测试,登录/注册模块、前台模块、个人后台模块、以及管理者后台模块。
2.4 利用&提权、拓展
白帽子渗透测试不提倡实际的漏洞利用,了解和掌握即可。
另一方面,单一的漏洞可能危害有限,可以尝试对其进行提权或者漏洞组合、拓展利用。
2.5 后门
2.6 清扫痕迹
2.7 报告及梳理
3、常用流程
以上过程是标准的阐述,但是在实际中更倾向于以下流程:
(1)对某个网站进行信息收集和测试
- 这里网站针对的是单个服务器容器
- 区别于网站内功能模块测试,网站级别的测试可以一次测试,快速的进行自动化测试
- 网站级别的信息收集,主要包括编程语言、服务器容器名称和版本等,为网站内测试提供一定支持,比如文件上传与中间件
- 网站级别的漏洞,主要包括服务器容器漏洞、cms漏洞、信息泄露漏洞等。具有测试方便、存在可能性高、利用价值高等特点
(2)对网站内各功能模块进行测试
(3)进一步收集信息,以支持站内测试。另一方面,拓展测试目标,重复(1)(2)(3)