1、网络攻击原理及技术网络攻击原理及技术n5.1 网络攻击网络攻击5.1.1 网络攻击的概念5.1.2网络攻击的一般流程5.1.3网络攻击的常用手段5.1.4获取系统信息的常用工具n5.2 网络侦察技术网络侦察技术5.2.1 网络口令破解5.2.2 网络安全扫描及扫描器设计5.2.3 网络监听5.2.4 网络嗅探器设计示例n5.3 DoS/DDoS攻击攻击5.3.1拒绝服务攻击5.3.2 分布式拒绝服务攻击n5.4 缓冲区溢出攻击缓冲区溢出攻击5.4.1 何谓缓冲区溢出5.4.2 缓冲区溢出攻击原理分析5.4.3 缓冲区溢出攻击代码的构造5.4.4 缓冲区溢出攻击的防范n5.5 欺骗攻击及其防御欺
2、骗攻击及其防御5.5.1 Web欺骗攻击5.5.2 ARP欺骗攻击n5.6 端口管理技术端口管理技术5.6.1 端口及其服务5.6.2 端口的关闭与开放5.1 网络攻击5.1 网络攻击5.1.1 网络攻击的概念2.网络攻击的类型(1)按照ITU-T X.800和RFC 2828的定义进行分类根据ITU-T X.800和RFC 2828对网络安全攻击进行的分类,有被动攻击和主动攻击两种类型。(2)按照网络攻击方式进行分类目前,常按照网络攻击方式将其分为读取攻击、操作攻击、欺骗攻击、泛洪攻击、重定向攻击以及Rootkits技术混合型攻击等。(3)按照攻击对象或采用的攻击手段进行分类按照攻击对象将网
3、络攻击归纳为服务攻击与非服务攻击两大类型。按照所采用的攻击手段将网络攻击划分为系统入侵类攻击、拒绝服务攻击、缓冲区溢出攻击、欺骗攻击等类型。5.1 网络攻击5.1.1 网络攻击的概念3.网络攻击的目的任何网络攻击总有一定的目的。了解网络攻击意图,可以有针对性的加强防范。1)挑战,这种攻击是为了显示自己的能力,进行技术挑战或是好奇。2)窃听敏感数据、获取机密信息,包括科技情报、个人资料、金融账户和系统信息等。3)恶作剧,这种攻击的目的是恶作剧或戏弄别人,破环网络正常服务,使网络瘫痪或停止网络服务,包括修改或删除重要数据、修改数据记录、下载敏感数据、删除用户账号等。4)经济利益,攻击的动机与目的是
4、篡改有关商业机密数据,非法获取经济利益。5)打击报复,这种攻击的目的是打击报复、泄私愤,蓄意制造混乱等。5.1 网络攻击5.1.2网络攻击的一般流程1.信息收集信息收集是指通过各种方式获取所需要的信息,比如目标系统使用的操作系统、管理员账号等,属于攻击前的准备阶段,也称之为踩点。n(1)确定攻击目的n(2)收集攻击目标信息2.实施攻击作为破坏性攻击,只需利用软件工具发动攻击即可;作为入侵性攻击,往往要利用收集到的信息,找到其系统安全漏洞,然后再利用漏洞获取一定的权限。n(1)获取访问权限n(2)提升访问权限5.1 网络攻击5.1.2网络攻击的一般流程3.隐蔽攻击行为攻击者在获得系统最高管理员权
5、限之后,可以随意修改系统上的文件。然而一旦入侵系统,就必然会留下痕迹;所以在入侵系统之后,攻击者大多都会采取隐藏技术来消隐自己的攻击行为。(1)隐藏连接(2)隐藏进程(3)隐蔽文件4.创建后门一次成功的入侵通常要耗费攻击者的大量时间与精力,为了长期保持对已攻系统的访问权,在退出之前攻击者常在系统中创建一些后门,以便下次入侵。木马就是创建后门的一个典型范例。5.清除攻击痕迹攻击者为了隐蔽自身,一般在入侵后需要清除登录日志以及其它相关的日志。5.1 网络攻击图5-1网络攻击流程示意图5.1 网络攻击5.1 网络攻击5.1.4 获取系统信息的常用工具1.ping命令(测试网络连接、信息发送和接收状况
6、)2.ipconfig命令(显示当前TCP/IP配置的网络参数)3.arp命令(能够查看本机ARP缓存中的当前内容)stat命令(显示当前存在的TCP连接、路由表、与IP、TCP、UDP和ICMP协议相关的统计数据等。)5.tracert命令(路由跟踪实用程序,用来显示数据包到达目标主机所经过的路径)6.nslookup命令(解析一个域名所对应的IP地址,一般使用方法为:nslookup 主机域名)5.2 网络侦察技术5.2 网络侦察技术5.2.1 网络口令破解3.常见的口令破解工具1)L0phtCrack。能够从Windows NT/2000工作站、网络服务器、主域控制器、Active Di
7、rectory上获取口令,或者从线路上嗅探到的加密Hash值破解出用户口令,提供了字典攻击、组合攻击、强行攻击等多种口令破译方法。http:/提供下载。2)NTSweep。可以在http:/下载。它能通过防火墙,也不需要任何特殊权限来运行,缺点是运行速度比较慢。3)John the Ripper。快速口令破解软件,支持多种操作系统,如UNIX、DOS、Windows和Open VMS等。它的主要功能是检查UNIX系统的弱口令,支持几乎所有的UNIX平台上经crypt函数加密的Hash口令类型,也支持Kerberos AFS和Windows2000/XP LM Hash函数等。下载地址为http
8、:/ 网络侦察技术5.2.2 网络安全扫描及扫描器设计1.网络安全扫描的分类图5-2网络安全扫描的分类 5.2 网络侦察技术5.2.2 网络安全扫描及扫描器设计2.网络安全扫描原理及技术 网络安全扫描的基本原理是:通过向远程或本地主机发送探测数据包,获取主机的响应,并根据反馈的数据包,进行解包、分析,从而发现网络或主机的配置信息、TCP/UDP端口的分配、提供的网络服务、服务器的具体信息等。(1)ping扫描技术ping扫描是判断主机是否“活动”的有效方式,目的就是确认目标主机的IP地址,即扫描的IP地址是否分配给了主机。(2)TCP/UDP端口扫描技术端口扫描的目的是找出目标主机上开放的端口
9、和提供的服务,为漏洞检测做好准备。(3)操作系统辨识辨识操作系统(OS)是非常必要的,因为许多安全漏洞与操作系统有关。辨识操作系统的目的是,得到所扫描目标主机操作系统的具体信息,以及提供服务的计算机程序的具体信息。5.2 网络侦察技术5.2.2 网络安全扫描及扫描器设计(4)漏洞扫描技术网络安全人员和攻击者收集网络或主机信息的最后一步。从对攻击行为的分析和收集的漏洞类型来看,漏洞扫描绝大多数都是针对特定操作系统所提供的特定网络服务,也就是针对操作系统中某一个特定端口的。(5)防火墙规则探测探测防火墙规则的目的在于扫描后的入侵,或再次顺利进行扫描。这种技术采用类似于Trace Route的IP数
10、据包分析方法,来测定是否可以发送一个特定的包给位于过滤设备后的主机。可以测定防火墙上打开或允许通过的端口,并且测定带有各种控制信息的数据包是否能通过防火墙。更进一步,可以探测到位于数据包过滤设备后的路由器。5.2 网络侦察技术5.2.2 网络安全扫描及扫描器设计3.端口扫描器设计示例4.常用的网络安全扫描工具(1)网络漏洞扫描工具SuperScan(2)网络主机扫描工具Nmap(3)系统用户扫描工具GetNTUser(4)漏洞扫描工具X-Scan5.2 网络侦察技术5.2.3 网络监听1.网络监听原理在传输数据时,包含MAC地址的帧从网络接口卡(网卡)发送到物理线路上,如果局域网是由一条电缆连
11、接而成,则数字信号在电缆上传输,能够到达线路上的每一台主机。正常情况下,网络接口读入数据帧,将监听到的数据帧所包含的MAC地址与自己的MAC地址进行比较。如果数据帧中携带的MAC地址与自己的MAC地址相同,则将数据帧交给上层协议软件,也就是IP层,否则就将这个帧丢弃。5.2 网络侦察技术5.2.3 网络监听2网络监听器的组成计算机网络中的监听可以在任何位置进行,比如网关、路由器、或网络中的某一台主机,关键是监听器。一个监听器一般包含:1)网络硬件设备,如网卡、集线器、路由器等。2)监听驱动程序,用以截获数据流,进行过滤并把数据存入缓冲器。3)捕获驱动程序,直接控制网络硬件从信道上获取数据,并存
12、入缓存器。4)缓存器,即用来存放捕获到数据的容器。5)实时分析程序,用来实时分析数据帧中所包含的数据,目的是检测网络性能及故障。6)解码程序,用于将接收到的加密数据进行解密;构造自己的加密数据包,并把它发送到网络。7)数据包分析器,用于对截获的数据包进行模式匹配和分析,从原始数据中提取出感兴趣的数据。5.2 网络侦察技术5.2.3 网络监听3.网络监听的实现方式(1)基于集线器的监听(2)基于交换机的监听(3)基于主机的网络监听(4)基于端口的网络监听(5)基于SNMP/RMON协议的进程监听5.2 网络侦察技术5.2.3 网络监听4.常用网络监听工具(1)Ethereal下载地址:http:
13、/ Pro(3)Kismet下载地址:http:/ 下载地址:http:/www.tcpdump.org/,http:/windump.polito.it/。5.2 网络侦察技术5.2.3 网络监听5.检测并防范网络监听(1)对可能存在的网络监听进行检测1)对于怀疑运行监听程序的主机,用正确的IP地址和错误的MAC地址ping,运行监听程序的主机会有响应。2)向网上发送大量不存在的MAC地址的包,由于监听程序要分析和处理大量的数据包会占用很多CPU资源,这将导致性能下降。3)使用反监听工具如antisniffer等进行检测。(2)对网络监听的防范1)从逻辑或物理上对网络分段。2)以交换式集线器
14、代替共享式集线器。3)使用加密技术。4)划分虚拟局域网(VLAN)。5.2 网络侦察技术5.3 DoS/DDoS攻击拒绝服务(DoS)攻击是一种破坏网络服务的攻击方式,其目的是使受害主机或网络无法及时处理外界请求,或无法及时回应外界请求。5.3.1拒绝服务攻击拒绝服务即Denial of Service(DoS)。形成DoS的攻击行为称为DoS攻击。它是指攻击者利用系统的缺陷,通过一些恶意的操作使得合法的系统用户不能及时得到应得的服务或系统资源,如CPU处理时间、存储器、网络带宽等。5.3 DoS/DDoS攻击5.3.1拒绝服务攻击1.拒绝服务攻击概述图5-7 DoS攻击的基本过程5.3 Do
15、S/DDoS攻击2.拒绝服务攻击的方式(1)针对网络连接的攻击用DoS攻击来中断网络连通性的典型实例是同步洪泛攻击(SYN Flooding)。图5-8 同步洪泛攻击过程5.3 DoS/DDoS攻击2.拒绝服务攻击的方式(2)利用目标自身的资源攻击攻击者可以利用目标主机系统自身的资源发动攻击,导致目标主机瘫痪。UDP洪泛(UDP Flooding)攻击就是这类攻击的一个典型实例。(3)消耗带宽攻击所谓消耗带宽攻击就是攻击者在短时间内发送大量指向目标主机的无用报文来消耗其所有可用带宽。通常,攻击者大多会选择使用ICMP Echo作为淹没目标主机的无用报文。Smurf攻击是这类攻击模式的一个典型实
16、例。5.3 DoS/DDoS攻击2.拒绝服务攻击的方式(4)其它方式的资源消耗攻击针对网络系统和协议本身存在的一些安全缺陷,也存在着相应的DoS攻击方式,1)垃圾邮件。攻击者利用邮件系统制造垃圾信息,甚至利用专门的邮件炸弹(Mail Bomb)程序,通过一台主机连续向同一地址大量发送电子邮件,耗尽接收者网络带宽及用户信箱的磁盘空间,使之无法使用。2)泪滴攻击(Tear Drop)。IP数据包在网络中传输时,由于沿途各个链路的最大传输单元不同,路由器常常会对IP数据包进行分组,并藉由偏移量字段作为重组的依据。通过加入过多或不必要的偏移量字段,使主机系统重组错乱,就可产生泪滴攻击。3)Land攻击
17、。将SYN包的源地址和目标地址都设置成某一个服务器地址后,会导致接收服务器向它自己的地址发送SYN+ACK消息,结果这个地址又发回ACK消息并创建一个空连接,每一个这样的空连接都将保留直到超时,即产生Land攻击。5.3 DoS/DDoS攻击5.3.2 分布式拒绝服务攻击1.DDoS攻击原理DDoS指借助于客户机/服务器作用模式,将多个计算机联合起来作为攻击平台,对一个或多个目标从远程遥控进行DoS攻击。图5-10 DDoS攻击体系示意图5.3 DoS/DDoS攻击5.3.2 分布式拒绝服务攻击1.DDoS攻击原理1)攻击者:攻击者所用的计算机是攻击主控台,可以是网络上的任何一台主机,也可以是
18、一个便携机。攻击者操纵整个攻击过程,向主控端发送攻击命令。2)主控端:主控端是指攻击者非法侵入并控制的一些主机,这些主机还分别控制大量的代理主机。主控端主机上安装了特定的程序,因此它们可以接受攻击者发送的特殊指令,并且可以把这些指令发送到代理主机上。3)代理端:代理端同样也是攻击者侵入并控制的一些主机,它们运行攻击程序,接受、运行主控端发来的指令。代理端主机是攻击的执行者,由它向攻击目标主机实际发起攻击。5.3 DoS/DDoS攻击5.3.2 分布式拒绝服务攻击2.常见的DDoS攻击方式(1)Trinoo攻击(2)TFN与TFN2K攻击(3)Stacheldraht攻击5.4 缓冲区溢出攻击5
19、.4.1 何谓缓冲区溢出缓冲区是程序运行期间,在内存中分配的一个连续的存储空间,用于存放各种类型的数据。所谓缓冲区溢出是指向固定长度的缓冲区写入超出预先分配长度的内容,造成缓冲区数据溢出,而覆盖了缓冲区相邻的内存空间。5.4 缓冲区溢出攻击5.4 缓冲区溢出攻击5.4.1 何谓缓冲区溢出2.内存分配运行一个编译好的程序时,计算机会在内存中开辟一段连续的内存块即缓冲区。缓冲区通常分为3个区域,从内存的低地址向高地址,分别是代码段、数据段(初始化数据段、未初始化数据段)和堆栈(堆段、栈段),它们在内存中的位置如图所示。5.4 缓冲区溢出攻击5.4.1 何谓缓冲区溢出3.缓冲区溢出攻击分类1)缓冲区
20、溢出攻击的方式与缓冲区属于哪个内存区域密不可分,因此,按照溢出位置可将缓冲区溢出分为栈溢出、堆溢出和BSS段溢出。2)按攻击者欲达到的目标分类,可以分为在程序的地址空间里植入适当的代码、通过适当的初始化寄存器和存储器从而控制程序转移到攻击者安排的地址空间去执行。3)按攻击目标分类可以分为攻击栈中的返回地址、攻击栈中保存的旧框架指针、攻击堆或BSS段中的局部变量或参数、攻击堆或BSS段中的长跳转缓冲区。不管哪种类型的缓冲区溢出攻击,所产生的后果都相同:利用它们以某种方式破坏进程的内存空间,进而控制程序执行流程。缓冲区溢出攻击的最终目标都是从漏洞中收集任何有用的信息以控制进程的执行。5.4 缓冲区
21、溢出攻击5.4.2 缓冲区溢出攻击原理分析1.基于栈的缓冲区溢出2.基于堆的缓冲区溢出3.基于BSS的缓冲区溢出5.4 缓冲区溢出攻击5.4.3 缓冲区溢出攻击代码的构造无论是哪一种溢出攻击,前提条件都必须存在一个有漏洞的缓冲区,通过溢出该缓冲区,改写其相邻区域的数据。例如,改写诸如函数返回地址、指针、函数指针或者长跳转缓冲区,这样才可以使程序流程发生改变。1.缓冲区溢出攻击代码结构攻击者对系统发起攻击,其目的是要获取系统权限。利用缓冲区溢出漏洞时,通常的做法是将函数的返回地址指向一段构造好的代码,常称其为shellcode。运行shellcode 后,就可以得到系统的一个shell。如果存在
22、漏洞的程序是以root权限运行的,则攻击者就能得到具有root权限的shell,从而完全控制目标主机系统。5.4 缓冲区溢出攻击缓冲区溢出攻击是否成功,关键在于植入代码。植入代码一般由shellcode、填充数据(用N表示)、返回地址(用RA 表示)三个部分按照一定方式构造而成。一段典型的缓冲区溢出攻击植入代码如图5-17所示,其中,RA是用于覆盖存在漏洞的函数返回地址,将程序跳转到shellcode 处继续执行;N为一段没有实际用途的空指令,常称为seledge。5.4 缓冲区溢出攻击5.4.3 缓冲区溢出攻击代码的构造(1)shellcode shellcode是实施攻击所要植入的攻击代码
23、的核心部分,其功能是为攻击者提供主机系统的一个shell。(2)填充数据编写的shellcode能否得到执行,关键是让覆盖了的函数地址指向shellcode在堆栈中的入口地址。由于攻击者不能够准确的估计出shellcode在其堆栈中的位置,为了提高shellcode的命中率,往往需要在shellcode的前面安排一段填充数据(seledge)用于占位。(3)定位shellcode的返回地址在植入的攻击代码中必须存在一段返回地址RA,以便将程序跳转到指定的位置继续运行。返回地址是指Shellcode的入口地址。如果希望目标主机改变原来的程序执行流程,转向执行Shellcode,就必须设法用She
24、llcode的入口地址覆盖某个跳转指令。5.4 缓冲区溢出攻击5.4.4 缓冲区溢出攻击的防范1采用非执行的缓冲区非执行的缓冲区是指通过使被攻击程序的数据地址空间不可执行,使得攻击者不可能执行缓冲区中被植入的攻击程序代码。2强制编写正确的代码编写正确、安全的代码是避免缓冲区溢出攻击的根本途径。程序开发人员在所有拷贝数据的地方进行数据长度和有效性检查.3利用编译器的边界检查实现对缓冲区的保护.4对程序中的缓冲区溢出漏洞进行静态/动态分析.5.5 欺骗攻击及其防御5.5 欺骗攻击及其防御5.5.1 Web欺骗攻击Web欺骗能够成功的关键是在受害者与其它Web服务器之间设立攻击者的Web服务器,这种
25、攻击在安全问题中称为“来自中间的攻击”。1虚假的链接与虚假的页面攻击者通过改写Web页中的URL地址,伪造网页等,使之指向攻击者的Web服务器而不是真正的Web服务器。假设,攻击者所处的Web服务器是www.attacker.org,攻击者通过在所有链接前增加http:/www.attacker.org来改写URL。例如,将http:/变为http:/www.attacker.org/http:/。当用户点击改写过的http:/(可能它仍然显示http:/),但却进入了http:/www.attacker.org1)用户点击经过改写后的http:/www.attacker.org/http:/
26、;2)http:/www.attacker.org向http:/请求文档;3)http:/向http:/www.attacker.org返回文档;4)http:/www.attacker.org改写文档中的所有URL;5)http:/www.attacker.org 向用户返回改写后的文档。5.5 欺骗攻击及其防御5.5.1 Web欺骗攻击2SQL注入可以采用如下方式注入:http:/ and user0服务器运行“Select*from表名where 字段=666 and user0,显然,这个查询语句肯定会出错,通常会显示如下错误信息:错误类型:Microsoft OLE DB Provi
27、der for ODBC Drivers(0 x80040E07)MicrosoftODBC SQL Server DriverSQL Server将nvarchar值“junhua”转换为数据类型为int的列时发生语法错误。show.asp,第39行由这个出错信息可以获知:该网站使用的数据库是Microsoft SQL Server,采用ODBC连接方式,连接账号为junhua。5.5 欺骗攻击及其防御5.5.1 Web欺骗攻击3.网络钓鱼网络钓鱼(Phishing)是近几年新兴的一种攻击方式。“Phishing”一词由“Fishing”和“Phone”组合而来。由于黑客起初是以电话作案,所
28、以用“Ph”来取代“F”,创造了“Phishing”,同时有“愿者上钩”之意。网络钓鱼通常采用发送大量欺骗性垃圾电子邮件和伪造Web站点等来进行诈骗活动。5.5 欺骗攻击及其防御5.5.1 Web欺骗攻击4.Web欺骗的防御措施尽管攻击者在进行Web欺骗时想方设法不留蛛丝马迹,但还是能够发现一些攻击痕迹的。通过阅读HTML源文件,可以发现被改写的URL;通过单击浏览器中的文件|属性命令,也能了解当前URL地址的一些信息。此处所提供的URL是真实的URL地址,据此可判断出是否已被Web欺骗。防御Web欺骗的方法最好是禁止浏览器中的JavaScript功能,使攻击者难以改写页面上的信息;同时确保浏
29、览器的连接状态栏可见,并时刻观察状态栏的位置信息有无异常。另外,除非特别需要,建议禁止使用JavaScript、ActiveX以及Java提供的越来越丰富的强大功能,因为它们常被攻击者作为攻击活动的掩护手段。5.5 欺骗攻击及其防御5.5.2 ARP欺骗攻击1.ARP欺骗原理所谓ARP欺骗就是利用ARP协议的安全漏洞,通过向目标主机发送伪造的ARP请求或应答报文,使目标主机将数据报文发送到攻击者指定的计算机上去。ARP欺骗的核心思想就是向目标主机发送一个伪造的源IP到MAC地址映射的ARP应答,使目标主机收到该应答帧后更新其ARP缓存表,从而使目标主机将报文发送给错误的对象。5.5 欺骗攻击及
30、其防御5.5.2 ARP欺骗攻击1.ARP欺骗原理ARP欺骗过程:主机B向A发送ARP应答(请求)报文,将主机C的MAC地址映射为D;主机A正在(或准备)向C发送报文;主机A接收到B发送的ARP欺骗报文后将报文发给了D,D为任意主机。可见,利用ARP欺骗,攻击者使主机A发送给C的报文发送给了攻击者所指定的一台主机D,而主机A却全然不知。5.5 欺骗攻击及其防御5.5.2 ARP欺骗攻击5.5 欺骗攻击及其防御5.5.2 ARP欺骗攻击3.实施ARP欺骗的攻击形式有多种ARP欺骗攻击形式,比较典型的是中间人攻击、IP地址冲突和篡改ARP缓存表。5.6 端口管理技术5.6.1 端口及其服务在网络通
31、信中所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口,它是TCP/UDP协议与应用进程之间通信的数据接口点。TCP/IP端口通过端口号来标记,端口号取值是065535之间的整数。客户机可以任意选择端口号,服务器则使用固定的标准端口号。1.端口的类型及分配使用如果按照端口号分布划分,可分为周知端口和动态端口两大类。1)周知端口。即常用的端口,其范围从01023。2)动态端口。所谓动态端口是指一般不固定分配给某一种服务,而是在102465535之间动态分配使用的端口。5.6 端口管理技术5.6.1 端口及其服务图5-21 端口连接示意图5.6 端口管理技术5.
32、6.1 端口及其服务2.端口的查看(1)用系统内置命令netstat查看端口状态对于Windows 2003/XP系统,在命令提示符下使用“netstat-an”查看系统端口状态,可以列出系统正在开放的端口号及其状态(2)使用端口监视类扫描软件5.6 端口管理技术5.6.1 端口及其服务3.端口的管理攻击者一般通过系统的端口漏洞来入侵系统,因此加强对端口的管理是保障网络安全的一项重要工作。通常可以采用以下两种方法管理端口。(1)用系统内置的管理工具TCP/IP筛选管理端口。(2)利用第三方软件管理端口防火墙是管理端口最常用的第三方软件。其实,防火墙就是一整套制订好的IP地址及其端口的访问规则,用户可以通过改变这些规则来打开和关闭指定的端口。5.6 端口管理技术5.6.2 端口的关闭与开放1.关闭或开启端口在Windows 2003 Server/Windows XP中,可以关闭一些不常用的服务,譬如关闭Telnet服务端口,其操作步骤为:打开控制面板,双击管理工具,双击服务选项。接着在打开的服务窗口中找到并双击Telnet服务。