网络攻击2——针对TCP/IP各个协议层的攻击

本文详细介绍了从物理层到应用层的各种网络攻击手段,包括物理设备破坏、MAC泛洪、IP欺骗、扫描类攻击、畸形报文、TCP/UDP流量攻击、DNS和HTTP/HTTPS流量攻击等。同时,提出了相应的防范策略,如源认证、会话检查、载荷检查、指纹学习等技术,旨在提升网络安全防护能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

物理层攻击

数据链路层攻击

网络层攻击

扫描类攻击

畸形报文攻击

IP欺骗攻击

特殊报文攻击

传输层攻击

扫描类攻击

畸形报文攻击

TCP流量攻击

TCP流量攻击类型 

TCP防范--源认证

TCP防范--会话检查

UDP流量攻击

UDP流量攻击类型 

UDP防范—关联防御

UDP防范--载荷检查与指纹学习

应用层攻击

DNS流量攻击

DNS流量攻击类型 

攻击防范—源认证方式

HTTP/HTTPS流量攻击

HTTP/HTTPS流量攻击类型 

攻击防范—源认证方式

Web攻击


物理层攻击

物理设备破坏

直接破坏网络中的各种物理设施(服务器、交换机、路由器、网线等)

破坏业务的可用性,造成网络服务中断

物理设备监听

光纤监听、红外监听

破坏业务的保密性,造成信息泄露

自然灾害

例如地震、海啸、暴雨等自然灾害

破坏业务的可用性

可以通过建立异地灾备数据中心来解决(两地三中心)

人为破坏

企业员工造成的网络安全事故(操作失误、内鬼等)

造成公司数据泄露、网络中断等

通过定期对人员进行安全意识培训和业务培训、设置足够强的授权和信任方式、并完善管理措施等手段来解决


数据链路层攻击

MAC泛洪攻击——攻击交换机

  1. 不断发送不同的MAC地址数据包给交换机,填满整个MAC表,此时交换机对于正常的业务流量只能进行泛洪,此时黑客就可以截获该数据包
  2. 造成信息泄露
  3. 限制交换机从每个接口学习到的条目数来避免交换机MAC表被填满

MAC攻击与MAC安全、端口安全技术讲解_安全mac地址可以执行的安全保护动作-CSDN博客

ARP欺骗攻击——攻击网关设备和主机

  1. 不断虚假发送ARP报文,改变受害者的ARP表项
  2. 造成信息泄露
  3. 创建静态的ARP表项,将IP和MAC绑定(一般可以使用终端管理软件来直接为PC下发静态ARP表项)

Vlan端口与ARP讲解(Access、Trunk、Hypbrid端口;免费ARP、ARP代理、ARP攻击)_免费arp报文-CSDN博客


网络层攻击

扫描类攻击

利用Ping扫射(包括ICMP/TCP/UDP)来标识网络上存活的系统或应用,收集网络信息

IP地址扫描攻击

使用Ping程序 或者 TCP/UDP报文对目标系统发起探测,确定目标主机是否存活

使用ICMP的Ping或Tracert数据包,探测主机是否在线

  1. 如果主机回应ICMP Echo Reply表示主机在线
  2. 如果收到主机不可达等其它不可达信息,表述主机不在线(也有可能是主机开启了防火墙并关闭了相应端口)

畸形报文攻击

攻击者向目标主机发送错误的IP报文使得系统崩溃或使得服务器拒绝提供服务

Smurf攻击:导致服务器不能正常提供服务。

发送ICMP请求,该请求包的目标地址设置为受害网络的广播地址,源地址为服务器地址、这样网络上的所有主机都会回应此请求发往服务器,导致服务器不能正常提供

防范手段:检查ICMP应答请求包的目的地址是否为子网广播地址或子网的网络地址

Land攻击:导致目标主机占用系统资源或使目的主机崩溃

把报文的源地址和目标地址都设置成某一个受害者的IP地址(源是127网段地址,目的地址是服务器地址),这将导致受害者向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接,

防范手段:对每一个的IP报文进行检测

Fraggle攻击:导致服务器不能正常提供服务

Fraggle类似于Smurf攻击,不过是使用UDP应答消息而非ICMP。在向UDP端口7(ECHO)和端口19(Chargen)发送UDP报文后,UDP端口7(ECHO)和端口19(Chargen)在收到UDP报文后,会产生大量无用的应答报文,占满网络带宽,导致服务器无法正常提供服务

防范手段:检查进入防火墙的UDP报文,若目的端口号为7或19,则直接拒绝

IP Fragment攻击(IP分片攻击):导致设备瘫痪

