渗透测试(Penetration Testing)是由具备高技能和高素质的安全服务人员发起、并模拟常见黑客所使用的攻击手段对目标系统进行模拟入侵。
渗透测试服务的目的在于充分挖掘和暴露系统的弱点,从而让管理人员了解其系统所面临的威胁。渗透测试工作往往作为风险评估的一个重要环节,为风险评估提供重要的原始参考数据。
渗透测试方法论
1. 信息收集技术
无论是恶意用户的攻击还是安全人员的渗透测试工作,信息采集都是非常必要的一步工作,只有做到了“知己知彼”,才有可能针对被测试目标的弱点进行深度的挖掘和测试工作。
(1) 系统和应用信息收集
通过对远程服务的所启动的服务进行扫描和手工提交等工作,根据其返回信息可以获取远程系统及应用的版本号等信息,对于存在弱点的应用还可以进一步挖掘更多的系统信息,例如:SMB、SNMP等。
(2) 站点信息收集
站点信息主要包括三个部分:WEB服务信息,数据库信息和站点结构。
通过上面所介绍的手段可获取WEB和数据库信息。而若想进一步获取站点结构,需要使用爬虫程序。目前,一般WEB扫描器都具备比较强大的爬虫功能,通过爬虫程序可以快速的遍历出站点结构,这对于后期的漏洞挖掘是必不可少的基础信息。
2. 溢出攻击技术
溢出是比较传统却又很常见的一种漏洞。
溢出攻击的测试过程中,测试人员将根据收集的信息以确认应用或系统的版本,从而判断在当前应用或系统上是否存在已知溢出漏洞和可利用的攻击程序,同时,测试人员会在攻击程序对系统的稳定运行不产生影响的前提下使用攻击程序发起溢出