MD5碰撞

MD5 碰撞算法伪装木马,躲过杀毒软件查杀,加入360白名单。MD5 碰撞发生器 v1.5,fastcoll_v1.0.0.5.exe,MD5 Collision Generator v1.5,根据王小云教授的算法写的MD5碰撞的程序。

快速MD5碰撞生成器,王小云改进版。这个生成器根据“构造前缀碰撞法”可以生成两个不同的文件,而这两文件的md5 sum却是一样的。

构造前缀碰撞法可制作两个内容不同但具有相同MD5验证码的文件。

刚才在 T00ls.net 看到个帖子,内容如下(内容有修改,去除了一些不重要的回帖):

楼主:
年前购买了一个免杀远,300¥一个月,免杀效果确实牛B,过国内外主流杀软,在手3个月都没杀,大概5月份360更新后要提示了,然后联系客服更新,这样陆陆续续更新了几次,效果都很好,9月底,360更新后全部杀了,然后联系客服,客服说以前的技术被360分析出来了,然后让我们等待2周时间,那边技术在研发新的技术,国庆节后客服发过来一个更新的远,我测试以后都过,在360进程查看器和网络连接查看都提示文件安全,但过了一天360又报文件为木马文件,我再次联系客服,客服让等1个小时,所技术正在解决,然后一个小时后,360又不杀了,提示安全(注:马还是以前的马,没有更新过,MD5这些都是一样的!)
难道远控的技术和360!!!,
求解!!!

楼主:
我想了解的是 为什么360杀了,然后一个小时后,同样的文件360又不杀了,其他什么认证,地下工作者我就不想去了解了

路人甲:
二种可能 360内部人卖马,360被日了

路人乙:
1.360内部人卖马
2.360被日了
3.lz傻了?

路人丙:
360收黑钱,不干人事,鉴定完毕。
还有你把这个马发别人那看杀不

楼主:
回复 路人丙
都不杀,已经测试过了

路人丁:
万一是远控的云端也在做某种远程更新呢?不能说MD5不变,就是有JQ,无凭无据。

路人戊:
exe的MD5不变,不代表exe肯定不下载新的DLL或其他的模块吧?

本人回复:
应该是认证环节 被人有空子可钻。。

本人回复:
我认为,最有可能的是认证环节,也就是360的白名单认证制度。
前提条件是,360是使用标准MD5值进行程序唯一性验证。
但MD5有个问题就是,碰撞算法,可以产生两个MD5相同、但功能不相同的程序。
把正常的程序提交上去后,让360认证,认证完毕,加到白名单,另外那个也“免杀”了。
据我所知,一年前(实际上是2005年左右的)出了一个东西,自动生成一样MD5值的程序的工具。
而且貌似支持根据指定程序生成一个一样MD5值的程序。
如果360不是使用标准MD5的话,其他算法也有此可能。

本人回复:
MD5 Test_A.exe:与 B 的 MD5 相同,但功能不同。

MD5 Test_B.exe:与 A 的 MD5 相同,但功能不同。

MD5 TestA.exe:
MD5:F9E99485F226E07627D5180EF95FA473
大小:20.1 KB (20,608 字节)
MD5 Test_B.exe:
MD5:F9E99485F226E07627D5180EF95FA473
大小:20.1 KB (20,608 字节)
(2011-10-11 5:48:05 补充:然后我跑去写了个小程序,MD5值一样,但功能不同,原帖以附件的形式存在,这里我给出下载地址。)
MD5
碰撞测试程序_示例程序.rar:http://115.com/file/clonsfie

实际上从2004年8月17,我国山东大学王晓云教授破解MD5的论文发布后,关于这个MD5碰撞算法的话题就不断,几年之后,就没人讨论了,在我们这一代很多人都没听说过,我也是一两年前知道MD5碰撞算法,当时查阅了部分资料,了解了个大概。
我又把这个话题拉出来讨论下,不过这次是讨论的木马免杀方面的。。。实际上也和免杀无关,只是从免杀想到的。
如上贴内容所示,如果能成功伪造MD5,那么躲过杀毒软件查杀,甚至加入白名单,都不是问题了。
题外话:我不知道360是不是使用的标准MD5算法验证文件的,我从没注意过。如果是的话,那么,现在杀毒软件中好像就只有360这个白痴还使用标准MD5算法验证文件……
不过从以下内容来看、、360还真的是用MD5算法验证文件的、、、真坑爹……
以下内容转自几年前其他人发表的文章:

