常见网络攻击手法总结

略凌乱…

一、拒绝服务

  • TCP SYN泛洪
  • ping泛洪
  • 放大攻击 <== 充分利用广播地址。发送伪造包至广播网,受害者被大量回复数据包淹没
  • 分布式Dos泛洪 <== 僵尸网络攻击Dos攻击一个受害者

二、畸形数据

  • 死亡之ping
  • 泪滴 <== 发送具有重叠偏移量的数据包片段
  • SYN比特和FIN比特同时设置
  • 没有设置任何标志的TCP报文攻击
  • 设置了FIN标志却没有设置ACK标志的TCP报文攻击

在TCP报文的报头中,有几个标志字段:
  1. SYN:连接建立标志,TCP SYN报文就是把这个标志设置为1,来请求建立连接
  2. ACK:回应标志,在一个TCP连接中,除了第一个报文(TCP SYN)外,所有报文都设置该字段,作为对上一个报文的相应
  3. FIN: 结束标志,当一台计算机接收到一个设置了FIN标志的TCP报文后,会拆除这个TCP连接
  4. RST:复位标志,当IP协议栈接收到一个目标端口不存在的TCP报文的时候,会回应一个RST标志设置的报文
  5. PSH:通知协议栈尽快把TCP数据提交给上层程序处理

三、TCP/IP劫持

伪造数据包接管受害者与服务器之间的通信。

  • RST劫持 <== 最简单的方式

四、路由协议攻击

扰乱路由表、转发表,但如果路由器、交换机开启了HMAC验证,则不会成功。

五、网络扫描

发现各种TCP/IP端口的分配、开放的服务、Web服务软件版本和这些服务及软件呈现在Internet上的安全漏洞。
有三个阶段:

  1. 发现目标 <== ping扫描
  2. 确认目标信息(操作系统、服务类型、版本、网络拓扑等)<== 端口扫描、操作系统探测
  3. 确认是否有安全漏洞 <== 网络安全扫描

端口扫描原理

根据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. 相反,如果收到了针对这个TCP SYN报文的ACK报文,或者没有接收到任何针对该UDP报文的ICMP报文,则说明该TCP端口是开放的,UDP端口可能开放(因为有的实现中可能不回应ICMP不可达报文,即使该UDP端口没有开放)
posted @ 2017-11-30 14:15  T_1  阅读(1471)  评论(0编辑  收藏  举报