渗透测试是通过模拟来自恶意的黑客或者骇客攻击,以评估计算机系统或者网络环境安全性的活动。从渗透测试的定义我们能够清楚的了解到渗透测试它是一项模拟的活动,主要的目的是进行安全性的评估,而不是摧毁或者破坏目标系统。
渗透测试需要的基础技能必须有网络基础、编程基础、数据库基础、操作系统等基本技能。学习的话可以从html、css、js、编程语言、协议包分析、网络互联原理、数据库语法等进入,学习了这些基础技能之后,就可以进行渗透测试的深入学习了,如web方面的学习OWASP TOP 10漏洞挖掘、主机系统服务漏洞检测、App漏洞检测、内网渗透等方面。
在操作方面,渗透测试工程师需要进行以下内容的实战学习。
信息收集
什么是信息收集?
信息收集是指通过各种方式获取所需要的信息。信息收集是信息得以利用的第一步,也是关键的一步。信息收集工作的好坏,会影响整个渗透测试流程的进行。收集的信息越多后期可进行测试的目标就越多。信息收集包含资产收集但不限于资产收集。
信息收集的意义
信息收集对于渗透测试前期来说是非常重要的。正所谓,知己知彼百战不殆,信息收集是渗透测试成功的保障,只有我们掌握了目标网站或目标主机足够多的信息之后,才能更好地进行渗透测试。
信息收集的分类
主动信息收集
通过直接访问网站,在网站上进行操作,对网站进行扫描等。这种是有网络流量经过目标服务器的信息收集方式。
被动信息收集
基于公开的渠道,比如搜索引擎等,再不与目标系统直接交互的情况下获取信息,并且尽量避免留下痕迹。
这两种方式各有优势,主动信息收集你能获取更多的信息,但是痕迹较为明显,容易被溯源。被动信息收集因为不是针对网站进行特定的扫描,所以一般来说收集的信息会相对比较少,但是你的行动并不会被目标主机发现。所以我们要灵活运用不同的收集方式,才能保证信息收集的完整性。
漏洞分析
在之前收集到的信息,都可能作为渗透测试中的攻击手段,我们需要借此判断可能会出现的漏洞,并测试他们是否可以被利用。期间当然要注意不要碰触到红线,也是就事先确定好测试的范围。另外,我们在这个步骤中经常会用到一些专业的扫描工具,这里就不例举了。
攻击和修复
想要知道怎么修复漏洞,你得先知道怎么攻击,透测试工程师应该有能力在特定环境中提供漏洞的修复建议。渗透测试是建议完成之后,测试人员应该清理环境,将之前在测试阶段修改的配置复原,并协助完成漏洞的修复。
报告整理
报告是渗透测试很重要的一个方面,一方面在于它本身的价值,代表这个项目的结果;另一方面也是一次渗透测试工程师的复盘,这是一次知识的积累和沉淀。