长春大学计算机科学技术学院 王绍强 邵 丹 王艳柏
网络渗透测试技术分析研究
长春大学计算机科学技术学院 王绍强 邵 丹 王艳柏
【摘要】随着Internet的迅速发展,网络渗透测试技术已成为网络安全防范的有效措施和重要方法之一,对于提高社会各行业计算机网络系统的安全性有着重要的意义。本文介绍和分析了网络渗透技术中常用的端口扫描技术、漏洞扫描技术、缓冲区溢出技术、SQL注入技术和木马攻击技术,并提出网络渗透测试的一般流程和实用方案。
【关键词】网络安全;渗透测试;漏洞;缓冲区
信息时代高速发展的今天,各种基于网络的技术与产品应运而生,网络在经济、工作和生活的各个领域中的地位变得越来越重要,人类社会对互联网的依赖程度在增强。但是,网络技术不断发展的同时,也带来了各种不利因素,其中网络系统安全问题最为棘手。黑客攻击手段越来越先进,安全漏洞被利用的速度越来越快,攻击者的数量不断增加,破坏效果越来越严重。构建网络安全防护仅依靠安全设备是不够的,被动防范最终会被黑客入侵,主动发现系统存在的漏洞和风险并及时修正才是更有效的办法。网络渗透测试实际上就是合法的测试人员模拟黑客入侵和攻击网络系统的方法,运用各种渗透技术和自身经验对目标网络系统进行渗透攻击并且做出安全评估,找出系统漏洞和风险所在并及时修正。这种方法是从黑客可能发动攻击的位置有条件的主动利用各种安全漏洞,强调主动对系统的弱点和漏洞进行分析,是十分有效的积极防御措施。当前广泛使用的渗透测试技术有端口扫描技术、漏洞扫描技术、缓冲区溢出技术、SQL注入技术和木马攻击技术等。
2.1 端口扫描技术
计算机网络系统中,端口就是进程的地址,数据包到达主机后需依据端口地址送交给相应服务进程。端口扫描就是通过对目标地址的端口进行扫描,可以基本确定目标系统的基本信息,确定其所开放的服务的类型。测试人员一般能够分析查找出目标系统可能存在的安全弱点,为进一步的网络渗透提供基础。端口扫描是渗透测试的基础。常用的端口扫描工具如X-Scan、 M-Scaner、SSPort和ScanPort等。
2.2 漏洞扫描技术
漏洞扫描大多是依据已公布的漏洞数据,通过扫描方法对目标系统安全的脆弱性进行检测,发掘能利用的漏洞的一种渗透测试行为。漏洞扫描比端口扫描所做工作更进了一步。可以获悉该端口上正处于监听状态的服务,进一步分析出该服务和服务版本相关的已知安全漏洞。漏洞扫描可从外部和内部分别开展。外部扫描在真实环境下通过网络对服务器进行外部特征扫描,检测服务器各类端口的使用分配、提供何种服务、服务的版本以及该服务已知晓的安全漏洞。内部扫描则是从系统内部检测系统的配置缺陷,检测发现出有可能被攻击或利用的各种错误配置。漏洞扫描包括HTTP漏洞扫描、SSH漏洞扫描、POP3漏洞扫描、FTP 漏洞扫描等。常用的工具如Windows Vulnerability Scanner、netsparker和Canvas等。
2.3 缓冲区溢出技术
缓冲区溢出攻击是利用缓冲区溢出原理所进行的攻击技术。缓冲区是程序分配的临时存放数据的一块区域。缓冲区溢出是指向程序的缓冲区写入超出缓冲区长度的数据,导致它溢出,破坏了程序的数据存放区域,使程序转而执行其它非法指令以达到攻击目的。程序在内存中通常分为程序段、数据段和堆栈三部分。程序段里存放机器码和只读数据,数据段里存放静态数据,动态数据则是通过堆栈来存放,它们在内存中的位置如图1所示。在当前各类网络安全威胁中,被广泛利用的超过一半以上都是缓冲区溢出攻击。根据溢出发生的位置可将缓冲区溢出分为堆栈区溢出、格式化字符串攻击、静态数据的缓冲区溢出,其中最为危险的是堆栈溢出,黑客利用堆栈溢出可以在函数返回时改变返回程序的地址,不但可以造成程序运行失败、系统崩溃重启动拒绝服务等后果,甚至可以跳转并且执行一段恶意代码使非法用户有机会获得目标系统的部分或全部的控制权。常用的缓冲区溢出攻击工具如Metasploit、BoundsChecker 和Vulnserver等。
图1 数据在内存中的位置
2.4 SQL注入技术
SQL注入攻击是指通过构建特殊的SQL语句作为参数传入Web应用程序,通过执行SQL语句进而执行攻击者所要的操作,其原因是程序开发者没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。黑客可以提交一段SQL查询代码,根据查询返回的结果,获得其想得知的数据。SQL注入攻击技术技术难度不高、危害性大,甚至利用一些免费SQL注入工具软件就可以轻易地对存在SQL注入漏洞的网站或者Web应用程序实施攻击。常见的SQL注入工具如SQLIer、SQLMap、SQL Power Injector和Webpecker等。
2.5 木马攻击技术
木马攻击是目前常见的网络攻击手段之一,危害性大、隐蔽性强,能对计算机信息系统的安全保密构成极大的威胁。木马程序一般由两部分组成的,即Server(服务)端程序和Client(客户)端程序。 其中Server端程序安装在被目标(被控制)计算机上,Client端程序安装在攻击者(控制)计算机上,Server端程序和Client端程序建立起连接就可以实现对远程计算机的完全控制,危害巨大。常见的木马工具如特洛伊木马、冰河和灰鸽子等。
网络渗透测试过程就是模拟黑客攻击的过程。首先应收集信息,尽可能更多的获得要渗透目标的信息。从社会工程学开始,留意目标公司公布的所有资料,从中发现对渗透有价值的信息,如公司使用的服务器和系统平台,能提供哪些服务,目标公司的物理拓扑等;然后进行地址扫描,对服务器进行端口扫描,漏洞扫描,通过以发布的各种漏洞的报告,结合目标公司发布的信息,找出目标公司有可能出现的漏洞进行渗透攻击,快速找到渗透注入点。再根据实际情况选择使用缓冲区溢出攻击、SQL注入攻击或木马攻击等攻击技术对目标网络进行渗透攻击,最后获取目标系统的部分甚至全部的权限,渗透测试成功。具体流程如图2所示。
图2 网络渗透测试流程
网络渗透测试作为一种主动式网络安全防御方法,已得到用户和网络安全测试机构的重视,理论和应用研究也得到了发展。本文主要对常用的渗透测试的技术和测试流程进行了分析和总结,对学习和从事网络渗透测试的人员有一定的参考和借鉴作用。
参考文献
[1]袁浩.计算机网络渗透测试研究[D].重庆大学自动化学院,2006.
[2]刘翠.渗透测试技术的应用分析[J].产业与科技论坛,2014(13):11.
[3]田立军.渗透性测试技术及方法研究[J].铁路计算机应用技术,2015(2)
[4]刘帅.SQL注入攻击及其防范检测技术的研究[J].电脑知识与技术.2009(10).
[5]许太安.木马攻击原理及防御技术[J].网络安全,2014(3).
[6]卿斯汉.安全协议[M].北京:清华大学出版社,2005.
基金项目:吉林省教育厅“十二五”科学技术研究项目(吉教科合字[2012]第247号)。