首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安全研究 | uTorrent协议层远程漏洞分析和利用

对等节点之间使用了BitTorrent协议进行通信,而这种协议通信方式需要通过握手来发起。在接下来分析过程,我们将主要关注握手包以及随后数据包。...BitTorrent握手 握手包是对等节点之间初始化通信所要发送第一个数据包,握手包含了五个字段,每个字段都有严格结构化格式。...握手包格式: Name Length:1字节无符号整型,后跟字符串长度。 ProtocalName:可变长度字符串,用于标记发起初始化对等节点支持协议。...此字段将用于兼容性问题,不过在目前主要协议实现该字段都被设置为了“BitTorrent protocol”。...BitTorrent扩展消息握手 扩展消息握手对等节点之间用于共享额外扩展实现信息时使用,跟我们之前分析BitTorrent握手包不同是,BitTorrent握手大小是固定,但扩展消息握手包是可以动态变化

1.2K30

Bittorrent 协议浅析(六)点对点交换、本地服务发现、多 Tracker 和私有种子

回顾 前序文章: Bittorrent 协议浅析(一)元数据文件 https://cloud.tencent.com/developer/article/2332701 Bittorrent 协议浅析...(二)Tracker 和 对等节点https://cloud.tencent.com/developer/article/2333043 Bittorrent 协议浅析(三)对等数据传输实例https:...分布式哈希表(DHT),每个节点有自己 ID 和路由表,通过 KRPC 在 DHT 可以获取指定信息哈希对应下载者信息,元数据传输拓展基于拓展协议,目的在对等节点之间传输元数据信息,使得磁铁链接...PEX 发送频率不需要很高,通常没分钟不超过 1 次发送,握手后也不需要立即发送 PEX 消息,added 和 dropped 不应包含重复项,除了首次发送数据,added 和 dropped...下图是前文所述 Ubuntu 官方镜像种子下载过程一条 PEX 消息样例,首先进行了握手和拓展握手,随后对方(Transmission)返回了 PEX 信息,在图中对应两个 HAVE 消息(绿框标注

56221
您找到你想要的搜索结果了吗?
是的
没有找到

Bittorrent 协议浅析(二)Tracker 和 对等节点

Peers 握手 BitTorrent协议对等,没有服务器和客户端概念,每一个节点(Peer)都是相同,它们之间互相传输数据形式也是一致。...此处以TCP连接为例,节点之间首先建立 TCP 连接,随后开始握手握手数据如下: 1 字节 协议名称长度,固定为 19 (0x13); 19 字节 协议名称,固定为 BitTorrent protocol...,即完成握手过程,长度为 0 保持连接消息通常每 2 分钟发送一次,在请求数据传输期间,超时时间可以更短。...Peers 数据传输 推荐结合 Bittorrent 协议浅析(三)对等数据传输实例 共同完成此部分阅读。...Tracker 和对顶节点部分 完 第二部分 Tracker 和对等节点 暂时就到这里,实践和拓展协议等先关内容分析之后链接会放在这里: Bittorrent 协议浅析(三)对等数据传输实例 最后,征文活动广告

71342

Bittorrent 协议浅析(五)拓展协议 及 元数据传输拓展

(二)Tracker 和 对等节点https://cloud.tencent.com/developer/article/2333043 Bittorrent 协议浅析(三)对等数据传输实例https:...当握手双方均支持该协议,其通讯内容新增 标记 说明 0x14 extended 通过 extended 来实现拓展协议功能,extended 消息包括: 4 字节 (uint23) 消息长度,大端序编码...拓展握手 握手信息负载是一个字典,字典中所有的内容都是可选,区分大小写,对未知键值都可以进行忽略,这一部分如果较难理解,可以结合下一章节实例进行分析,字典通常包括: m:支持拓展字典,包含拓展名称和映射消息...元数据传输拓展 元数据传输拓展基于上述拓展协议,允许客户端从对等点下载元数据,使得磁力链接成为可能。 在此部分处理过程,元数据以 16KiB(16384 字节)块进行处理。...元数据块索引从 0 开始。除了最后一个块可能更小之外,所有块都是 16KiB。 拓展头: 元数据传输拓展将 ut_metadata 加到扩展标头握手消息“m”字典

57441

Bittorrent 协议浅析(三)对等数据传输实例

