专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
海峡导报  ·  山姆超市,又出事了! ·  2 天前  
海峡导报  ·  山姆超市,又出事了! ·  2 天前  
文明福建  ·  共建网络文明你我都不是“局外人” ·  3 天前  
湖北市场监管  ·  【守年关 ... ·  3 天前  
51好读  ›  专栏  ›  看雪学苑

利用 SHA1碰撞的 BitErrant 攻击

看雪学苑  · 公众号  · 互联网安全  · 2017-03-08 18:02

正文


BitErrant 攻击


BitErrant 攻击是一个有趣的漏洞,它证明了当 SHA1 碰撞攻击成为可能时BitTorrent 协议可能会出错。SHA1碰撞攻击导致下载的文件数据块(chunk)可能被完全不同的数据块替换,损坏下载的文件或者触发后门功能。当受害者使用 BitTorrent 协议下载可执行文件时,攻击者可以通过提供更改后的数据块,来改变可执行文件的执行路径。谢谢 Google 和 CWI 的好伙伴,使 SHA1碰撞攻击成为现实!


概念验证


这里有两个具有不同功能的 EXE 文件(恶意文件有一个 meterpreter 将会监听所有网络接口),但是产生相同的 .torrent 文件。

biterrant_poc.zip (点击查看原文下载)

密码:biterrant.io

SHA1: eed49a31e0a605464b41df46fbca189dcc620fc5 (你知道,因为什么原因它会出错)


此外,这里有一个复杂的(LOL)框架,关于如何生成这样的可执行文件。 

事实证明大多数杀毒软件都是胡说八道:

正常文件在virustotal

恶意文件在virustotal


BitTorrent 工作原理



通过 BitTorrent 分发文件的第一步是:从原始文件(DATA)生成一个".torrent"文件。它是通过下面的步骤来实现的,首先将原始文件分割成固定大小的数据块,然后对每一块计算其 SHA1 哈希值。随后这些哈希值被连接在一起,并存储在 torrent 文件的 "pieces" 字典键值下。



当有人试图使用 BitTorrent 下载这个 DATA 文件时,首先"DATA.torrent"文件需要被下载并解析。根据 DATA.torrent 文件存储的信息,BT客户端搜索peers并下载原始文件(DATA)的数据块。为了确保 peers 不会发送恶意数据,客户端会使用存储在DATA.torrent文件中的哈希数据验证每一个下载的数据块。如果torrent文件中的哈希值与下载的数据块 SHA1 哈希值不同,这个有问题的数据块就被丢弃。


恶意文件的意图



攻击者可以创建一个可执行文件,这个文件在执行时看起来是无害的,但是会根据 SHATTER 区域内的数据更改其执行路径。当然,当用反病毒软件进行检查时,这个文件看起来是没有问题的,因为恶意代码被隐藏在一个加密的二进制对象(blob)中,并且永远也不会被执行。是这样吗?



好吧,不完全是这样。如果攻击者有两个大小相同的二进制数据块,具有相同的 SHA1 哈希值并考虑一些限制条件,生成两个数据不同的可执行文件但是产生相同的 .torrent 文件是可能的!



如果之前提到的限制条件都已经满足,那么这两个可执行文件现在有一个可以互换的数据块。攻击者可以替换这个数据块来触发代码中的恶意功能。



上图,根据哪一个数据块被 BitTorrent 协议获取来决定 shellcode 是否被执行。

原理是,当使用不正确的 SHATTER 数据,解密会产生垃圾数据。例如,shatter-2.pdf 碰撞数据被用来加密,shatter-1.pdf 数据被用来分发。在下载过程中,攻击者开始把使用 shatter-2.pdf 数据的文件做种,从而有效的替换那个数据块,这样对于那些非常不幸从攻击者下载了特定数据块的用户,将会触发 shellcode 的解密与执行。


FAQ


Q1:这个事情严重吗?


不严重,至少现在不严重。当这种方式被野蛮使用时,我可能会评估这个报告。


Q2:我如何保护自己?


始终交叉检查下载文件的 MD4 MD5 SHA1 SHA256 哈希值。 祝你找到发布哈希值的 torrent 网站。


这里还有一个选择,当生成 torrent 文件时,在生成的 torrent 文件中包含完整数据文件的 MD5 值。大多数时候它没有被使用,甚至不确定是不是所有 torrent客户端会检查它。



原文链接:https://biterrant.io/

本文由看雪翻译小组 FlamePeak 编译


热 门 阅 读:



利用汽车内置传感器数据 鉴别汽车驾驶员(上)@老司机

利用汽车内置传感器数据 鉴别汽车驾驶员(下)@老司机

【技术探索】EPS文件利用如何逃逸 EMET

....

更多优秀文章点击左下角“关注原文”查看!

看雪论坛:http://bbs.pediy.com/

微信公众号 ID:ikanxue

微博:看雪安全

投稿、合作:www.kanxue.com