网络攻击原理与技术简介
最近,有网友想知道《网络攻击原理与技术》一书。所以我们学习和汇编了相关的资料,与大家分享。网络攻击原理与技术
基本信息
作者王航
Page 430
43元
出版社科学出版社
出版时间2004-4
平装
书号9787030127396
内容介绍
这本书描述了利用计算机网络攻击和入侵的原理和相关技术,整体结构分为两个部分:对技术文章第八章第一章,关于各种流行的网络攻击和防御的相关对策,包括调查网络技术收集目标信息,非法收购或提升的访问目标系统,系统密码破解后门,缓冲区溢出和格式化字符串攻击,以及对目标系统的可用性,如拒绝服务攻击的破坏,常见的安全漏洞和不安全的编程问题进行了分析,然后介绍一些常用的软件工具与Windows系统取证;到第十一章第九章为应用篇,为各种实际系统的攻击方法,本文介绍了Windows NT,9x / / / xpnovell 200o,UNIX,NetWare操作系统的攻击,使用远程访问网络设备故障访问控制机制的网络攻击方法的分析,最后讨论了如何攻击常见的应用软件,如远程控制软件、网络服务软件、浏览器、邮件客户端、聊天软件等,同时引入各种攻击方法,并给出了一些相关的预防措施和安全建议,并列出详细的参考资料,供读者指。
本书可作为计算机、通信、信息安全、密码学等研究生和研究生的参考资料,也可供从事相关领域的科研人员和工程人员参考。
接下来学习小编辑器来介绍常用的网络攻击原理。
1.1 TCP SYN拒绝服务攻击
在一般情况下,一个TCP连接的建立需要三次握手,那是:
1,设置发起者向目标计算机发送TCP SYN消息;
2、收到SYN报文后,目标计算机上创建连接的TCP控制块(TCB)在内存中,然后发送一个TCP ACK消息的引发剂,引发剂的反应等。
3,发起人接收TCP ACK消息,然后响应ACK消息,从而建立TCP连接。
使用此过程,一些恶意攻击者可以执行所谓的TCP拒绝服务攻击:
1,攻击者向目标计算机发送TCP SYN消息;
2。目标计算机接收到该消息后,建立TCP连接控制结构(TCB),并回应一个ACK,等待引发的反应;
3,发起者对ACK消息不响应目标计算机,导致目标计算机处于等待状态。
可以看出,如果目标计算机接收TCP SYN报文的数量,但是没有收到ACK响应第三的引发剂,会在这样一个尴尬状态的半连接如果多了,你会把目标计算机的资源(一般情况下TCB和TCB,控制结构是有限的),筋疲力尽,无法响应正常的TCP连接请求。
1.2 ICMP洪水
在正常情况下,为了诊断网络,一些诊断程序,如ping,会发出ICMP响应请求消息(ICMP回送)。接收的ICMP回声后,接收计算机会回应一个ICMP回送答复消息。这个过程需要CPU处理,在某些情况下也会消耗大量的资源,例如当处理片。如果攻击者发送大量的ICMP回送消息到目标计算机(生成ICMP洪水),然后目标计算机会忙于处理这些响应的数据包,而无法继续处理其他网络的数据包,也就是拒绝服务攻击(DoS)。
1.3洪水
这个原理类似于ICMP洪水。攻击者向目标计算机发送大量UDP消息,导致目标计算机处理这些UDP数据包,无法继续处理正常数据包。
1.4端口扫描
根据TCP协议规范,当计算机接收到TCP连接以建立请求消息(TCP SYN)时,执行这样的过程:
1、如果请求的TCP端口是开放的,它对一个TCP ACK消息并建立一个TCP连接控制结构(TCB)。
2,如果请求的TCP端口未打开,响应TCP RST(TCP报头中的RST标志设置为1)消息,并告诉发起计算机端口未打开。
因此,如果IP协议栈接收到UDP消息,请执行以下处理:
1,如果消息的目标端口是打开的,UDP消息将被发送到上层协议(UDP),而不响应任何消息。
2,如果消息的目的端口未打开,就会向发起者发送一个ICMP无法到达的消息,该消息告诉发起者UDP消息的端口是不可访问的。
根据这个原理,攻击者计算机可以发送一个合适的消息来确定目标计算机的TCP或UDP端口是开放的。
1,将端口号从0发送到TCP SYN或UDP消息(端口号是一个16位数字,所以最大值是65535,数量非常有限);
2,如果接收到此TCP消息的RST消息,或者UDP消息的ICMP不可到达消息,则表明该端口未打开;
3,相反,如果接收到对SYN SYN消息的ACK消息,或者没有接收到UDP ICMP消息的任何消息,则TCP端口是打开的,UDP端口可能会打开(因为一些实现可能无法响应ICMP无法到达的消息,即使UDP端口未打开)。
这将继续,很容易确定哪些TCP或UDP端口对目标计算机开放,然后攻击端口特定数量的下一次攻击,这就是所谓的端口扫描攻击。
1.5层ip消息攻击
为了传送一个大的IP报文,IP协议栈需要段的IP数据包根据链路接口MTU。它可以通过在适当的IP报头中填充补丁指示符字段并接收计算机来轻松地组装IP片段包。
当处理这些碎片包,目标计算机将缓存数据包的第一块然后等待后续的碎片信息,这将消耗内存的一部分和一些IP协议栈的数据结构。如果攻击者发送一个目标计算机的片段信息,而不是把所有的碎片,所以攻击者的电脑将等待(直到一个内部定时器的时间),如果攻击者发送大量碎片,目标将消耗计算机资源,从而导致相应正常的IP报文,这是一种DoS攻击。
1.6个SYN位和鳍位同时设置。
在TCP消息的头部,有几个标志字段:
1、SYN:连接生成一个标志,TCP SYN消息是将此标志设置为1,以请求建立连接;
2,应答标记,在TCP连接中,除了第一个消息(TCP SYN),所有消息都设置为最后一条消息的对应消息。
3,鳍端标记,当计算机接收带有鳍标志的TCP消息时,TCP连接将被拆除。
4,RST标记:当IP协议栈接收到目标端口上不存在的TCP消息时,它将响应由RST标志设置的消息;
5、PSH:通知协议栈提供的TCP数据的superprogram尽快。
通常,SYN标志(连接请求标志)和FIN标志(连接拆除标志)不会出现在同一time.rfc TCP报文也没有指定IP协议栈处理畸形数据包,这样,每个操作系统协议栈处理这样一个消息的接收不同的是,攻击者可以使用此功能,设置SYN和FIN同时发出的信息,以确定故障的操作系统的类型,然后根据操作系统进行进一步的攻击。
1.7无任何标志的TCP消息攻击
正常情况下,任何TCP报文将至少五分的SYN,鳍,ACK、RST和PSH。第一个TCP消息(TCP连接请求消息)被设置为SYN标志,随后的消息被设置为ACK标志。它没有针对TCP消息的过程,没有任何标志。因此,如果这样的协议栈接收到这样的消息,它可能会崩溃。攻击者使用此特性攻击目标计算机。
1.8在没有ACK标志的鳍标志上设置TCP消息攻击
正常情况下,ACK标志除了第一消息设置(SYN报文),所有的信息设置,包括TCP连接拆除的消息(FIN标志设置消息)。然而,一些攻击者可以发送FIN报文到目标计算机和ACK标志而不是TCP标志,这可能导致目标计算机崩溃。
1.9平的死亡
TCP / IP规范要求IP报文的长度在一定范围内(例如,0-64k),但一些攻击计算机可以发送超过64K长度ping消息到目标计算机,导致目标计算机的IP协议栈崩溃。
1.10地址猜测攻击
类似的端口扫描攻击,攻击者可以确定是否通过发送大量的ICMP消息,改变目标地址目标计算机的存在。如果对应的ECMP回送答复消息的接收,目标计算机是可以攻击电脑旁边。
1.11泪滴攻击
对于一些大的IP包,它需要被发送,这是符合要求的链路层的MTU(最大传输单元)。例如,一个4500字节的IP数据包已被分成三个IP包当MTU是1500的链路传输。
在IP报头中,有一个偏移字段和一个补丁标记(MF)。如果MF标志设置为1,那么表面的IP数据包是一个大的IP数据包的一个片段,其中偏移字段指示该片段的位置在整个IP包。例如,一个4500字节的IP数据包碎片(MTU 1500),和偏置场在三片段值依次为:015003000。这样的接收机成功组装基于信息包的IP地址。
如果攻击者破坏了正常情况,将偏移字段设置为不正确的值,也就是说,可能出现巧合或断线,这可能导致目标操作系统崩溃。例如,将上述偏移量设置为013003000。这就是所谓的泪滴攻击。
1.12带有源路由选项的IP消息
为了实现一些额外的功能,IP协议规范向IP报头添加了一个选项字段,它可以选择性地携带一些数据,表示中间设备或路由器或最终目标计算机对这些IP分组进行额外处理。
源路由选项就是其中之一。从名字上,我们可以看到,源路由选项的目的是指导中间设备(路由器)如何转发,数据包,,清楚地表明该消息的传输路径。例如,如果一个IP信息是明确通过三路由器R1,R2和R3,它可以清楚地表明在源路由选项的三个路由器的接口地址,所以无论怎样的路由表的三路由器,IP数据包将通过R1、R2和R3在转。和那些与在传输过程中,IP报文的源路由选项,源地址的改变,目标地址是不断变化的,因此,通过设置适当的源路由选项,在一种可以伪造有效的IP地址,并为网络忽悠。
1.13带有记录路由选项的IP消息
记录路由选项也是一个IP选项。当承载IP消息时,路由器在传递路由器后,将其接口地址放在选项字段中。这样,当消息到达目的地时,消息的整个路径被记录在选项数据中。
通过这样的消息,很容易判断消息的路径,以便攻击者可以容易地发现攻击的脆弱性。
1.14未知协议字段的IP消息
在IP报头中,有一个协议字段,它指示IP消息携带的协议。例如,如果字段值为1,则表示IP消息承载ICMP消息,如果为6,则为TCP等。当前,所赋字段的值小于100。因此,具有超过100个协议字段的IP消息可能是非法的。这样的消息可能会破坏计算机操作系统的某些协议栈。
1.15 IP地址欺骗
在一般情况下,路由器转发数据包时,根据数据包的目的地,只检查路由表,不管源地址信息是什么,它可能面临一种危险:如果攻击者发送一个消息到目标计算机,和源地址的分组填写IP地址第三方,所以在计算机的消息到达目标,应对毫无知觉的第三方计算机目标计算机的可能。这就是所谓的IP地址欺骗攻击。
比较著名的SQL Server蠕虫病毒就是利用了这个原理。病毒(可以理解为一个攻击者)发送运行SQL Server解析服务服务器解析服务UDP报文的源地址的消息,也填写运行SQL Server的计算机分析程序(SQL Server 2000版本)的服务器,这是由于在SQL Server解析服务,可能使UDP报文往复两服务器之间的一个bug,导致服务器或网络瘫痪。
1.16 WinNuke攻击
作为一种基本的网络资源访问接口,接口广泛应用于文件共享,打印共享,进程间通信(IPC),以及不同操作系统之间的数据交换。一般来说,NetBIOS在LLC2链路协议的运行,是一种基于组播的网络访问接口。为了在TCP / IP协议栈的实现NetBIOS,RFC提供了一系列的交互标准,以及几个常用的TCP / UDP端口:
139的TCP端口:NetBIOS会话服务;
137的UDP端口:NetBIOS名字服务;
136的UDP端口:数据报服务。
Windows操作系统的早期版本(Win95 / 98 / NT)网络服务(文件共享)是建立在顶部的接口,因此,操作系统将开放139个港口(Windows 2000 / XP / 2003,为了兼容TCP / IP功能,开放139端口实现NetBIOS的最新版本)。
WinNuke攻击是Windows操作系统中的漏洞利用,139端口发送一些承载TCP带(OOB)的数据包,但这些攻击包是不同的从正常携带OOB数据消息的指针字段的实际位置和数据不匹配,有这样的一种巧合,Windows操作系统及时处理这些数据,会崩溃。
1.17对地攻击
对地攻击利用的三次握手过程建立的TCP连接,并发送一个TCP SYN报文到目标计算机连接到请求消息并完成对目标计算机进行攻击,不像正常的TCP SYN报文,对陆攻击报文的源IP地址和目的IP地址同样的,与目标计算机的IP地址。收到SYN报文后,目标计算机发送一个ACK消息到消息的源地址,并建立一个TCP连接控制结构(TCB),和消息的源地址是自己的,所以ACK消息发送给自己。在这这样,如果一个攻击者发送足够的同步信息,在目标计算机的TCB可以前难点分析难点分析精疲力竭而没有最终的服务。这也是一个DoS攻击。
1.18脚本/ ActiveX攻击
脚本是一个可执行的脚本,通常写一些脚本语言,如常见的java脚本,脚本等等。执行时,这些脚本需要一个特殊的译员翻译,翻译成计算机指令,并在本地计算机上运行。这种脚本的好处是,一小部分程序可以编写完成大量的功能。
脚本的一个重要应用是嵌入在网页中,执行静态网页标记语言(HTML)的某些功能无法执行,如本地计算,数据库查询和修改,以及系统信息的提取等。这些脚本提供方便和强大的攻击的攻击者以及功能方便和有效的方法。如果攻击者写一些脚本系统失效,然后嵌入在网页中,当页面被下载到本地计算机,则当前用户的权限来执行这些脚本,这样,当前用户没有权限,脚本可以用来破坏这些恶意脚本想象强。这就是所谓的脚本攻击。
ActiveX是一个控制对象,它建立在微软的组件对象模型(COM)上。com几乎是Windows操作系统的基础设施。它是很容易理解的,这些控制对象由属性和方法,方法和属性的一些操作,一些具体的数据。这个控制对象可以被加载的应用程序和访问的方法或属性,它执行一些特定的功能。可以说,COM提供了二进制兼容模式(所谓的二进制兼容性,这是指规划模块和编译环境的电话,甚至操作系统)。但是请注意,这个对象无法控制他们的执行,因为它没有自己的进程空间,而是由其他的加载过程,调用的方法和属性,它在这时,这些控件将运行在加载过程中,类似的可加载模块和操作系统,如动态链接库。
ActiveX控件可以嵌入在网页中,当下载这些页面到本地浏览器,因此也下载嵌入的ActiveX控件,这些控件,可以运行在本地浏览器进程空间(ActiveX空间没有自己的进程空间中,只有通过其他进程,因此,当前用户加载和调用)多大,破坏性的ActiveX有很多。如果恶意攻击者将一个含有恶意代码的ActiveX控件,然后嵌入在网页中,它将由浏览用户破坏,其破坏是非常大的。这就是所谓的ActiveX攻击。
1.19 Smurf攻击
ICMP回送请求包用于诊断网络。当一台计算机收到这样的消息,它会回应一个ICMP回送答复消息的源地址。一般来说,电脑是不是检查回应请求的源地址,因此,如果一个恶意攻击者回声源地址设置为广播地址,这样在回复的恢复电脑,将广播地址作为目的地址,以便在所有计算机上的本地网络必须处理这些广播消息。如果攻击者发送回应请求的次数足够多,产生的回复广播消息可能淹没整个网络。这就是所谓的Smurf攻击。
除了将回声消息的源地址设置到广播地址之外,攻击者还可以将源地址设置为子网广播地址,以便子网所在的计算机可能受到影响。
1.20虚拟终端(VTY)穷举攻击
这是对网络设备(如路由器、交换机等)的攻击,为了方便远程管理,这些网络设备通常设置一些telnet用户接口,即用户可以通过telnet管理设备。
一般来说,这些设备的远程用户接口的数量是有限的,例如,5或10。因此,如果一个网络设备设置5或10的Telnet连接攻击者,设备远程管理界面是最好的,所以如果远程管理这些设备的合法用户,它会因为telnet连接资源的占用和破坏。
1.21路由协议攻击
为了在网络设备之间交换路由信息,常常会出现一些动态路由协议。这些路由协议可以执行的功能,如路由表的建立,路由信息的分发等。常见的路由协议RIP,OSPF,IS-IS,BGP等路由信息,管理方便的交货的同时路由协议,还有一些不足,如果使用路由协议对这些权限的攻击者,网络上的攻击,网络中的设备可能会导致路由表(可导致足网络中断障碍),网络设备消耗了大量的资源,甚至导致网络设备瘫痪。
下面是一些常见路由协议的攻击和原理。
1.21.1攻击RIP协议
RIP路由信息协议,,通过周期性(一般30s)路由更新信息来维护路由表,运行RIP路由协议的路由器的电脑,如果从一个接口收到的路由更新消息,它会分析其中包含的路由信息,并与自己的路由表进行比较,如果该路由器的路由信息比自己的主人更有效,它将路由信息的路由表。
这样,如果攻击者将人工构建的破坏性路由更新消息发送给运行RIP协议的路由器,则很容易导致路由器的路由表处于无序状态,从而造成网络中断。
如果运行RIP路由协议的路由更新信息,使路由器攻击HMAC验证,这在很大程度上可以避免。
1.21.2 OSPF路由协议的攻击
OSPF是开放最短路径优先协议,是一种广泛使用的链路状态路由协议,路由协议基于链路状态算法,具有收敛快、平滑、停止循环等优点。它非常适合大型计算机网络的使用,OSPF路由协议通过建立邻接关系来交换路由器的本地链路信息,形成整个网络的链路状态数据库。对于这个数据库,路由器可以很容易地计算路由表。
可以看出,如果相邻的路由器和网络攻击者冒充输入路由器之间的法律关系的建立,和链路状态广播大量的路由器攻击(数据单元组成的LSA、链路状态数据库),将引导路由器形成网络拓扑错误,导致在整个网络的路由表的障碍。导致整个网络瘫痪。
Windows操作系统(Win XP等)的当前版本实现了OSPF路由协议的功能,攻击者可以很容易地利用这些操作系统的路由功能模块进行攻击。
类似于RIP,OSPF报文验证如果启用(HMAC验证),这种攻击可以很大程度上避免。
1.21.3 IS-IS路由协议的攻击
IS-IS路由协议,到中间系统的中间系统,提出了ISO CLNS路由协议等网络服务。该协议是基于链路状态,和其原理类似于OSPF,IS-IS路由协议的扩展,可以运行在IP网络中选择IP报文,路由协议还收集了路由器的本地链路状态来完成链路状态数据库同步协议的手段。邻里关系是简单的比OSPF,它还省略了一些功能独特的OSPF协议,使得更容易和更可扩展。
协议攻击类似于OSPF,建立邻居关系,通过仿真软件和运行的路由器,然后传播到大量的链路状态路由器的攻击数据单元(LSP),可以导致整个网络路由器的链路状态数据库不一致(因为链路状态数据库中的所有路由器网络必须同步到相同的状态),从而导致路由表与实际情况不符,造成网络中断。
类似于OSPF,如果路由器上运行的路由协议IS-IS协议数据单元(PDU)HMAC验证功能,它可以在很大程度上避免这种攻击。
1.22攻击设备转移
为了合理地传输数据,一般有一些网络设备登记表的项目,如MAC地址表,ARP表,路由表,快速转发表,并根据更多的邮件头字段的表,如多层交换表,流量项目列表,这些表结构存储在该装置的局部存储器,或在芯片上的芯片记忆,和数量是有限的。如果攻击者可以发送一个合适的数据报,督促设备制造大量的这种形式,它会消耗设备的存储结构,所以它不能传输或崩溃通常。
遵循几种常见的表项,介绍了攻击的原则。
1.22.1攻击的MAC地址表
MAC地址表通常存在于以太网交换机上。以太网通过分析接收到的数据帧的目的MAC地址来检查本地MAC地址表,然后做出适当的转发决定。
这些MAC地址表通常是通过学习获得的。在接收到数据帧之后,交换机具有学习过程。
a)提取数据帧的源MAC地址和接收数据帧的端口号。
检查MAC地址表,看看MAC地址是否存在,以及相应的端口是否一致。
c)如果本地MAC地址表中不存在MAC地址,则创建MAC地址表项;
d)如果存在,相应的输出端口与接收数据帧的端口不一致,然后更新表。
如果存在,端口符合,下一步就完成了。
通过分析这个过程,我们可以看到,如果攻击者将大量不同的源MAC地址数据帧发送到交换机,交换机可能会学习填充本地MAC地址表,一旦MAC地址表溢出,交换机就不能继续学习正确的mac表项。其结果是大量的网络冗余数据可以产生,甚至开关也会崩溃。
用不同的源MAC地址构造许多数据帧是很容易的。
1.22.2攻击ARP表
ARP表是IP地址和MAC地址的映射关系表。实现IP协议栈的任何设备通常通过该表维护IP地址与MAC地址之间的对应关系,避免ARP数据解析,从而产生广播数据包对网络的影响:
1,积极分析。如果一台计算机想与另一台不知道MAC地址的计算机通信,则计算机自动发送ARP请求,并由ARP协议建立(两台计算机在同一IP子网)。
2,被动请求。如果计算机接收到计算机的ARP请求,它首先在本地建立相应的IP地址表和请求计算机的MAC地址。
因此,如果攻击者向同一设备(如三级交换机)发送大量ARP请求,如果攻击者发送不同的IP地址和MAC地址,则攻击设备可能会因为ARP缓存溢出而崩溃。
对ARP表项的一种可能攻击是误导计算机建立正确的ARP表。根据ARP协议,如果计算机接收到ARP请求消息,在满足以下两个条件时,将在ARP请求消息中用源IP地址和源MAC地址更新其自己的ARP缓存。
1,如果启动ARP请求的IP地址在自己的本地ARP缓存中;
2,请求的目标IP地址不是它自己的。
您可以举一个这个过程的例子,假设有三个计算机A、B和C,其中B正确地为A和C计算机建立了ARP表项。假设A是攻击者,此时,a发出一个ARP请求消息,它是用这种方式构造的:
1,源IP地址是C的IP地址,源MAC地址是A的MAC地址。
2,请求的目标IP地址是A的IP地址。
这台计算机B接收ARP请求消息后(在ARP请求消息广播到所有的网络设备可以接收),发现ARP项目B已经在它的缓存,但源MAC地址和MAC地址接收的请求不匹配,然后根据ARP协议,使用源MAC地址的ARP请求的(MAC地址)来更新自己的ARP表。
这样,在B的ARP混合中就出现了一个错误的ARP表项:C的IP地址对应于A的MAC地址,结果是B发送给C的数据由计算机A接收。
在1.22.3针对流工程攻击
为了加快前进的转发,一些网络设备,建立了所谓的流缓存。所谓流可以被理解为一个过程计算机和过程之间的其他计算机之间的数据流。如果是TCP / IP协议,它是所有的数据包是通过源IP地址五元组确定,目的IP地址,协议号、源端口号、目的端口号。
由五元组索引一般的流缓存表,每当设备接收到一个IP报文,将首先分析IP报头,五元组数据对应的提取,一个Hash运算,然后根据计算结果查询流缓存,如果查找成功,根据搜索结果如果搜索未处理,然后创建一个缓慢流动的物品,根据路由表查询结果检查路由表完成流缓存,然后对数据包的转发(具体转发是在项目创建流之前或之后的创作并不重要)。
可以看出,如果攻击者发送大量源IP地址或目标IP地址改变的数据包,它可能导致设备创建许多流项目,因为不同的源IP地址和不同的目标IP地址对应不同的流,这可能导致流缓存溢出。