Web渗透测试是一把双刃剑,它可以成为网络管理员和安全工作者保护网络安全的重要实施方案,也可以成为攻击者手中的一种破坏性极强的攻击手段。因此,作为网络管理员和安全工作者要想保障网络的安全,就必须了解和掌握Web渗透测试的实施步骤与各种攻击方式。
Web渗透测试主要是对Web应用程序和相应的软硬件设备配置的安全性进行测试,是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试能够直观地让管理人员知道自己网络所面临的问题。
进行Web渗透测试的安全人员必须遵循一定的渗透测试准则,不能对被测系统进行破坏活动。Web安全渗透测试一般是经过客户授权的。
实际上,Web渗透测试并没有严格的分类方式,但根据实际应用,普遍认同的几种分类方法如下:
根据渗透方法进行分类,渗透测试/攻击可分为以下两类。
黑盒(Black Box)渗透测试又被称为zero-knowledge testing,渗透者完全处于对目标网络系统一无所知的状态,通常这类测试,只能通过DNS、Web、E-mail等网络对外公开提供的各种服务器,进行扫描探测,从而获得公开的信息,以决定渗透的方案与步骤。
白盒(White Box)渗透测试又被称为“结构测试”,渗透测试人员可以通过正常渠道,向请求测试的机构获取目标网络系统的各种资料,包括用户账号和密码、操作系统类型、服务器类型、网络设备型号、网络拓扑结构、代码等信息,这与黑盒渗透测试相反。
根据渗透测试目标分类,渗透测试又可分为以下几种。
对目标网络中的Windows、Linux、UNIX等不同操作系统主机进行渗透测试。
对MS-SQL、Oracle、MySQL、INFORMIX、SYBASE、DB2等数据库系统进行渗透测试,这通常是对网站的入侵渗透过程而言的。
渗透的目标网络系统都对外提供了Web网页、E-mail邮箱等网络程序应用服务,这是渗透者打开内部渗透通道的重要途径。
对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。
对各种硬件防火墙、入侵检测系统、路由器和交换机等网络设备进行渗透测试。此时,渗透者通常已入侵进入内部网络中。
按照渗透者发起渗透攻击行为所处的网络环境来分,渗透测试可分为下面两类。
外网测试指的是渗透测试人员完全处于目标网络系统之外的外部网络,模拟对内部状态一无所知的外部攻击者的行为。渗透者需要测试的内容包括:对网络设备的远程攻击、口令管理安全性测试、防火墙规则试探和规避、Web及其他开放应用服务等。
内网测试指的是渗透测试人员由内部网络发起的渗透测试,这类测试能够模拟网络内部违规操作者的行为。同时,渗透测试人员已处于内网之中,绕过了防火墙的保护。因此,渗透控制的难度相对已减少了许多,各种信息收集与渗透实施更加方便,经常采用的渗透方式为:远程缓冲区溢出、口令猜测,以及B/S或C/S应用程序测试等。
渗透攻击与普通攻击的不同在于:普通的攻击只是单一类型的攻击;渗透攻击则与此不同,它是一种系统渐进型的综合攻击方式,其攻击目标是明确的,攻击目的往往不那么单一,危害性也非常严重。
例如,在普通的攻击事件中,攻击者可能仅仅是利用目标网络的Web服务器漏洞,入侵网站更改网页,或者在网页上挂马。也就是说,这种攻击是随机的,而其目的也是单一而简单的。
在渗透入侵攻击的过程中,攻击者会有针对性地对某个目标网络进行攻击,以获取其内部的商业资料,进行网络破坏等。其实施攻击的步骤是非常系统的,假设其获取了目标网络中网站服务器的权限,则不会仅满足于控制此台服务器,而是会利用此台服务器,继续入侵目标网络,获取整个网络中所有主机的权限。
另外,为了实现渗透攻击,攻击者采用的攻击方式绝不仅限于一种简单的Web脚本漏洞攻击,而是会综合运用远程溢出、木马攻击、密码破解、嗅探、ARP欺骗等多种攻击方式,逐步控制网络。
总之,渗透攻击与普通攻击相比,渗透攻击具有攻击目的明确性、攻击手段多样性和综合性等特点。