众所周知 , 一个 TCP 会话 , 也就是编程时使用的 socket 是由 目标 IP 、 源 IP 、 目标端口 、源端口 这 4 个信息组成的元组 。其中 目标 IP 、 源 IP 、 目标端口 都比较容易获得 , 唯独 源端口 似乎很难获取 。
很难并不意味着不可能 , 客户端的端口一般都在 3w 以上 , 16 位的端口号最大也就 65535 个端口 , 更何况如果攻击者和被害者同处一室(在一个网段)更可以使用端口扫描等黑客工具直接获取到 源端口 。
文章插图
还有一个门槛就是如果伪造的 TCP 包不在滑动窗口内 , 是会被无视的 , 不过这也不难 , 因为 IP 头 + TCP 头一共也就 40 字节 , 这个数据报的队列是可以预估的 , 常言道 , 大力出奇迹 , 暴力破解可以解决 。
虽然有点小困难 , 但效果是非常舒适的 。
文章插图
系列之泪滴(teardrop)攻击:
泪滴攻击也成为分片报文洪水 , 会造成终端的缓冲区溢出 , CPU 资源耗尽 。其实此类攻击不仅对 TCP 有效 , 对 UDP 同样有效 , 因为它攻击的是网络层 , 其利用的原理是 , 当 TCP/UDP 要发送一个大的报文时 , 为了提高信道的利用率 , 通常会将其拆分为多个小的 IP 数据报 , 但不管是拆分还是合并 , 都需要耗费 CPU 资源 , 这就给了攻击者以可乘之机 。
泪滴攻击大体分为两种 , 一种是发送大量的小报文 , 一般来讲 IP 数据报头部 20 个字节 , 可容纳 65515 字节 , 如果攻击者故意将其拆分为极小体积数量极多的分片 , 这种数据报都是恶意的 。
还有一种就更缺德的 , 攻击者故意不发送一个大报文中的最后一个小分片 , 造成终端一直在等待 , 这样缓冲区中前面接受到的数据会一直保存在缓冲区中 。也称 Rose 攻击 。这种故意扣留分片的方式也可以用在 IGMP 协议上 , 称为 fawx 攻击 。
文章插图
泪滴(teardrop)攻击的防御:
一般来说 , 正常的网络中出现大量分包的情况是比较小的 。如果出现 , 大概率是被攻击了 , 这时需要对分片进行限速 , 避免将 CPU 资源耗尽 。
系列之 Land 攻击:
Land 攻击也是利用了 TCP 建立会话需要三次握手这一特质进行的 , 而且相比一般性洪水攻击来说 , 它具有 “药量小” 、 “见效快" 等优质特点 。
服药过程如下:
文章插图
首先攻击者构造一个很特别的 TCP 会话请求 SYN , 在这个报文中 , 目标地址与源地址是一样的 , 端口也一样 。这样 , 当目标终端接收到这个报文后 , 会向自己发回一个回执确认请求 SYN + ACK , 收到后 , 有的终端比较傻 , 会以为这个是另一个会话请求报文 , 进而创建一个空连接 , 然后继续向自己发送确认请求 , 如此循环直至油尽灯枯 。
文章插图
land 攻击的防御:
这种攻击对付早期的操作系统是很有效的 , 现在不行了 , 现在的操作系统可以轻易分辨出这种恶意循环 。但在某些老式的网络设备上 , 还是有一些生存空间的 。
DNS 劫持:
2010 年 1 月 12 日上午 7 点钟 , baidu 公司曾遭到黑客攻击 , 导致网页长时间无法正常访问 。其主要用的方式就是 DNS 劫持 。
说到 DNS (Domain Name Service) 其功能是将域名换回为真实 IP , 但 DNS 劫持并不一定是黑客行为 , 比如国内某通公司的宽带 , 如果你访问一个不存在的域名 , 可能会被跳转到一个广告页面......
文章插图
先来说说局域网的 DNS 劫持 , 在局域网中 , 尤其是一些大型公司的内网 , 一般有自己的 DNS 服务器 , 这种情况虽然符合 “劫持” 这一特性 , 却并不能算是恶意劫持 。但不包括以下这种情况:
推荐阅读
- 微信 小程序 POST请求中文乱码的解决方法
- DHCP服务原理与搭建
- 500毫升的洗眼液可以带上高铁吗 洗眼液可以带上高铁吗
- Windows 10中的DHCP安全性:分析关键漏洞CVE-2019-0726
- DHCP服务如何配置才能尽量减少被攻击的可能
- 淘宝商品综合排序规则 淘宝搜索排名的规则
- java单词
- 什么是防火墙?防火墙的作用?
- 使用防火墙让你的 Linux 更加强大
- 美国弗洛伊德事件警察处理结果 弗洛伊德案件的三位涉事警察