文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

uTorrent协议层远程漏洞的分析和利用

2024-12-14 04:26

关注

近期,世界上最流行的torrent客户端uTorrent被爆出了一个安全漏洞,该漏洞的CVE编号为CVE-2020-8437。根据研究人员透露的信息,远程攻击者可以利用该漏洞来入侵任何一个连接至互联网的uTorrent实例,并让其运行崩溃。作为合格的白帽黑客,我们在发现了该漏洞之后便立刻将其上报给了uTorrent团队,该漏洞也在短时间内迅速得到修复。现在在这篇文章中,我们将公开该漏洞的概况以及相应的利用方式。

[[349013]]

Torrent协议

Torrent下载(传说中的BT下载)可以同时与多个对等节点建立连接(其他人下载同一文件),并创建一个分散的下载网络来使整个对等节点组共同受益。每个对等节点都可以上传和下载数据到任何其他的对等节点,这种方式可以消除任何单一故障点或宽带瓶颈,从而使所有对等节点的下载速度更快更稳定。

对等节点之间使用了BitTorrent协议进行通信,而这种协议通信方式需要通过握手来发起。在接下来的分析过程中,我们将主要关注握手包以及随后的数据包。

BitTorrent握手

握手包是对等节点之间初始化通信所要发送的第一个数据包,握手包中包含了五个字段,每个字段都有严格的结构化格式。

握手包格式:


当一个节点收到一个握手包之后,它将会用自己的握手包来回应。如果两个节点的Reserved Bytes字段都设置为了“Extension Protocol”,那么节点之间将使用一个“扩展”消息握手来交换更多关于扩展组建的信息。

BitTorrent扩展消息握手

扩展消息握手是对等节点之间用于共享额外扩展实现信息时使用的,跟我们之前分析的BitTorrent握手包不同的是,BitTorrent握手包的大小是固定的,但扩展消息握手包是可以动态变化的,这将允许该数据包传输大量扩展数据。

扩展消息握手包格式:


Bencoded字典

M字段是一个Bencoded格式的字典,这种格式跟Python字典格式类似:即字符串类型的键值对。但是,跟Python字典相比,Bencoded字典在值前面会包含每一个字符串的长度,“d”和“e”分别用来代表“{”和“}”。下面给出的是Python字典和Bencoded字典的对比图:


除此之外,Python字典和Bencoded字典都可以在字典内部包含一个单独的字典,即支持字典嵌套:


漏洞CVE-2020-8437

漏洞CVE-2020-8437存在于uTorrent解析Bencoded字典的代码之中,说准确一点,就是解析嵌套字典的代码。在补丁发布之前(uTorrent 3.5.5及其之前版本),uTorrent将使用一个32位整数作为一个比特字段来跟踪Bencoded字典当前正在解析的部分。比如说,当uTorrent在解析第一层时,这个比特字段将会被设置为‘00000000 00000000 00000000 00000001’,当uTorrent在解析第二层时,这个比特字段将会被设置为‘00000000 00000000 00000000 00000011’。

但是,如果一个Bencoded字典的嵌套层数超过32层的话,会发生什么呢?于是乎,我便创建了一个这样的字典,然后丢给了uTorrent的字典解析器,结果如下:


这就很Nice!uTorrent崩溃啦!深入分析后,我们发现这是一个空指针引用错误。

漏洞利用

漏洞CVE-2020-8437有两个简单的利用向量,首先是要一个远程对等节点发送一个包含恶意Bencoded字典的扩展消息数据包,其次就是需要一个包含了恶意Bencoded字典的.torrent种子文件。

1. 远程对等节点利用

当两个支持扩展消息的对等节点开始交互通信时,它们都会发送一个数据包来枚举各自支持的扩展功能,而关于支持扩展的消息就是通过Bencoded字典来发送的,如果字典是恶意字典,那么客户端在解析Bencoded字典时就会触发漏洞CVE-2020-8437。

2. Torrent文件利用

.torrent种子文件封装了客户端开始下载torrent所需的最基本信息,这些文件在torrent网站上公开共享,任何人都可以直接下载,然后使用torrent客户端来打开,因此这些文件都有可能成为触发漏洞CVE-2020-8437的工具。一个.torrent文件相当于是一个以文件格式保存的Bencoded字典,因此我们只需要将一个恶意Bencoded字典保存为一个.torrent文件,就可以实现攻击向量的创建了。

漏洞利用代码:【点我获取

漏洞利用演示视频

视频地址:【点我观看

缓解方案

根据该漏洞的严重性情况,建议广大用户尽快将uTorrent客户端程序升级至最新版本!

 

来源:FreeBuf内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