回顾 前序文章: Bittorrent 协议浅析(一)元数据文件 https://cloud.tencent.com/developer/article/2332701 Bittorrent 协议浅析...(二)Tracker 和 对等节点https://cloud.tencent.com/developer/article/2333043 前文内容回顾: BitTorrent 是一种用于分发文件协议,... BitField 数据: 00 00 00 02 05 80 在握手完成后,所有整型数据均为 4 字节大端位编码,数据收个数为消息长度,即 00 00 00 02 代表该消息长度为 2 字节,消息内容第一位为类型标记...05 对应 Bitfield(回顾Bittorrent 协议浅析(二)Tracker 和 对等节点),根据信息文件大小和分片大小可知,该内容只有 1 个分片,故分片位表只有 1 位,其他为填充,收到数据...BitTorrent 基础协议(BEP 0003)分析到这里就结束了,基于这些内容,已经可以充分了解 BitTorrent 基础并据此构筑很多工具了,在后续文章(也许),将会选择部分拓展协议进行分析

59061

Bittorrent 协议浅析(八)uTP 数据包分析、超级种子

(二)Tracker 和 对等节点https://cloud.tencent.com/developer/article/2333043- Bittorrent 协议浅析(三)对等数据传输实例https...拓展协议元数据传输拓展可在节点之间传输元数据,PEX 拓展允许节点交换节点信息,DHT 可通过 KRPC 根据信息哈希获取节点,本地服务发现基于组播,在私有种子这些内容均须禁用。...uTP 数据包分析在前述文章,通过 Sockit 工具模拟了基于 TCP Bittorrent 请求,但 uTP 是一个基于 UDP 协议,逐步构造请求进行分析存在较大难度,故直接通过 Wireshark...,可以看到在 uTP 握手完成后 BitTorrent 握手信息:图片加密传输是一个有趣内容,但分析较为复杂,目前为止我了解也只停留在表面,加密传输这个内容并没有在任何一个 BEP 中进行提现,也没有在任何文档材料中出现...在阅读这部分内容之前,强烈建议仔细阅读并理解Bittorrent 协议浅析(三)对等数据传输实例,熟悉节点在传输数据中所发生数据内容。

96162

Bittorrent 协议浅析(四)分布式哈希

二)Tracker 和 对等节点https://cloud.tencent.com/developer/article/2333043 Bittorrent 协议浅析(三)对等数据传输实例https:/...第一版协议,它属于最终版本,几乎不会产生变动,但从这篇文章开始所述内容,可能随着时间推移发生改变,可能随着协议改变文章内容不再准确,之后将会给出完成所依据协议链接,建议在阅读过程参考协议进行阅读...在讨论快速交换,新版本 BitTorrent 协议之前,分布式哈希表(Distributed Sloppy Hash Table,DHT)是无论如何想要探讨内容,它在 BitTorrent 协议当中并不是必要...拓展协议 当节点支持 DHT 拓展,在握手过程中将预留位最后一字节最后一位置位,以表示支持该拓展。...,如果进行了更新,链接会放在这里: Bittorrent 协议浅析(五)拓展协议 及 元数据传输拓展 Bittorrent 协议浅析(六)点对点交换、本地服务发现、多 Tracker 和私有种子 在此再次呼吁阅读本文各位遵循社区规定

53811

使用C++编写一个DHT爬虫,实现从DHT网络爬取BT种子

