资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,黑客常用的系统攻击方法,1,网络扫描,网络监听,常用黑客技术的原理,(木马、缓冲区溢出等),黑客攻击的防范,本章主要内容,Key Questions,2,黑客入侵攻击的一般过程,1.,确定攻击的目标。,2.,收集被攻击对象的有关信息。,3.,利用适当的工具进行扫描。,4.,建立模拟环境,进行模拟攻击。,5.,实施攻击。,6.,清除痕迹。,3,目标系统的探测方法,目的:,了解目标主机的信息:,IP,地址、开放的端口和服务程序等,从而获得系统有用的信息,发现网络系统的漏洞。,常用方法:,网络探测,【,实验,】whois,(,web,网页形式;,工具软件形式,如,Smartwhois,查询工具),扫描器工具,4,网络安全扫描技术,5,网络安全扫描技术在网络安全行业中扮演的角色,(,1,)扫描软件是入侵者分析将被入侵系统的必备工具,(,2,)扫描软件是系统管理员掌握系统安全状况的必备工具,(,3,)扫描软件是网络安全工程师修复系统漏洞的主要工具,(,4,)扫描软件在网络安全的家族中可以说是扮演着医生的角色,1.,合法使用:检测自己服务器端口,以便给自己提供更好的服务;,2.,非法使用:查找服务器的端口,选取最快的攻击端口,6,网络安全扫描技术分类,一,.,一般的端口扫描器,二,.,功能强大的特殊端口扫描器,三,.,其他系统敏感信息的扫描器,7,端口扫描的原理,最简单的端口扫描程序仅仅是检查目标主机的哪些端口可以建立,TCP,连接,如果可以连接,则说明主机在这个端口被,监听,。,端口的状态:,open,、,filtered,、,unfiltered,对于非法入侵者而言,要想知道端口上具体的提供什么服务,必须用相应的协议来验证才能确定,因为一个服务进程总是为了完成某种具体的工作而设计的。,缺点:,1.,很容易被目标主机检测到并记录下来。,2.,容易被防火墙之类的系统过滤掉。,8,端口扫描的原理,非法入侵者为了有效地隐蔽自己,又能进行端口扫描,需要寻找更有效的方法。,TCP,数据包的包头中有,6,位标志位:,SYN,标志(同步标志):用来建立连接,让连接双方同步序列号。,ACK,标志(确认标志):如果为,1,,表示数据报中的确认号是有效的;否则,数据报中的确认号是无效的。,URG,标志:紧急数据标志位。,PSH,标志:推送标志位。,RST,标志(复位标志):用来重置一个连接,用于由于一台主机崩溃或一些其他原因引起的通信混乱。它也被用来拒绝接收一个无效的,TCP,数据包,或者用来拒绝一个连接的企图。,FIN,标志(结束标志):释放(结束),TCP,连接。,9,端口扫描的原理,3,次握手的过程:,10,常见的端口扫描技术,1.TCP connect,()扫描,使用系统提供的,connect,()系统调用,建立与目标主机端口的连接。如果端口正在监听,,connect,()就成功返回;否则,说明端口不可访问。,优点:不需要任何特权、速度快。,缺点容易被检测到,并且被过滤掉。目标主机的日志文件记录下这些连接信息。,2.TCP SYN,扫描,称为半开扫描。,优点:很少系统能够把这些记入系统日志。,11,常见的端口扫描技术,3.TCP FIN,扫描,在很多情况下,即使是使用,SYN,扫描也不能做到很隐秘。一些防火墙和包过滤程序监视,SYN,数据包防火一个未被允许访问的端口。,FIN,数据包却有可能通过这些扫描。,基本思想是关闭的端口将会用正确的,RST,来应答发送的,FIN,数据包;而相反,打开的端口往往会忽略这些请求。,4.UDP,扫描,用来确定哪个,UDP,端口在主机端开放。,12,常用的扫描软件,X-scan,(综合扫描器),Nmap,(端口扫描器),Fluxay,ipscan,13,课堂演练一:端口扫描器,Nmap,Nmap,简介,Nmap,支持的四种最基本的扫描方式:,(,1,),Ping,扫描(,-sP,参数)。,(,2,),TCP connect(),端口扫描(,-sT,参数)。,(,3,),TCP,同步(,SYN,)端口扫描(,-sS,参数)。,(,4,),UDP,端口扫描(,-sU,参数)。,其他扫描方式:,(,1,),FIN,扫描(,-sF,)。,(,2,)圣诞树扫描(,-sX,)。,(,3,)空扫描(,-sN,)。,14,课堂演练二:综合扫描器,X-scan,扫描内容包括什么?,扫描参数的设置,扫描报告的分析,15,攻击演练:口令攻击,为了安全,现在几乎所有的系统都通过访问控制来保护自己的数据。访问控制最常用的方法就是口令保护。,获取密码口令的方法:暴力破解、,Sniffer,密码嗅探、社会工程学、以及木马程序或键盘记录程序等。,16,攻击演练:口令攻击,暴力破解:穷举法和字典法。,常用的口令破解工具:,SMBCrack,、,L0phtCrack,、,SAMInside,等。,17,攻击演练:口令攻击,危险口令类型:,用户名,用户名变形,生日,常用英文单词,5,位以下长度的口令,【,课堂实战,】,口令破解,smbcrack,psexec.exe,18,(,1,),CGI Scanner,(,2,),Asp Scanner,(,3,)从各个主要端口取得服务信息的,Scanner,(,4,)获取操作系统敏感信息的,Scanner,(,5,)数据库,Scanner,(,6,)远程控制系统扫描器,专用扫描器的介绍,19,CGI-,Common Gateway Interface,在物理上,,CGI,是一段程序,它运行在,Server,上,提供同客户段,Html,页面的接口。,例子:,现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的,CGI,目录下特定的,cgi,程序中,于是,cgi,程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后,cgi,程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。,20,网络安全扫描软件的局限性,(,1,)扫描器难以智能化,不能完全代替人工分析,(,2,)扫描器依赖升级工作,才能确保长期的有效性,(,3,)使用扫描器,必须考虑到有关法律的规定和限制,不能滥用,21,总结,(,1,)扫描器和其它产品一样,只是一个工具,我们不能完全依赖他的工作,人的因素也是至关重要的。,(,2,)扫描器能够发挥的功能取决于人,人的工作是大量的同时是必不可少的。只有人的努力才能够确保扫描器功能的强大。,(,3,)扫描器质量的好坏,在于开发公司在安全实践中积累的经验和更新能力。,22,网络监听技术,23,Sniffer,原理,Sniffer,,中文可以翻译为嗅探器,也就是我们所说的数据包捕获器。,采用这种技术,我们可以监视网络的状态、数据流动情况以及网络上传输的信息等等。,24,Sniffer,的功能,网络监视与统计,以表格或图形的方式提供实时的网络流量分析,主机表、流量距阵、应用响应时间、协议分布、历史流量统计、帧尺寸分布。,协议解码分析,在网络全部七层上可以对,400,多种协议进行解释。,实时专家分析系统,截获帧的同时建立网络对象数据库,并利用知识库检测网络异态。,25,网卡工作原理,网卡先接收数据头的目的,MAC,地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就在接收后产生中断信号通知,CPU,,认为不该接收就丢弃不管。,CPU,得到中断信号产生中断,操作系统就根据网卡驱动程序中设置的网卡中断程序地址调用驱动程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理。,26,网卡的工作模式,广播方式:能够接收网络中的广播信息。,组播方式:能够接收组播数据。,直接方式:,只有目的网卡才能接收该数据。,混杂模式(,promiscuous,):能够接收到一切通过它的数据。,27,HUB,工作原理,28,HUB,工作原理,29,交换环境下的,SNIFF,30,交换环境下的,SNIFF,31,Username:,herma009,Password:,hiHKK234,以太网(,HUB,),FTP,Login,Mail,普通用户,A,服务器,C,嗅探者,B,网络监听原理,Username:,herma009,Password:,hiHKK234,32,ARP spoof,Username:,herma009,Password:,hiHKK234,switch,FTP,普通用户,A,IP:10.1.1.2,MAC:,20-53-52-43-00-02,服务器,C,IP:10.1.1.1,MAC:,20-53-52-43-00-01,Switch,的,MAC,地址表:,IP:10.1.1.1,(,C,的,IP,),MAC:20-53-52-43-00-03,(,B,的,MAC,地址),router,嗅探者,B,33,网络监听原理,一个,sniffer,需要作的:,把网卡置于混杂模式。,捕获数据包。,分析数据包,34,常用的,SNIFF,(,1,),windows,环境下,:,图形界面的,SNIFF,netxray,sniffer pro,(,2,),UNUX,环境下,:,UNUX,环境下的,sniff,可以说是百花齐放,他们都有一个好处就是发布源代码,当然也都是免费的,。,如,sniffit,,,snoop,tcpdump,dsniff,Ettercap(,交换环境下,),35,常用的,SNIFF,(,1,),Sniffer Pro,(,2,),WireShark,(,3,),Net monitor,(,4,),EffTech HTTP Sniffer,(,5,),Iris,36,课堂演练,【,例,1】,嗅探,FTP,过程,【,例,2】,嗅探,HTTP,登录邮箱的过程,【,例,3】,嗅探,POP,邮箱密码的过程,【,问题,】,常见的邮箱中,哪些是加密的,哪些是不加密的?,扩展例子:嗅探网络信使(,net send,)的过程,37,如何防止,SNIFF,进行合理的网络分段,。,用,SSH(SecureShell)/SSL(Secure Socket Layer),建立加密连接,保证数据传输安全。,Sniffer,往往是入侵系统后使用的,用来收集信息,因此防止系统被突破。,防止内部攻击。,AntiSniff,工具用于检测局域网中是否有机器处于混杂模式,(不是免费的)。,38,综合演练,使用,WireShark,分析,TCP/IP,建立连接的三次握手过程的数据包,使用,WireShark,分析,nmap,各种扫描方式的数据包,39,木马(,Trojan horse,),源于希腊诗人荷马的伟大史诗,伊利亚特,。,计算机界的特洛伊木马,是指隐藏在正常程序中的一段具有特殊功能的恶意代码。,40,木马的工作原理,实际就是一个,C/S,模式的程序(里应外合),操作系统,被植入木马的,PC,(,server,程序),TCP/IP,协议,端口,控制木马的,PC,(,client,程序),操作系统,TCP/IP,协议,端口,控制端,端口处于监听状态,41,木马(,Trojan horse,),木马是一种基于远程控制的黑客工具,隐蔽性,自动运行性,功能的特殊性,自动恢复功能,能自动打开特定的端口,非授权性,42,木马与病毒、远程控制的区别,病毒程序是以自发性的败坏为目的,木马程序是依照黑客的命令来运作,主要目的是偷取文件、机密数据、个人隐私等行为。,木马和一般的远程控制软件的区别在于其,隐蔽、非授权性,。,43,木马的分类,1.,远程访问型,2.,键盘记录型,3.,密码发送型,4.,破坏型,5.,代理型,6.FTP,型,44,木马实施攻击的步骤,1.,配置木马,木马伪装:修改图标、绑定文件、出错显示、定制端口、自我销毁、木马更名,信息反馈:,2.,传播木马,传播方式:,E-mail,、软件下载,3.,启动木马,服务端用户运行木马或绑定木马的程序后,木马就会被自动安装。首先复制到系统文件夹中,然后在注册表、启动组、非启动组中设置好木马的触发条件。,4.,建立连接,netstat-a,5.,远程控制,45,课堂演练一:冰河木马的使用,服务器端程序:,G-server.exe,客户端程序:,G-client.exe,默认连接端口,7626,进行服务器配置,远程控制,如何清除?,46,冰河木马的手动清除,(1),删除,C:WINTsystem,下的,Kernel32.exe,和,Sysexplr.exe,文件。,(2),冰河会驻留在注册表,HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowsCurrentVersionRun,下,键值为,C:WINTsystem32Kernel32.exe,的,将其删除。,(3),在注册表,HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowsCurrentVersionRunservices,下,还有键值为,C:WINTsystem32Kernel32.exe,的,也要将其删除。,(4),修改注册表,HKEY_CLASSES_ROOTtxtfileshellopencommand,下的默认值,由中木马后的,C:WINTsystem32 Sysexplr.exe%1,改为正常情况下的,C:WINTsystem32 notepad.exe%1,,即可恢复,TXT,文件关联功能。,47,反弹端口类型的木马,普通的木马的服务器程序打开特定的端口监听,攻击者通过客户端程序发出请求,木马便与其连接起来。,缺点:,1.,容易被发现,2.,可以通过安装防火墙进行有效的防御,48,反弹端口类型的木马,防火墙对于连入的连接往往会进行非常严格的过滤,但是对于连出的连接却疏于防范。,于是,与一般的木马相反,客户端打开某个监听端口,反弹端口型木马的服务端主动与该端口连接,客户端使用被动端口,木马定时监测控制端的存在,发现控制端上线立即弹出端口主动连接控制端打开的主动端口。,49,课堂演练二:灰鸽子的使用,反弹端口类型的木马,服务器的配置,服务器的工作方式,远程控制,如何清除?,50,木马的隐藏和,伪装方式,1.,木马与远程控制软件的区别,木马和远程控制的原理是一样的,都是通过远程控制功能控制目标机器。,区别:,木马:隐蔽性,非法进入系统。,远程控制软件:会有提示标志。,51,木马文件的隐藏和,伪装,(,1,)文件的位置:,c:WINNT,和,c:WINNTsystem32,(,2,),文件的属性:,隐藏,(,3,)文件的捆绑:,将某个可执行程序和木马捆绑成一个程序,(,4,)文件的名字:,使用常见的文件名或扩展名,或者仿制一些不易被人区别的文件名。例如冰河的,kernl32.exe,,而,windows,本身正常的文件名就有,kernl32.dll,。,(,5,)文件的扩展名:,把可执行文件伪装成图片或文本文件,(,6,)文件的图标:,把木马的服务器端程序的图标改成,HTML,、,TXT,、,ZIP,、,JPG,等各种文件的图标,52,木马运行时,伪装,方法,(,1,)在任务栏里隐藏,(,2,)在任务管理器里隐藏,系统服务:把自己设为“系统服务”就不会在任务管理器出现。,DLL,木马:,.dll,运行时是直接挂在调用程序的进程里,并不会另外产生进程。,CPL,木马:,.cpl,由,RunDll32.exe,调用,而,RunDll32.exe,进程是常见的进程。,(,3,)隐藏端口,利用端口反弹木马,53,木马的,启动方式,1.,配置文件中的启动,win.ini,:,c:WINNTWin.ini,的“,windows”,字段中启动命令“,load=”,和“,run=”,system.ini,:,c:WINNTSystem.ini,的“,boot”,字段、“,386enh”,字段、“,mic”,、“,drivers”,、“,drivers32”,等字段。,54,木马的,启动方式,2.,在启动组中启动,【,开始,】/【,程序,】/【,附件,】/【,系统工具,】/【,软件环境,】/【,启动程序,】,中。,55,木马的,启动方式,3.,在注册表中启动,(1),HEY_LOCAL_MACHINEsoftwaremicrosoftwindowsCurrentVersionRun(RunOnce,、,RunOnceEx,、,RunServices),HEY_CURRENT_USERsoftwaremicrosoftwindowsCurrentVersionRun,(2),文件相关联。有些木马通过修改文件打开关联来达到加载的目的,当打开一个已修改了打开相关联的文件时,木马就开始运行。如冰河木马就是利用文本文件来加载。,56,木马的,启动方式,4.,捆绑式启动,通过捆绑工具将木马和可执行文件捆绑成一个程序,执行捆绑后的程序就同时执行了两个程序,木马被激活。如果捆绑到系统文件上,那么每次,Windows,启动均会启动木马。,5.,在超链接中启动,在网页上放置恶意代码,单击超链接后就自动下载并运行,这就是网页木马。,57,发现木马的方法,1.,查看端口,Netstat,命令:可以显示当前活动的网络连接的详细信息。,LISTENING,ESTABLISHED,TIME_WAIT,58,发现木马的方法,2.,检查注册表,3.,检查,DLL,木马,借助,IceSword,工具检查,4.,检查配置文件,59,防御,发现木马:检查系统文件、注册表、端口,不要轻易使用来历不明的软件,不熟悉的,E-MAIL,不打开,常用杀毒软件并及时升级,合理使用防火墙,在安装新的软件之前,请先备份注册表,在安装完软件以后,立即用杀毒软件查杀,Windows,文件夹和所安装的软件的所在文件夹。如果杀毒软件报告有病毒,这时请将它杀掉,杀毒完成后,重新启动计算机。,60,流行木马简介,冰 河,back orifice,Subseven,网络公牛,(Netbull),网络神偷,(Nethief),广外男生(是广外女生的一个变种),Netspy(,网络精灵,),61,拒绝服务攻击,(DoS),DoS-Denial of Service,:,从广义上讲是指任何导致网络设备(服务器、防火墙、交换机、路由器等)不能正常提供服务的攻击。,现在一般指导致服务器不能正常提供服务的攻击。,62,拒绝服务攻击,(DoS),DoS,攻击的目的,(,1,)使服务器崩溃并让其他人也无法访问。,(,2,)黑客为了冒充某个服务器,就对其进行,DoS,攻击,使之瘫痪。,(,3,)黑客为了启动安装的木马,要求系统重新启动,,DoS,攻击可以用于强制服务器重新启动。,63,拒绝服务攻击,(DoS),DoS,攻击的事件:,2000,年,2,月份的,Yahoo,、亚马逊、,CNN,被,DoS,攻击。,2002,年,10,月全世界,13,台,DNS,服务器同时受到了,DDoS,(分布式拒绝服务)攻击。,2003,年,1,月,25,日的,“,2003,蠕虫王,”,病毒。,2004,年,8,月,,共同社报道:日本近期共有上百网站遭到黑客袭击。,64,DoS,攻击的分类,以消耗目标主机的可用资源为目的(例如:死亡之,ping,、,SYN,攻击、,Land,攻击、泪珠攻击等),以消耗服务器链路的有效带宽为目的(例如:蠕虫),65,死亡之,Ping,发送畸形的、超大尺寸的,ICMP,数据包,导致内存分配错误和系统瘫痪。,解决方法:正确的配置操作系统和防火墙,阻断,ICMP,以及任何未知协议。,66,攻击者,目标主机,SYN,SYN/ACK,ACK,等待应答,SYN,:同步,SYN/ACK:,同步,/,确认,ACK,:确认,SYN,攻击的原理(,1,),67,.,.,.,.,SYN/ACK,SYN/ACK,SYN/ACK,SYN,SYN,SYN,攻击者,目标主机,SYN,SYN/ACK,1,n,SYN/ACK,SYN/ACK,SYN/ACK,SYN/ACK,.,.,.,.,等待,ACK,应答,.,.,.,.,.,.,.,.,.,不应答,不应答,重新发送,SYN,攻击的原理(,2,),68,Land,攻击,包的源,IP,地址和目标,IP,地址都被设置成被攻击的服务器地址,这是将导致服务器向自己的地址发送,SYN/ACK,,结果这个地址又发回,ACK,消息并创建一个空连接,每一个这样的连接都将保留直到超时。,69,课堂演练,SYN,攻击,synkiller,(图形界面工具),syn,等(,DOS,界面工具),【,攻击效果,】,可通过抓包和查看,CPU,的利用率来观看攻击效果,70,死亡之,ping,SYN,Flood,Land,攻击,泪珠(,Teardrop,)攻击,行行色色的,DOS,攻击,71,DDoS,攻击手段是在传统的,DoS,攻击基础之上产生的一类攻击方式。,单一的,DoS,攻击:一对一方式,当目标,cpu,速度低、内存小或者网络带宽小时效果明显。,DDoS,攻击,72,如果说计算机与网络的处理能力加大了,10,倍,用一台攻击机来攻击不再起作用,那么攻击者使用,10,台攻击机同时攻击呢?用,100,台呢?,DDoS,攻击,73,1),攻击者攻击诸客户主机以求分析他们的安全水平和脆弱性。,攻击者,各种客户主机,目标系统,2,),攻击者进入其已经发现的最弱的客户主机之内(,“,肉鸡,”,),并且秘密地安置一个其可远程控制的代理程序(端口监督程序,demon)。,攻击准备:,安置代理,代理程序,DDoS,(分布式拒绝服务)攻击(,1,),74,3),攻击者使他的全部代理程序同时发送由残缺的数字包构成的连接请求送至目标系统。,攻击者,目标系统,发起攻击:,指令,攻击的代理程序,4),包括虚假的连接请求在内的大量残缺的数字包攻击目标系统,最终将导致它因通信淤塞而崩溃。,虚假的连接请求,DDoS,(分布式拒绝服务)攻击(,2,),75,缓冲区溢出(,buffer overflow,),从一个对话框说起,76,认识缓冲区溢出,【,引例,】,把,1,升的水注入容量为,0.5,升的容量中,第一次大规模的缓冲区溢出攻击是发生在,1988,年的,Morris,蠕虫,它造成了,6000,多台机器被瘫痪,损失在,$100 000,至,$10 000 000,之间,利用的攻击方法之一就是,fingerd,的缓冲区溢出。,77,认识缓冲区溢出,缓冲区溢出攻击已经占了网络攻击的绝大多数,据统计,大约,80%,的安全事件与缓冲区溢出攻击有关。,2003,年的“冲击波”病毒,是利用,windows,操作系统的,RPC,部分在通过,TCP/IP,处理信息交换时存在多个远程堆栈缓冲溢出问题引起的,溢出后可执行任意可执行代码。,2004,年“,Microsoft Windows,的,JPEG,处理时(,GDI,)的缓冲区溢出漏洞”的攻击,溢出后也是可执行任意可执行代码。,2005,年又出现针对“,Microsoft Windows,即插即用缓冲区溢出漏洞”的攻击,溢出后也是可执行任意可执行代码。,2006,年“,Microsoft Windows Server,服务远程缓冲区溢出漏洞”。,2007,年“,Microsoft Windows,的,DNS RPC,缓冲区溢出漏洞”。,78,Windows,系统的内存结构图,+-+,低端地址,|,+-+,|,|,动态数据区,|,|,+-+,|,+-+,|,代码区,|,+-+,|,静态数据区,|,+-+,|,+-+,高端地址,代码段:数据只读,可执行。,数据段:静态全局变量。,堆栈段:动态的全局变量,局部变量,函数调用,缓冲区是一块连续的计算机内存区域。在程序中,通常把输入数据存放在一个临时空间内,这个临时存放空间被称为缓冲区,也就是所说的堆栈段。,79,缓冲区溢出的基本原理(,1,),缓冲区的大小是程序执行时固定申请的。然而,某些时候,在缓冲区内装载的数据大小是用户输入的数据决定的。程序开发人员有时会疏忽了对用户输入的这些数据作长度检查,由于用户非法操作或者错误操作,输入的数据占满了缓冲区的所有空间,且超越了缓冲区边界延伸到缓冲区以外的空间。我们称这个动作为,缓冲区溢出,。,往往缓冲区溢出会覆盖了其他在内存空间中的数据。如果被缓冲区溢出所覆盖的数据是一些程序执行时所必须的固定值的数据,例如函数的返回地址,那么该程序执行过程必定会发生改变,严重的甚至会导致程序、系统崩溃。,80,缓冲区溢出的基本原理(,2,),缓冲区溢出是由于系统和软件本身存在脆弱点所导致的。,例如目前被广泛使用的,C,和,C+,,这些语言在编译的时候没有做内存检查,即数组的边界检查和指针的引用检查,也就是开发人员必须做这些检查,可是这些事情往往被开发人员忽略了;标准,C,库中还存在许多不安全的字符串操作函数,包括:,strcpy(),,,sprintf(),,,gets(),等等,从而带来了很多脆弱点,这些脆弱点也便成了缓冲区溢出漏洞。,81,Windows,缓冲区溢出实例分析,/*,*,文件名:,overflow.cpp,*,功能:演示,Windows,缓冲区溢出的机制,*,/,#include,#include,char bigbuff=aaaaaaaaaa;/10,个,a,void main(),char smallbuff5;/,只分配了,5,字节的空间,strcpy(smallbuff,bigbuff);,82,缓冲区溢出攻击,上述的缓冲区溢出例子中,只是出现了一般的拒绝服务的效果。但是,实际情况往往并不是这么简单。当黑客精心设计,使得程序发生溢出之后改变正常流程,转而去执行他们设计好的一段代码(也即,ShellCode,),攻击者就能获取对系统的控制,利用,ShellCode,实现各种功能,比如,监听一个端口,添加一个用户,等等。这也正是缓冲区溢出攻击的基本原理。,目前流行的缓冲区溢出病毒,如冲击波蠕虫、震荡波蠕虫等,就都是采用同样的缓冲区溢出攻击方法对用户的计算机进行攻击的。,83,流行的缓冲区溢出攻击病毒,(1),冲击波 利用漏洞:,RPC,缓冲区溢出,135/TCP,(2),震荡波 利用漏洞:,LSASS,漏洞,1025/TCP,(3),极速波 利用漏洞:,UPNP,漏洞,445/TCP,(4),高波利用多种漏洞,非常危险,84,防范缓冲区溢出攻击的有效措施,通过操作系统设置缓冲区的堆栈段为不可执行,从而阻止攻击者向其中植入攻击代码。,例如:微软的,DEP,(数据执行保护)技术(,Windows XP SP2,、,Windows Server 2003 SP1,及其更高版本的,Windows,操作系统中),强制程序开发人员书写正确的、安全的代码。,目前,可以借助,grep,、,FaultInjection,、,PurifyPlus,等工具帮助开发人员发现程序中的安全漏洞。,通过对数组的读写操作进行边界检查来实现缓冲区的保护,使得缓冲区溢出不可能出现,从而完全消除了缓冲区溢出的威胁。,常见的对数组操作进行检查的工具有,Compaq C,编译器,,Richard Jones,和,Paul Kelly,开发的,gcc,补丁等。,在程序指针失效前进行完整性检查。,总之,要想有效地预防由于缓冲区溢出的漏洞产生的攻击:,对于程序开发人员来说,就是提高安全编程意识。,对于系统管理员来说,要及时发现漏洞,对系统和应用程序及时升级、打补钉。,85,黑客发展的历史,网络威胁,网络扫描,网络监听,常用黑客技术的原理(,木马、缓冲区溢出等,),黑客攻击的防范,小结,86,
展开阅读全文