-
-
[翻译]利用SHA1碰撞的BitErrant 攻击
-
发表于:
2017-3-6 15:08
4387
-
[翻译]利用SHA1碰撞的BitErrant 攻击
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哈希值不同,这个有问题的数据块就被丢弃。
恶意文件的意图
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课