IP报文中有几个字段与分片有关:DF位、MF位、Fragment Offset 、Length 。

如果上述字段的值出现矛盾,而设备处理不当,会对设备造成一定的影响,甚至瘫痪。

防范手段:检查IP报文中与分片有关的字段(DF位、MF位、片偏置量、总长度)是否有以下矛盾,若发现含有以下矛盾,则丢弃。将攻击记录到日志:

  •  DF位为1,而MF位也为1或Fragment Offset不为0;
  •  DF位为0,而Fragment Offset + Length  > 65535。

注意事项:R为保留位必须为0、DF位:为1表示不分片,为0表示分片、MF:为1表示“更多的片”,为0表示这是最后一片。

Ping of Death攻击:导致系统崩溃

IP报文的长度字段为16位,即IP报文的最大长度为65535 B,死亡平Ping利用一些长度超大的ICMP报文对系统进行攻击。对于部分路由器或者系统,当收到这种报文后,由于处理不当,可能导致系统崩溃、死机或者重启

防范手段:检测ICMP请求报文长度是否超过65535 B,若超过,则丢弃报文并记录日志

IP欺骗攻击

IP欺骗攻击又称为IP Spoofing攻击,通过该攻击能欧获得设备的访问权

使用伪造的IP源地址去访问攻击目标,通过目标主机对该源IP地址的信任,获得目标主机的访问权,或隐藏入侵者的身份信息(前提是需要确保真正被信任的主机失去工作能力)

防范手段:检测每个接口流入的IP报文的源地址和目的地址

IP欺骗攻击防范—URPF技术

简称单播逆向路径转发,主要功能是防止基于源地址欺骗的网络攻击行为

工作模式

松散模式

设备检查收到数据包的源地址,在此设备上只要有和源地址相同网段的明细路由就能会放行此数据包

一般在路由非对称的情况下使用松散模式

严格模式

当有和源地址相同网段的明细路由后,还要求接口必须匹配才可以(去往源地址路由的出接口和收到报文的入接口一致)

一般在路由对称的情况下使用严格模式(即FW与边界路由器只有一条路径)

特殊报文攻击

利用合法的报文对网络进行探查或数据检测(可以通过FW防御)

超大ICMP报文攻击:导致系统崩溃

利用长度超大的ICMP报文对目标系统进行攻击

不是指报文长度超过65535,而是说发送的每个报文长度都很大(例如都是65535)

防范手段:可以限制ICMP报文长度,对于超过此大小的报文进行丢弃

ICMP不可达报文攻击、重定向攻击:切断受害者与目标主机的联系

源地址为服务器地址,目的地址是受害者地址,伪造不可达ICMP报文,切断受害者与目的地的连接。或者伪造ICMP重定向报文,使得目标主机与重定向后的设备建立连接

防范手段:启动ICMP不可达报文攻击防范功能

Tracert报文攻击:探测网络结构

利用TTL为0时返回的ICMP超时报文和到达目的地址时返回的ICMP端口不可达报文来发现报文到达目的地所经过的路径,探测网络结构

防范手段:对于检测到的超时的ICMP报文或UDP报 文,或者目的端口不可达的报文,给予丢弃处理

注意事项:华为防火墙默认不会对超时报文做回复,ip ttl-expires enable   开启回复


传输层攻击

扫描类攻击

收集网络信息

端口扫描攻击——可以通过telnet命令来探测端口号(实际是发送TCP连接或协议报文)

可以使用Port Scan软件向大范围主机的各个TCP/UDP端口发起连接

被探测主机收到TCP连接建立请求报文后

  1. 如果请求的端口是开放的,则回应一个TCP ACK报文,并建立TCP连接
  2. 如果TCP的端口没有开放,则回应一个TCP RST(重置位),告诉发起者此TCP端口没有开放

被探测主机收到一个UDP报文

  1. 如果此UDP端口开放,将该UDP报文送至上层协议处理,不回应任何报文(部分上册协议可能会根据处理结果回应报文)
  2. 如果该UDP端口没有开放,则向发起者回应一个ICMP不可达报文,告诉发起者此UDP端口不可达

端口扫描的作用

  1. 扫描已经开启的端口服务,黑客通过扫描结果了解到被攻击者安装了哪些应用程序/服务
  2. 黑客通过应用程序的漏洞可以实现入侵

在进行端口映射时尽量不要使用默认端口,尽量也少做端口映射(可以通过VPN来实现内部服务器的访问—只会在外网暴露VPN的端口号,内网服务的端口号是不会暴露的)--具体防御可以在出口设备针对单个IP地址在单位时间内只允许向我发送多少次握手请求(针对慢速攻击可以通过IP地址的来源进行直接限制)