以下是引用片段:
原来我总是很自信地以为:你有本事找到 MD5 的碰撞又如何?你难道还有本事让两个可执行文件的 MD5 一样,却又都能正常运行,并且可以做完全不同的事情么?
答:还真的可以.
http://www.win.tue.nl/hashclash/SoftIntCodeSign/HelloWorld-colliding.exe
http://www.win.tue.nl/hashclash/SoftIntCodeSign/GoodbyeWorld-colliding.exe
这两个程序会在屏幕上打印出不同的字符,但是它们的 MD5 都是一样的。
通读其论文后摘要如下:
这几位密码学家使用的是“构造前缀碰撞法”(chosen-prefix collisions)来进行此次攻击(是王小云所使用的攻击方法的改进版本)。
他们所使用的计算机是一台 Sony PS3,且仅用了不到两天。
他们的结论:MD5 算法不应再被用于任何软件完整性检查或代码签名的用途。
另:现在,如果仅仅是想要生成 MD5 相同而内容不同的文件的话,在任何主流配置的电脑上用几秒钟就可以完成了。
这几位密码学家编写的“快速 MD5 碰撞生成器”:http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip
源代码:http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip
测了一下 那2个exe md5 的确一样的。
运行结果不一样。 未必对现有exe 有实质性的威胁, 但是很明显 是有威胁的。 如果可以加入木马。重新算出md5 的话
那就厉害了

以下是引用片段:
用易语言编译的两个EXE,文件内容不同,但是MD5相同。有图为证。
两个EXE均打包在附件里,人格担保EXE很纯洁(为了压缩体积,加了UPX壳)。
如果你怀疑这两个EXE其实是相同的,而我只是根据某些外部特征来实现不同的运行效果的话,你就尽情地测试吧。
比如你可以把它们随意更改文件名、复制到其他电脑中运行、虚拟机中运行一个并在真实机器中运行另一个,都不会有任何影响,A还是A,B还是B。
你可以使用一些二进制编辑工具来比对两个EXE文件,你会发现它们的不同。也可以像我上传的图片那样,比对包括MD5在内的其他类型的hash。你得到的答案仍然是:它们的文件内容不同,而MD5相同(其他的HASH特征值均不相同)。
仅供娱乐,有兴趣搞清楚怎么回事儿的,就多顶本贴,哈哈。
PS:不要骂人,说了本贴仅供娱乐,顺便讨论一下MD5而已。

以下是引用片段:
用事实说话MD5破解:md5一样两个不同功能内容的文件(附md5破解工具)
能力有限,就不多说了。用事实说话,先看看下面两个在网上满天飞的md5一样二内容功能不同的程序吧:
文件一:
File: D:\HelloWorld-colliding.exe
Size: 41792 bytes
Modified: 2010年5月21日, 15:38:12
MD5: 18FCC4334F44FED60718E7DACD82DDDF
CRC32: 8BEB795C
文件二:
File: D:\GoodbyeWorld-colliding.exe
Size: 41792 bytes
Modified: 2010年5月21日, 15:38:29
MD5: 18FCC4334F44FED60718E7DACD82DDDF
CRC32: 9EDE53DB
可是我们能不能自己制作两个md5 一样而内容不同的文件呢?请继续看下面的操作截图(后附工具)
以上就是大名鼎鼎的”构造前缀法”破解md5 的方法(以下就提供破解工具和”构造前缀法”的含义)
破解工具: Fast 破解工具.7z (88.75 KB, 下载次数: 67) 2010-6-8 12:14:15 上传下载次数: 67
下载积分: PB币 -1
-p 前缀文件(破解工具会以此文件为前缀构造md5碰撞文件)
-o 出处文件(默认的输出文件名是-o msg1.bin msg2.bin)
到这里又有人会问,能不能自己制作一个是病毒木马、一个是正常无害的两个md5 一样的文件呢???
答案依旧是肯定的,下载下面两个文件你就知道了(由于论坛不能放木马之类等,所以只提供外链地址)
http://down.qiannao.com/space/file/ishagua/-4e0a-4f20-5206-4eab/package1.exe/.page
http://down.qiannao.com/space/file/ishagua/-4e0a-4f20-5206-4eab/package2.exe/.page
以上这两个文件一个自解压后是木马病毒一个自解压后是一个平常的Word 文档
依旧会有人问,这是怎么生成的?(这个就不能奉告了,有兴趣的话自己慢慢研究吧,累了)。

