uTorrent協(xié)議層遠(yuǎn)程漏洞的分析和利用
写在前面的话
近期,世界上最流行的torrent客户端uTorrent被爆出了一个安全漏洞,该漏洞的CVE编号为CVE-2020-8437。根据研究人员透露的信息,远程攻击者可以利用该漏洞来入侵任何一个连接至互联网的uTorrent实例,并让其运行崩溃。作为合格的白帽黑客,我们在发现了该漏洞之后便立刻将其上报给了uTorrent团队,该漏洞也在短时间内迅速得到修复。现在在这篇文章中,我们将公开该漏洞的概况以及相应的利用方式。
Torrent协议
Torrent下载(传说中的BT下载)可以同时与多个对等节点建立连接(其他人下载同一文件),并创建一个分散的下载网络来使整个对等节点组共同受益。每个对等节点都可以上传和下载数据到任何其他的对等节点,这种方式可以消除任何单一故障点或宽带瓶颈,从而使所有对等节点的下载速度更快更稳定。
对等节点之间使用了BitTorrent协议进行通信,而这种协议通信方式需要通过握手来发起。在接下来的分析过程中,我们将主要关注握手包以及随后的数据包。
BitTorrent握手
握手包是对等节点之间初始化通信所要发送的第一个数据包,握手包中包含了五个字段,每个字段都有严格的结构化格式。
握手包格式:
- Name Length:1字节无符号整型,后跟字符串长度。
- ProtocalName:可变长度的字符串,用于标记发起初始化的对等节点支持的协议。此字段将用于兼容性问题,不过在目前主要的协议实现中该字段都被设置为了“BitTorrentprotocol”。
- ReservedBytes:8字节比特字段,每一位代表了一个协议功能扩展,现代Torrent客户端将使用这个字段来跟高级功能进行通信以优化下载任务。
- InfoHash:20字节SHA1,用于识别初始化对等节点想要下载的种子文件,这个哈希是目标种子文件全部信息的哈希,其中包括种子名称、文件域哈希、文件大小、数量等等。
- Peer ID:20字节缓冲区,一个发起方跟自己指定的随机标识。
当一个节点收到一个握手包之后,它将会用自己的握手包来回应。如果两个节点的ReservedBytes字段都设置为了“ExtensionProtocol”,那么节点之间将使用一个“扩展”消息握手来交换更多关于扩展组建的信息。
BitTorrent扩展消息握手
扩展消息握手是对等节点之间用于共享额外扩展实现信息时使用的,跟我们之前分析的BitTorrent握手包不同的是,BitTorrent握手包的大小是固定的,但扩展消息握手包是可以动态变化的,这将允许该数据包传输大量扩展数据。
扩展消息握手包格式:
- Length:4字节无符号整型,后跟整个信息的长度。
- BitTorrent Message Type:1个字节,即数据包的BitTorrent消息ID,扩展消息对应的是20(0x14)。
- BitTorrent Extended Message Type:1个字节,代表扩展消息的ID,对应的值为0。
- M:动态变化的数据包大小,支持的补充扩展Bencoded格式字典。
Bencoded字典
M字段是一个Bencoded格式的字典,这种格式跟Python字典格式类似:即字符串类型的键值对。但是,跟Python字典相比,Bencoded字典在值前面会包含每一个字符串的长度,“d”和“e”分别用来代表“{”和“}”。下面给出的是Python字典和Bencoded字典的对比图:
除此之外,Python字典和Bencoded字典都可以在字典内部包含一个单独的字典,即支持字典嵌套:
漏洞CVE-2020-8437
漏洞CVE-2020-8437存在于uTorrent解析Bencoded字典的代码之中,说准确一点,就是解析嵌套字典的代码。在补丁发布之前(uTorrent3.5.5及其之前版本),uTorrent将使用一个32位整数作为一个比特字段来跟踪Bencoded字典当前正在解析的部分。比如说,当uTorrent在解析第一层时,这个比特字段将会被设置为‘000000000000000000000000 00000001’,当uTorrent在解析第二层时,这个比特字段将会被设置为‘00000000 000000000000000000000011’。
但是,如果一个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客户端程序升级至最新版本!
鸿蒙官方战略合作共建——HarmonyOS技术社区
推薦系統(tǒng)
雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載
系統(tǒng)大小:0MB系統(tǒng)類型:WinXP雨林木風(fēng)在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)知名品牌,雨林木風(fēng)WindowsXP其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,是一款穩(wěn)定流暢的系統(tǒng),雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載,有需要的朋友速度下載吧。
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園win7純凈版 ghost系統(tǒng)下載 x64 聯(lián)想電腦專用
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win7蘿卜家園win7純凈版是款非常純凈的win7系統(tǒng),此版本優(yōu)化更新了大量的驅(qū)動(dòng),幫助用戶們進(jìn)行舒適的使用,更加的適合家庭辦公的使用,方便用戶,有需要的用戶們快來下載安裝吧。
系統(tǒng)等級:進(jìn)入下載 >雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載
系統(tǒng)大?。?/em>1.01GB系統(tǒng)類型:WinXP雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載,雨林木風(fēng)WinXP系統(tǒng)技術(shù)積累雄厚深耕多年,采用了新的系統(tǒng)功能和硬件驅(qū)動(dòng),可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動(dòng)對硬件的加速,加固了系統(tǒng)安全策略,運(yùn)行環(huán)境安全可靠穩(wěn)定。
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 V2023 X64位系統(tǒng)下載
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win10蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,(win10企業(yè)版,win10 ghost,win10鏡像),蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 ghost鏡像 X64位系統(tǒng)下載,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園
系統(tǒng)等級:進(jìn)入下載 >蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 V2023 X64位系統(tǒng)下載
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win10蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 ghost X64位 系統(tǒng)下載,蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園win10國內(nèi)鏡像版,基于國內(nèi)用戶的習(xí)慣,做
系統(tǒng)等級:進(jìn)入下載 >windows11下載 蘿卜家園win11專業(yè)版 X64位 V2023官網(wǎng)下載
系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win11蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,windows11下載 蘿卜家園win11專業(yè)版 X64位 官網(wǎng)正式版可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動(dòng)對硬件的加速,使得軟件在WINDOWS11系統(tǒng)中運(yùn)行得更加流暢,加固了系統(tǒng)安全策略,WINDOWS11系統(tǒng)在家用辦公上跑分表現(xiàn)都是非常優(yōu)秀,完美的兼容各種硬件和軟件,運(yùn)行環(huán)境安全可靠穩(wěn)定。
系統(tǒng)等級:進(jìn)入下載 >
相關(guān)文章
- 如何解決銳龍2200g死機(jī)藍(lán)屏
- Win8.1本地搜索為什么無法使用
- Win8.1無線網(wǎng)絡(luò)不穩(wěn)定/掉線怎么辦
- 電腦機(jī)箱漏電怎么消除?電腦機(jī)箱漏電是哪里的問題?
- 電腦開不了機(jī)怎么辦?電腦無法開機(jī)怎么解決?
- 硬盤雙擊無法打開的問題該怎么辦
- 風(fēng)行下載速度慢甚至是為0怎么辦?風(fēng)行播放器下載問題及解決方法匯總
- 蘋果回應(yīng)新的iOS惡意軟件YiSpector:已在iOS8.4中解決該問題
- 沒有路由器怎么連無線 160wifi 解決沒有路由器連接無線問題
- 維棠FLV下載視頻失敗問題匯總及解決方法
- Word2016 出現(xiàn)“此功能看似已中斷 并需要修復(fù)”問題解決方案(圖文)
- Cisco管理的35個(gè)常見問題及解答
- NanoStudio怎么用?NanoStudio使用方法及常見問題
- IE瀏覽器登錄網(wǎng)上銀行時(shí)出現(xiàn)崩潰問題的解決辦法
熱門系統(tǒng)
推薦軟件
推薦應(yīng)用
推薦游戲
熱門文章
常用系統(tǒng)
- 1win11最新娛樂版下載 技術(shù)員聯(lián)盟x64位 ghost系統(tǒng) ISO鏡像 v2023
- 2電腦公司windows7純凈版 ghost x64位 v2022.05 官網(wǎng)鏡像下載
- 3外星人系統(tǒng)Win11穩(wěn)定版系統(tǒng)下載 windows11 64位穩(wěn)定版Ghost V2022
- 4win11一鍵裝機(jī)小白版下載 外星人系統(tǒng) x64位純凈版下載 筆記本專用
- 5蘿卜家園Ghost win10 64位中文版專業(yè)版系統(tǒng)下載 windows10純凈專業(yè)版下載
- 6【國慶特別版】番茄花園Windows11高性能專業(yè)版ghost系統(tǒng) ISO鏡像下載
- 7青蘋果系統(tǒng) GHOST WIN7 SP1 X64 專業(yè)優(yōu)化版 V2024
- 8深度技術(shù)ghost win7純凈版最新下載 大神裝機(jī)版 ISO鏡像下載
- 9雨林木風(fēng)windows11中文版免激活 ghost鏡像 V2022.04下載