畸形报文攻击

攻击者向目标主机发送错误的TCP/UDP报文使得系统崩溃或使得服务器拒绝提供服务

Tcp Flag攻击:可以探测不同操作系统

TCP报文包含6个标志位:URG、ACK、PSH、RST、SYN、FIN ,不同的系统对这些异常标志位组合的应答是不同的,可用于操作系统探测。 

防范手段:检查TCP标志位,丢弃异常组合

Teardrop攻击:(片偏移攻击)导致系统崩溃

利用在TCP/IP堆栈中信任IP分片报文头所包含的信息实现(伪造分段,改变漂移量,不可以有序重组了)

注意事项:缓存分片信息,每一个源地址、目的地址、分片ID相同的为一组,最大支持缓存10000组分片信息

防范手段:检查TCP分片字段,丢弃异常报文

WinNuke攻击:导致系统崩溃

向装有Windows系统的特定目标的NetBIOS端口(139)发送OOB (out-of-band)数据包,引起一个NetBIOS片断重叠,致使已与其他主机建立连接的目标主机崩溃。

还有一种是向主机发送IGMP分片报文,部分主机对在对IGMP分片报文处理时有问题

TCP流量攻击

TCP流量攻击类型 

TCP/UDP流量型攻击可以通过Anti-DDoS来防御

SYN Flood攻击:(半连接)

伪造一个源地址(可以是真实的源地址,也可以是虚假的源地址)的SYN报文大量发给受害者,受害者收到后回应SYN ACK报文,但是受害者不会再收到ACK报文,这就导致受害主机保持了大量的半连接

防御手段:通过源认证来进行防御、通过SYN代理来进行防御

SYN-ACK Flood攻击

假冒服务器,发送大量SYN-ACK(用来确认第一次握手的SYN包)报文到攻击目标网络,如果网络出口有依靠会话转发设备,导致依靠会话转发的网络设备处理性能降低,甚至会话耗尽,拒绝提供正常服务。如果服务器收到后大量SYN-ACK消息会查询相关信息,会为处理这些报文消耗大量的资源

防御手段:也是通过源认证进行防御,或者直接丢弃SYN-ACK报文(当没有找到关于此SYN-ACK的SYN信息)

ACK Flood攻击

利用僵尸网络发送大量的ACK报文,有以下三种情况(建立TCP连接后,数据报文都会携带ACK)

  1. 如果ACK为超大载荷,会导致链路拥塞
  2. 如果是极高速率的变源变端口ACK攻击,导致依靠会话转发的网络设备处理性能降低,甚至会话耗尽,拒绝提供正常服务
  3. 如果ACK报文到达服务器,导致服务器处理性能耗尽,拒绝提供服务

防范手段:通过会话检查和载荷检查结合来进行ACK Flood攻击防御

FIN/RST Flood攻击

利用僵尸网络发送大量的变源变端口FIN/RST报文攻击,导致依靠会话转发的网络设备处理性能降低,甚至会话耗尽,拒绝提供正常服务

防范手段:对超过速率的报文启用会话检查、载荷检查

TCP连接耗尽攻击

攻击者通过僵尸网络向服务器发起大量TCP连接

防范手段:限制报文速率,进行会话检查

TCP防范--源认证

防范SYN和SYN-ACK Flood攻击

虚假源认证—通过校验对探测报文的响应报文来确认源IP的真实性

真实源认证

通过对异常的源IP进行限速来防止真实源的攻击

TCP-Ratio异常限速

基于源来统计除ACK以外其它报文总和 与 ACK报文的比例,当这个比例超过设定的比例阈值,则判定此源IP地址异常,然后将除ACK以外的其他报文限速

始终限速

在任何情况下,都将除ACK以外的其他报文限速

TCP防范--会话检查

防范ACK和FIN/RST Flood攻击

严格模式:

Anti-DDoS直路部署时建议采用

当ACK报文没有命中会话表时直接丢弃;命中允许通过

基本模式:

Anti-DDoS旁路部署时建议使用

如果ACK报文没有命中会话表,会允许第一个报文通过,对后续报文进行会话检查(确定是否允许后续同源IP发送的ACK报文通过)

后续报文命中会话表会检查报文序列号,序列号正确才会允许报文通过

UDP流量攻击

UDP流量攻击类型 

UDP Flood攻击:

通过僵尸网络向目标服务器发起大量的UDP报文

防范手段:关联防御(关联TCP类防御规范)和指纹学习、限流

UDP 分片攻击:

发送大量的UDP分片报文(分为首分片和后续分片,Anti-ddos设备只对首分片执行防御动作,后续分片如果找不到对应首分片直接丢弃)

UDP的分片是通过IP分片来实现的

防范手段:使用载荷检查和指纹学习来进行防御

UDP防范—关联防御

当UDP流量与TCP类服务有关联时,通过防御TCP类服务来防御UDP Flood

可以通过TCP对用户进行认证,然后再通过UDP传输数据

UDP防范--载荷检查与指纹学习

载荷检查:

UDP流量超过阈值时会触发检查,当UDP报文数据段内容完全一样,就会认为是攻击

指纹学习:

UDP流量超过阈值时会触发指纹学习,指纹由Anti-DDoS设备动态学习生成,将攻击报文的一段显著特征学习为指纹后,匹配指纹的报文会被丢弃


应用层攻击

DNS流量攻击

DNS协议(DNS规范、DNS报文、DNS智能选路)-CSDN博客

DNS流量攻击类型 

DNS端口号为TCP、UDP的43

DNS Reply Flood攻击

攻击者发送大量伪造的DNS应答包发送给某个DNS服务器或主机,消耗服务器的处理性能

DNS反射攻击时DNS Rely Flood的一种典型攻击

攻击者模拟被攻击目标向现网发送大量的DNS请求,导致攻击目标收到大量的DNS应答报文,造成所在链路拥塞

DNS Request Flood攻击:(有虚假源和真实源)

针对缓存服务器的攻击

攻击者直接或间接向DNS缓存服务器发送大量不存在的域名解析请求

虚假源采用源认证方式进行防御,真实源可以采用域名限速、IP限速等方式

针对授权服务器的攻击

指攻击者直接或间接向DNS授权服务器发送大量不存在的子域名请求

虚假源采用源认证方式进行防御,真实源可以采用域名限速、IP限速等方式

DNS欺骗攻击——攻击用户

  1. 黑客攻破了DNS服务,在其上修改相应的DNS记录,将域名解析的IP地址改为自己的钓鱼网站上,导致被攻击者访问到钓鱼网站(也有直接攻破用户电脑修改本地的Host文件,也会造成DNS欺骗)
  2. 造成用户信息泄露等危害
  3. 可以自己设置DNS服务器地址(尽量设置为公网权威的运营商的DNS服务器—DNS服务器所属的运营商尽量与自己所办宽带的运营商为同一家—否则会影响网速)

攻击防范—源认证方式

基本认证(针对虚假源缓存服务器)

增强认证(针对虚假源缓存服务器)

我们可以发现缓存服务器需要消耗资源来建立TCP连接,可以通过增强模式将TCP格式报文转为UDP,使得Server不需要额外消耗资源建立TCP连接

DNS重定向认证(针对虚假源攻击授权服务器)

被动模式认证(针对虚假源缓存服务器)

将每个源IP地址发送的首包丢弃,触发重新请求,然后对DNS重传报文进行域名检查

真实源认证

通过域名限速、IP限速来防范

其它DNS攻击

DNS缓存投毒攻击又称为DNS欺骗,将流量从合法服务器引导至虚假服务器上的攻击方式 ,通过域名请求访问网站时,DNS服务器回应不准确的IP地址

HTTP/HTTPS流量攻击

HTTP、HTTPS、SSL协议以及相关报文讲解-CSDN博客

HTTP/HTTPS流量攻击类型 

HTTP/HTTPS的流量型攻击

HTTP 请求攻击

通过代理服务器或僵尸主机向目标服务器发起大量的HTTP报文

发送请求涉及数据库操作的URI或其它消耗系统资源的URI

防御手段:通过HTTP Flood源认证进行防御

HTTP慢速攻击(RUDY)

利用HTTP现有合法机制,在建立了与HTTP服务器的连接后,

尽量长时间保持该连接,不释放,达到对HTTP服务器的攻击。

防范手段:使用Anti-DDoS设备进行防御(对HTTP报文进行检测,检测到下列任意一种都认为是攻击)

攻击防范—源认证方式

基本模式(重定向)

增强模式(验证码认证)

有些僵尸网络实现了重定向功能,或攻击过程中使用的免费代理支持重定向功能,导致基本模式就无法识别出来

302报文重定向(防止Get请求flood)

基本模式的重定向功能只能对整个网页进行重定向,不能针对网页中的内嵌资源(例如:图片)进行重定向

当用户请求页面与页面内嵌资源的不在同一服务器上,Anti-DDos系统可以对嵌套资源服务器启动302重定向防御,对于内嵌资源的请求,响应302状态码进行重定向,真实的客户端会自动完成重定向