和peer 通过获取GET_PEERS或者ANNOUNCE_PEER消息info_hash还有对端地址就可以开始使用BitTorrent协议来下载种子信息了(此时将对端节点视为peer,下载失败概率会挺大...) 从bep_0010可以看到,握手报文消息格式为:19ASCII码 + BitTorrent protocol + \x00\x00\x00\x00\x00\x10\x00\x04 + infohash...十六进制解码 + 二十字节长nodeid,infohash是种子hash,nodeid就是我们自己id了,需要注意BitTorrent协议除了握手消息之外其他所有的消息开头四个字节是消息长度...) 从bep_0010可以看到,握手之后就要进行扩展握手了,而扩展握手是至关重要,报文消息格式为:消息长度 + MSG_IDASCII + EXTEND_IDASCII + B编码字典{‘m’...,这两个非常重要,拿到之后要找个变量存起来 注意事项:协议本来是要求握手协议和扩展握手是分开两步进行,但是在实际测试中发现了很多peer会直接在第一次握手时就把全部数据发过来了,也就是把原本属于扩展握手消息应答也一并发过来

1.5K20

Bittorrent 协议浅析(七)uTorrent 传输、穿透拓展和 UDP Tracker

协议浅析(二)Tracker 和 对等节点https://cloud.tencent.com/developer/article/2333043 - Bittorrent 协议浅析(三)对等数据传输实例...穿透(Holepunch)拓展 穿透拓展协议基于基础拓展协议,它提供了一种利用中继节点帮助建立 uTorrent 连接方式,拓展协议相关内容参考Bittorrent 协议浅析(五)拓展协议 及 元数据传输拓展进行了解...,该拓展标识为ut_holepunch,下面是一个仅包括穿透拓展握手实例,这里选择了 4 作为信息 ID,在实际过程不同下载器会有不同选择: { m: { ut_holepunch: 4...端口(2 字节); 4 字节 错误代码,若无错误为 0 支持消息类型包括: 类型编码 类型 描述 0x00 rendezvous 会面,向发起对等点和目标对等点发送连接消息 0x01 connect...基于 UDP Tracker 在 BitTorrent 标准协议,节点使用 HTTP 方式与 Tracker 服务器进行通讯获取节点列表,请求内容和响应内容相对较短,在此情况下,需要建立 TCP

81262

DPI、DFI技术说明及比较

DPI 技术就是通过对应用流数据报文内容进行探测,从而确定数据报文真正应用。虽然非法应用可以隐藏端口号,但目前较难以隐藏应用层协议特征。...如:Bittorrent 协议识别,通过反向工程方法对其对等协议进行分析,所谓对等协议指的是peer与peer之间交换信息协议。...对等协议由一个握手开始,后面是循环消息流,每个消息前面,都有一个数字来表示消息长度。在其握手过程,首先是先发送19,跟着是字符串“BitTorrent protocol”。...那么“19BitTorrent Protocol”就是Bittorrent“特征字”。 (2)应用层网关识别技术 某些业务控制流和业务流是分离,业务流没有任何特征。...应用层网关需要先识别出控制流,并根据控制流协议通过特定应用层网关对其进行解析,从协议内容识别出相应业务流。对于每一个协议,需要有不同应用层网关对其进行分析。

5.1K51

Swarm和Whisper是什么鬼?

以太坊智能合约smart contract实现了分布式逻辑,以太坊Swarm实现了分布式存储,以太坊Whisper实现了分布式消息,Whisper将实现智能合约间消息互通,届时可以实现功能更加复杂...Swarm 区块链能很好地存储少量数据。 如果你想要存储病历,销售合同或需要公开时间戳大型文件该怎么办呢?在区块链存储大块数据是昂贵并且不可扩展。 Swarm 被用来解决这个问题。...swarm是点对点文件共享,它与BitTorrent相似,但用以太币为微报酬作为激励。文件被分解成块,分配并被参与志愿者们储存。...当你希望有人使用您合约时,你需要提供部署地址和 ABI 。 将来,ABI 会被存储在 Swarm ,以便每个人都可以通过查看以太坊地址来查找 ABI。...1,都是通用分布式存储解决方案; 2,内容分发协议; 异: 1,Swarm使用Ethereumdevp2p(协议多路复用,通过帧,加密,认证,握手协议消息API标准,对等连接管理支持,节点发现进行消息交织

2.6K30

—— 种子与文件下载相爱相杀

就和自然界种子一样,包含了日后形成一颗果实所需要最基本成分。 而这个.torrent后缀其实指的是支持 BitTorrent 协议文件。BitTorrent 简称 BT,俗称比特流。...在 P2P 模式,服务和资源分布化,资源不集中存储在某些设备上,而是分散存储在运行 P2P 程序设备上,每一个对等方都可以为其他对等方提供服务。...BitTorrent 协议 维基百科对 BitTorrent 解释是: BitTorrent 协议(简称 BT,俗称比特洪流、BT 下载)是用在对等网络中文件分享网络协议程序。...在大多数人感觉 BitTorrent 与 P2P 成了对等一组概念,而它也的确将 P2P 技术发展到了近乎完美的地步。 原理 介绍完 BitTorrent 协议后,我们来说说他原理吧。...3.根据 Peers 信息与一个 Peer 建立连接,依据 Peer wire 协议完成握手,并从 Peer 端下载数据文件。同时监听 Peer 连接,并给 Peer 上传数据文件。

1.3K20

硬核干货:6000字 30张图,带你彻底搞懂BGP动态路由!

根据从每个 BGP 对等接收到更新消息,形成一个 BGP 表,并将该表最佳路由发送到路由表。如果任何更新消息包含错误,BGP 对等将发送 NOTIFICATION 消息并进入空闲状态。...图片BGP update消息BGP update消息用于在 BGP 对等之间传递路由信息,update消息用于通告共享公共路径属性可行路由,或从服务撤消不可行路由,两者都可以在单个 update消息完成...开始定期交换 Keepalive 消息。与 BGP 更新消息交换路由信息。图中标红过程就是TCP三次握手握手成功就是建立完TCP连接了。...图片如图显示了AS 1 R11、R12、R13向外部区域AS2对等R21通告No-Export路由。2、No-AdvertiseBGP 发言者不会将该路由通告给任何对等,包括内部和外部。...图片如图显示了AS 1 R11向对等R12、R13、R21发布了Internet路由。

1.5K61

BitTorrent:揭秘文件共享魔力

BitTorrent 协议概述BitTorrent 协议核心思想是将文件分成小块,每个小块通常为 256KB 或 1MB 大小。这些小块可以同时从多个来源下载,从而提高下载速度。...DHT 网络DHT(分散式哈希表)是 BitTorrent 协议一种附加功能,用于帮助下载者找到其他下载者,而无需 Tracker 服务器。...对等交换(PEX)PEX(对等交换)是 BitTorrent 协议另一项技术,用于在下载者之间直接共享对等信息,而不需要 Tracker 服务器。...PEX 通过下载者之间交换来传播信息,例如哪些文件块正在下载,以及它们可用性。PEX 工作原理如下:对等发现:当你 BitTorrent 客户端与其他下载者建立连接时,它可以交换对等信息。...了解 BitTorrent 工作原理对于用户更好地理解如何使用这一协议来下载和分享文件至关重要。在 BitTorrent 分布式网络,合作和分享是实现高效文件传输关键。

39061

详解P2P技术

公共域协议 许多Gnutella客户机实现Gnutella协议 覆盖网络: 如果对等方X和Y维护了一条TCP连接,则说X和Y之间有一条边 所有活跃对等方和边组成覆盖网络...: 加入对等方 加入对等方X必须发现在Gnutella网络其他对等方:使用对等方列表 。...---- P2P文件分发:BitTorrent BitTorrent是一种用于文件分发流行P2P协议。 参与一个特定文件分发所有对等集合被称为一个洪流 (torrent)。...(邻居) 在下载同时给其它对等方上传文件块 对等方可能改变和其交换文件块对象 对等方会不断进入或者离开 一旦某对等方下载完了整个文件,它可以离开(自 私)或者继续留在torrent系统里(无私) BitTorrent...“覆盖网络” 当有N个对等方时,为找 到负责键,发送消息数 量负责度是O(N) 带捷径环形DHT 每个对等方知晓直接前任、后继以及捷径方IP 本例,将消息数从6减至2 DHT

2.5K30

1400字带你入门BGP边界网关协议,网络工程师必看!

英文全称:Border Gateway Protocol 中文名称:边界网关协议 一种动态路由协议 在 RFC4271 定义 二、BGP特点 2.1 可靠性 BGP 路由器之间用于路由信息交换连接使用...为了避免路由环路,如果收到 AS 路径包含自己 AS 号,路由器将拒绝接收路由信息。 五、内部BGP和外部BGP 外部 BGP (eBGP):用于不同 AS 对等之间。...建立对等路由器接口必须直连(同一网络),但是,可以通过使用 eBGP 多跳来避免。 内部 BGP (iBGP):在属于同一 AS 对等之间使用。...六、BGP 消息 BGP 在 TCP 3 次握手完成后发送和接收以下消息: 以下是每条消息说明: 6.1 打开 发送第一条消息,发送自己 AS 编号、保持计时器和 BGP 标识符。...保持计时器是假设 BGP 对等关闭时间量,如果在该时间量内没有从 BGP 对等收到诸如 KEEPALIVE 之类消息,保持计时器到期后,它会关闭连接并使从该 BGP 对等收到所有路由无效。

58840

【Rust日报】2023-10-08 Orca 简介:LLM 编排框架!

介绍 tdyne-peer-id-registry,一个 BitTorrent 对等 ID 解析库 我终于发布了tdyne-peer-id-registry,一个 BitTorrent 对等 ID 解析器...按照惯例,BitTorrent 客户端会在发送给跟踪器和其他客户端对等 ID 识别自己及其版本。...tdyne-peer-id-registry提供全面的对等 ID 解析器和所有已知 BitTorrent 客户端注册表。...我正在开发TORRENTDYNE,这是一项帮助诊断 BitTorrent 连接性服务。我为它构建一件事是 BitTorrent 协议干净、经过检测 Rust 实现。...重新实现 BitTorrent 协议琐碎部分有点烦人!我认为其他人没有理由重新发明轮子,因此我将在github 组织开源基本类型和构建块,以使协作和互操作更容易。

33940

p2p文件服务器,P2P文件传输

大家好,又见面了,我是你们朋友全栈君。 > 网络应用,存在两种主流体系结构。一种是C-S体系,另一种是P2P(对等网)体系。...fileId=60f67cb7ab64410d9600105a) **总之,在P2P体系对等方能够协助服务器分发文件,使客户端不仅是Bit消费者,也是Bit生产者。...** # P2P应用-BitTorrent P2P应用最广泛应用就是文件分发,而文件分发最著名就是BitTorrent协议,俗称BT。...相关概念 * 洪流:参与一个文件分发所有对等集合,即洪流客户端都在下载文件块,并且上传文件块。...(tracker要保存洪流对等信息,因此下载客户端每过一段实现需要向tracker通知一次,告诉tracker自己是否仍然在洪流) * D: 客户端接收到100个IP后,开始一个个尝试去建立TCP

1.4K10
领券