TCP会话劫持
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
既然攻击者已经获得了他所需要的一切信息, 那么他就可以持续向服务器发送数据包并且接 管整个会话了。 在会话劫持攻击中,攻击者通常会发送数据包 在受害服务器上建立一个账户,甚至留下某些 后门。通过这种方式,攻击者就可以在任何时 候轻松进入系统了。
TCP会话劫持的危害
会话劫持在理论上是非常复杂的, 但现 在产生了简单适用的会话劫持攻击软件 会话劫持攻击的危害性很大是有原因的。
附加信息部分 其他有帮助的记录.
附加信息(资源记录的变量数)
DNS投毒的第二种方法
攻击者发一个错误地址的解析请求 攻击者自己构造一个回应包,在回应包中的附加区域给 出的伪造IP地址
可以查询何时过期 可以得知缓存中是否存在此条记录
step1:发现攻击目标
首先,通常攻击者希望这个目标是一个准予TCP会 话连接(例如Telnet和FTP等)的服务器。 其次,能否检测数据流也是一个比较重要的问题, 因为在攻击的时候需要猜测序列号。这就需要嗅探 之前通信的数据包,对于交换网络环境,可能还需 要使用ARP欺骗。
step2:确认动态会话
序列号机制
发送方发送数据包使用发送方的序列号 当接收方确认从发送方接收数据包时,它也 用发送方的序列号来进行确认
序列号机制
数据传输过程中序列号和应答号之间的关系:
第二个数据包(B->A)的SEQ = 第一个数据包(A -> B)的ACK;
第二个数据包(B->A)的ACK = 第一个数据包(A -> B)的SEQ +第一个数据包(A-> B)的传输数 据长度。
实现TCP会话劫持的两个小工具(2)
Hunt
由Pavel Krauz制作的Hunt,是一个集嗅探、 截取和会话劫持功能与一身的强大工具。它 可以在无论共享式网络还是交换式网络中工 作,不仅能够在混杂模式和ARP欺骗模式下 进行嗅探,还具有中断和劫持动态会话的能 力。
针对DNS的攻击
网络攻击
TCP会话劫持和针对DNS的攻击
TCP会话劫持
基本原理 相关基础 TCP会话劫持过程 实现TCP会话劫持的两个小工具
基本原理
会话劫持就是接管一个现存动态会话的过程
攻击者通过会话劫持可以替代原来的合法用户,同时 能够监视并掌握会话内容。
攻击者可以对受害者的回复进行记录,并在接下来的 时间里对其进行响应,展开进一步的欺骗和攻击。
攻击者如何寻找动态会话?
与大多数攻击不同,会话劫持攻击适合在网络流量达到高峰时才 会发生的。 首先,他有很多供选择的会话;其次,网络流通量越大则被发现 的可能就越小。 如果只有一个用户进行连接并数次掉线,那么就很有可能引起那 个用户的怀疑。但是,如果网络流通量很大并且有很多的用户进 行连接,那么用户们很有可能忽略掉线后面隐藏的问题,也许只 是认为这是由于网络流量过大而引起的。
标志
回答RR数 附加RR数
12 字 节
报文使用相同的标识符
问题(问题的变量数) 回答(资源记录的变量数) 权威(资源记录的变量数) 附加信息(资源记录的变量数)
生日悖论
如果一个房间里有23个或23个以上的人,那么 至少有两个人的生日相同的概率要大于50% 对于60或者更多的人,这种概率要大于99%
step4:使客户主机下线
当攻击者获得了序列号后,为了彻底接管这个 会话,他就必须使客户主机下线。 使客户主机下线最简单的方式就是对其进行拒 绝服务攻击,从而使其不再继续响应。 服务器会继续发送响应给客户主机,但是因为 攻击者已经掌握了客户主机,所以该机器就不 再继续响应。
step5:接管会话
序列号机制
序列号和应答号之间存在着明确的对应关系。 因此序列号和应答号是完全有可能预测的,只 需要获取最近的会话数据包,就可以猜测下一 次通话中的SEQ和ACK。 这一局面是TCP协议固有缺陷造成的,由此带 来的安全威胁也是无法回避的。
TCP会话劫持过程
step1:发现攻击目标 step2:确认动态会话 step3:猜测序列号 step4:使客户主机下线 step5:接管会话
step3:猜测序列号
TCP区分正确数据包和错误数据包仅通过它们的 SEQ/ACK序列号。序列号却是随着时间的变化而改
变的。因此,攻击者必须成功猜测出序列号。 通过嗅探或者ARP欺骗,先发现目标机正在使用的 序列号,再根据序列号机制,可以猜测出下一对 SEQ/ACK序列号。
同时,攻击者若以某种方法扰乱客户主机的SEQ/ACK, 服务器将不再相信客户主机正确的数据包,从而可以伪 装为客户主机,使用正确的SEQ/ACK序列号,现在攻 击主机就可以与服务器进行连接,这样就抢劫一个会话 连接。
客户 A CLOSED 服务器 B CLOSED 被动打开
主动打开
• B 的 TCP 收到主机 A 的确认后,也通知其上层 应用进程:TCP 连接已经建立。
客户 A CLOSED 服务器 B CLOSED 被动打开
主动打开
数据传送
TCP 报文段的首部格式
32 位
位 0 8 源 端 口 序 号 TCP 首部 确 认 号 窗 口 紧 急 指 针 (长 度 可 变) 填 充 20 字节的 固定首部 16 24 目 的 端 口 31
一个最主要的原因就是它并不依赖于操作系 统。
另一个原因就是它可以被用来进行积极的攻 击,通过攻击行为可以获得进入系统的可能。
实现TCP会话劫持的两个小工具
Juggernaut
Juggernaut是由Mike Schiffman开发 的自由软件,这个软件是开创性的,是 最先出现的会话攻击程序之一。它运行 在Linux操作系统的终端机上,攻击者能 够窥探网络中所有的会话,并且劫持其 中任何一个,攻击者可以像真正用户那 样向服务器提交命令。
缓存中毒
攻击方法:
攻击者构造请求包,请求解析
DNS服务器若在缓存中未查到的域名,就发 出解析请求
攻击者伪造响应包,提前响应解析请求,DNS服务器地址 被污染
DNS查询报文与应答报文
报文头部
标识符: 16位,查询和应答
标识符
问题数 权威RR数
缓存投毒的解决方案
只回答对自己授权域的查询请求,且不缓存任何 外部的数据
降低了DNS域名解析的方式
通过加密认证方式,目前难以全面部署和实施
将hosts文件中的域名和IP绑定
使用ettercap 进行ARP欺骗和DNS欺骗
/1725.html
DNS报文格式
问题部分 查询的Name, type 回答部分 对于查询,应答的资源记录 可以多个资源记录,由于 可以有多个IP地址 权威部分 权威名字服务器的其他 资源记录
标识符 问题数
标志 回答RR数
12 字 节
权威RR数
附加RR数
问题(问题的变量数) 回答(资源记录的变量数) 权威(资源记录的变量数)
目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和
选
项
(长 度 可 变)
填
充
确认号字段——占 4 字节,是期望收到对方的下一个 报文段的数据的第一个字节的序号。
U A P R S F R C S S Y I G K H T N N
20 字节 固定 首部
检 验 和
选
项
(长 度 可 变)
填
充
序号字段——占 4 字节。TCP 连接中传送的数据流 中的每一个字节都编上一个序号。序号字段的值则指 的是本报文段所发送的数据的第一个字节的序号。
位0
8
源 端 口
16
24
数据 偏移
保 留 检 验 和 选 项
U A P R S F R C S S Y I G K H T N N
TCP 报文段
TCP 首部
TCP 数据部分
发送在前
IP 首部 IP 数据部分
位0
8
源 端 口
16
24
目 的 端 口
31
序 号 TCP 首部 确 数据 偏移 保 留 认 号 窗 口 紧 急 指 针
在一定时间间隔内收到两个回应包,则认为存在DNS欺 骗
交叉验证法:即收到回应包后,使用反向解析请求测试 是否为合法的域名服务器
缺点:
需要额外的发送查询包 且对方有可能继续实施反向解析欺骗 很多域名服务器并没有提供反向域名服务
DNS缓存中毒
2008年7月,网络专家发现互联网的重大DNS漏洞 利用该漏洞轻则可以让用户无法打开网页,重则是网络钓鱼 和金融诈骗,给受害者造成巨大损失。 缓存中毒攻击者(cache poisoning)给DNS服务器注入非法 网络域名地址,如果服务器接受这个非法地址,那说明其缓 存就被攻击了,而且以后响应的域名请求将会受黑客所控。 当这些非法地址进入服务器缓存,用户的浏览器或者邮件服 务器就会自动跳转到DNS指定的地址。
TCP 的连接建立
客户 A CLOSED 服务器 B CLOSED 被动打开
主动打开
• B 的 TCP 收到连接请求报文段后,如同意,则 发回确认。 • B 在确认报文段中应使 SYN = 1,使 ACK = 1, 其确认号ack = x 1,自己选择的序号 seq = y。
• A 收到此报文段后向 B 给出确认,其 ACK = 1, 确认号 ack = y 1。 • A 的 TCP 通知上层应用进程,连接已经建立。
会话劫持结合了嗅探及欺骗技术。
TCP会话劫持
1 A远程登录,建立会话,完成认证过程
被劫持者A
2 监听流量
服务器B
攻击者H
相关基础
TCP三步握手连接建立 序列号机制
TCP 的连接建立
客户 A CLOSED 服务器 B CLOSED 被动打开
主动打开
A 的 TCP 向 B 发出连接请求报文段,其首部中的 同步位 SYN = 1,并选择序号 seq = x,表明传送 数据时的第一个数据字节的序号是 x。
域名劫持
使用境外的OpenDNS 进行域名解析
openDNS的域名是 208.67.222.222
域名劫持解决方案
?
河南网通的ADSL拨 号用户的DNS是通过 DHCP自动获得的, 其DNS分别是:
202.102.224.68 202.102.227.68
DNS欺骗攻击
DNS欺骗攻击的检测和预防
DNS采用UDP协议 请求包和响应包,无相应的安全机制 常见的攻击模式
DNS域名劫持 DNS欺骗攻击
DNS缓存毒药攻击
域名劫持
时间:
2009年6月25日
现象:
*在内的绝大多数Google国际网站,例 如、Gmail、Google Reader、Google Docs等,在中国部分省市均出现无法访问的情况 可以访问