Web攻击

Web基本架构与Web攻击介绍(SQL注入、XSS、CSRF)-CSDN博客

通过WAF防火墙防护 

What’s in This Book? This book contains a mix of theoretical and practical chapters. For the practical chapters, I’ve developed and made available a networking library called Canape Core, which you can use to build your own tools for protocol analysis and exploitation. I’ve also provided an example networked application called SuperFunkyChat, which implements a userto-user chat protocol. By following the discussions in the chapters, you can use the example application to learn the skills of protocol analysis and attack the sample network protocols. Here is a brief breakdown of each chapter: Chapter 1: The Basics of Networking This chapter describes the basics of computer networking with a particular focus on TCP/IP, which forms the basis of application-level network protocols. Subsequent chapters assume that you have a good grasp of the network basics. This chapter also introduces the approach I use to model application protocols. The model breaks down the application protocol into flexible layers and abstracts complex technical detail, allowing you to focus on the bespoke parts of the protocol you’re analyzing. Chapter 2: Capturing Application Traffic This chapter introduces the concepts of passive and active capture of network traffic, and it’s the first chapter to use the Canape Core network libraries for practical tasks. Chapter 3: Network Protocol Structures Download from finelybook www.finelybook.com 24This chapter contains details of the internal structures that are common across network protocols, such as the representation of numbers or human-readable text. When you’re analyzing captured network traffic, you can use this knowledge to quickly identify common structures, speeding up your analysis. Chapter 4: Advanced Application Traffic Capture This chapter explores a number of more advanced capture techniques that complement the examples in Chapter 2. The advanced capture techniques include configuring Network Address Translation to redirect traffic of interest and spoofing the address resolution protocol. Chapter 5: Analysis from the Wire This chapter introduces methods for analyzing captured network traffic using the passive and active techniques described in Chapter 2. In this chapter, we begin using the SuperFunkyChat application to generate example traffic. Chapter 6: Application Reverse Engineering This chapter describes techniques for reverse engineering networkconnected programs. Reverse engineering allows you to analyze a protocol without needing to capture example traffic. These methods also help to identify how custom encryption or obfuscation is implemented so you can better analyze traffic you’ve captured. Chapter 7: Network Protocol Security This chapter provides background information on techniques and cryptographic algorithms used to secure network protocols. Protecting the contents of network traffic from disclosure or tampering as it travels over public networks is of the utmost importance for network protocol security. Chapter 8: Implementing the Network Protocol This chapter explains techniques for implementing the application Download from finelybook www.finelybook.com 25network protocol in your own code so you can test the protocol’s behavior to find security weaknesses. Chapter 9: The Root Causes of Vulnerabilities This chapter describes common security vulnerabilities you’ll encounter in a network protocol. When you understand the root causes of vulnerabilities, you can more easily identify them during analysis. Chapter 10: Finding and Exploiting Security Vulnerabilities This chapter describes processes for finding security vulnerabilities based on the root causes in Chapter 9 and demonstrates a number of ways of exploiting them, including developing your own shell code and bypassing exploit mitigations through return-oriented programming. Appendix: Network Protocol Analysis Toolkit In the appendix, you’ll find descriptions of some of the tools I commonly use when performing network protocol analysis. Many of the tools are described briefly in the main body of the text as well. How to Use This Book If you want to start with a refresher on the basics of networking, read Chapter 1 first. When you’re familiar with the basics, proceed to Chapters 2, 3, and 5 for practical experience in capturing network traffic and learning the network protocol analysis process. With the knowledge of the principles of network traffic capture and analysis, you can then move on to Chapters 7 through 10 for practical information on how to find and exploit security vulnerabilities in these protocols. Chapters 4 and 6 contain more advanced information about additional capture techniques and application reverse engineering, so you can read them after you’ve read the other chapters if you prefer. For the practical examples, you’ll need to install .NET Core Download from finelybook www.finelybook.com 26(https://www.microsoft.com/net/core/), which is a cross-platform version of the .NET runtime from Microsoft that works on Windows, Linux, and macOS. You can then download releases for Canape Core from https://github.com/tyranid/CANAPE.Core/releases/ and SuperFunkyChat from https://github.com/tyranid/ExampleChatApplication/releases/; both use .NET Core as the runtime. Links to each site are available with the book’s resources at https://www.nostarch.com/networkprotocols/. To execute the example Canape Core scripts, you’ll need to use the CANAPE.Cli application, which will be in the release package downloaded from the Canape Core Github repository. Execute the script with the following command line, replacing script.csx with the name of the script you want to execute.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静下心来敲木鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值