以下是引用片段:
给大家个好玩的,,关于MD5碰撞,及360的信任列表隐患,将在6点半更新
纯讨论
不是谈怎样利用,,,,
视频地址:http://dl.dbank.com/c0bap33a8n
记录:
MD5碰撞
首先
先演示一下这两个刚碰撞出来的文件
文件名称:C:\Documents and Settings\Administrator\桌面\1\cbi.exe
文件大小:410240 字节
修改时间:2011年10月10日 16:43:41
MD5 :6EF59C9E016669DD3146B658D11C0A8F
SHA1 :2580646F0803AF53E0B7E70A1A1425CE210723B3
CRC32 :6F75148B
文件名称:C:\Documents and Settings\Administrator\桌面\2\cbi2.exe
文件大小:410240 字节
修改时间:2011年10月10日 16:43:41
MD5 :6EF59C9E016669DD3146B658D11C0A8F
SHA1 :C6A32B97C2E5C9584AB6428D490A1EA1CEE3FCC4
CRC32 :09F69A39
大家可以看出,,两个文件的md5值是完全相同的
但是sh1 crc32却是不同的,,说明这两个文件不是相同文件,,但是
md5相同,这就是碰撞
再来看一下刚刚碰撞出来的360安装包
文件名称:C:\Documents and Settings\Administrator\桌面\cbi.exe
文件大小:32131264 字节
文件版本:8.3.0.1024
修改时间:2011年10月10日 16:34:55
MD5 :686C066950B31203D6B688519498F943
SHA1 :78D15715E393E7F2847F189D2F1C79BF17B3AB55
CRC32 :6CDBAA4E
文件名称:C:\Documents and Settings\Administrator\桌面\cbi2.exe
文件大小:32131264 字节
文件版本:8.3.0.1024
修改时间:2011年10月10日 16:34:54
MD5 :686C066950B31203D6B688519498F943
SHA1 :8F9A9A9036063B7596D3CE2DF151E722AFB0396A
CRC32 :65D9B793
同样的,md5相同 sha 和crc不同
如何做出这些呢 ,都来自一位叫王小云的密码天才的思路弄的 而且完全不会影响运行
两个安装包皆可运行,,md5相同,,内容是不同的
或许很多人会说sha1呢,,,很遗憾 05年王小云把sha1也破解了,,,,,
所以,,云在验证这方面还有电子商务这方面都要有所改进了
不说太远的,,回归话题,,说一下360本地的信任机制
可以看到 360报毒了
接下来 我们把它添加到信任 列表
很多人以为,360的信任列表是匹配路径的,,其实错了,,是直接将md5加入白名单
我们来试试把这个文件移到其他地方
可以看到,,这个文件运行成功了,,这验证了
“很多人以为,360的信任列表是匹配路径的,,其实错了,,是直接将md5加入白名单”
这个结论
接下来,,我们来看看是不是一定是md5 还是其他算法
我们采用相同md5,但是sha1和crc完全相同的两个文件来运行,,同样的 可以运行,,由此可看出,,
360不是将路径加入信任列表,,
而是将md5加入信任列表,,,
或许目前来看这还算安全,,虽然已经能随意产生两个md5完全相同的了,,,但是用在特殊方面,,这无疑是个巨大的漏洞,,
呵呵 ,,只是想探讨下

以上是相关的资料,需要其他资料可以自己去搜:md5 碰撞,有大量资料查阅。
实际上,MD5 值一样,但功能不一样的程序很容易实现,需要一点编程知识,及一点点技巧。。。
方法你自己多试几次就知道了。。。
我自己写的俩小玩意儿如下图所演示:

MD5 Test_A.exe

MD5 TestB.exe
MD5
碰撞测试程序_示例程序.rar:http://115.com/file/clonsfie
用到的工具如下:
1、MD5 碰撞发生器 v1.5 (MD5 Collision Generator v1.5)
2、一点点编程技巧
官方地址:http://www.win.tue.nl/hashclash/
下载地址:http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5.exe.zip
源码下载:http://www.win.tue.nl/hashclash/fastcoll_v1.0.0.5_source.zip

MD5 碰撞发生器 v1.5,MD5 Collision Generator v1.5:
MD5 碰撞发生器 v1.5
MD5 Collision Generator v1.5
示例:

fastcoll_v1.0.0.5.exe -p C:\WINDOWS\system32\cmd.exe
fastcoll_v1.0.0.5.exe -p C:\WINDOWS\system32\cmd.exe -o a.exe b.exe
--------------------------------------------------------
MD5 collision generator v1.5
by Marc Stevens (http://www.win.tue.nl/hashclash/)
Allowed options:
  -h [ --help ]           显示选项。
  -q [ --quiet ]          更简洁。
  -i [ --ihv ] arg        使用指定的初始值。默认是MD5的初始值。
  -p [ --prefixfile ] arg 使用给定前缀的文件计算初始值,并复制数据到输出文件。
  -o [ --out ] arg        设置输出文件名. 这必须是最后的选项,并且必须指定两个文件名。
                          默认: -o msg1.bin msg2.bin
--------------------------------------------------------
MD5 collision generator v1.5
by Marc Stevens (http://www.win.tue.nl/hashclash/)
Allowed options:
  -h [ --help ]           Show options.
  -q [ --quiet ]          Be less verbose.
  -i [ --ihv ] arg        Use specified initial value. Default is MD5 initial 
                          value.
  -p [ --prefixfile ] arg Calculate initial value using given prefixfile. Also 
                          copies data to output files.
  -o [ --out ] arg        Set output filenames. This must be the last option 
                          and exactly 2 filenames must be specified. 
                          Default: -o msg1.bin msg2.bin
赞(0) 打赏
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

    暂无评论...