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 Test_A.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_碰撞测试程序_示例程序_a

MD5 Test_A.exe

MD5_碰撞测试程序_示例程序_b

MD5 Test_B.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

--------------------------------------------------------


2012-07-15 14:08:56 补充:

大约在9个多月以前,本人写了这篇文章,自从写了这篇文章之后,互联网上就热议不断,议论的内容则更侧重于免杀方面……

后来渐渐地出现了一种所谓“指定 MD5 值进行碰撞”的免杀方法,误导了无数人,后来本人又写了一篇关于这方面的文章,具体可以查阅以下链接:

指定MD5值碰撞,指定MD5碰撞免杀,修改木马MD5值和系统文件一致


2012-07-15 15:45:38 补充:

我发现仍有很多同学没搞清楚“两个功能不一样,但 MD5 值一样的程序”究竟是如何碰撞出来的。

关于这个话题,我单独写了一篇文章,具体请参阅:

如何碰撞两个功能不一样,但 MD5 值一样的程序的方法 + 源码公布

留言评论(旧系统):

【匿名者】 @ 2011-10-11 11:20:06

<style>那个帖子带来了新的过360方法,估计马上就又会被和谐。。。!!!

本站回复:

垃圾方法,早都有了。360也垃圾。。。目前杀毒界只有360使用标准MD5算法验证文件。

【匿名者】 @ 2011-10-11 11:57:19

工具好象不能让哪个.exe程序的MD5自定以变成哪个。

本站回复:

工具是根据指定文件,生成两个MD5一样的文件,并不是修改某个指定的文件MD5值为指定值,你自己根本没看清楚,根本没仔细阅读。工具根据你指定的文件,新生成两个MD5值一样,但内容不一样的文件,你只需要稍微搞点编程手脚。就可以达到MD5值一样,功能不一样的程序了。

【匿名者】 @ 2011-10-11 12:52:52

你只需要稍微搞点编程手脚。就可以达到MD5值一样,功能不一样的程序了。 求方法。

本站回复:

伸手党自重,谢谢。

【匿名者】 @ 2011-10-12 22:59:59

fuck老核。日老核。转你个文章你还要防盗链一下。又不是不备注出处。 明晚组队爆你菊花。哈哈。

本站回复:

vps 性能有限,前段时间把我这拖的卡的一B。。

【匿名者】 @ 2012-05-06 15:24:33

求使两个不同的文件,md5相同的方法

本站回复:

只能从一个文件新生成两个不同MD5的文件,反过来操作的话,需要大量的运算,目前无法做到。 你应该是想把你的木马搞成和系统文件MD5一样,劝你别搞了,孩子,无意义……

KingX @ 2012-07-16 10:50:34

其实两个生成的程序,是不是除了后缀之外都是相同的。

本站回复:

你的留言和文章内容牛头不对马嘴,你再仔细看完文章再问吧。

太极 @ 2013-01-08 12:52:26

http://www.win.tue.nl/hashclash/SoftIntCodeSign/HelloWorld-colliding.exe http://www.win.tue.nl/hashclash/SoftIntCodeSign/GoodbyeWorld-colliding.exe 这两个程序会在屏幕上打印出不同的字符,但是它们的 MD5 都是一样的。 通读其论文后摘要如下: 这几位密码学家使用的是“构造前缀碰撞法”(chosen-prefix collisions)来进行此次攻击(是王小云所使用的攻击方法的改进版本)。 好吧 核总 是我没仔细看文章,我认错 ^_^ ,但是hex比较了这两个exe,确实不一样。核总对“构造前缀碰撞法”可有研究? 能重新构造类似的程序吗?求给大家科普一下。谢谢。

本站回复:

你压根不看文章的啊,这是我原文中提到的国外科学家的例子,和我使用的碰撞方法完全一致(文中放出的例子程序)…… 只不过它是直接修改了输出的字符串,然后再使用程序产生修改过字符串后需要附加的碰撞数据,然后直接加在程序尾部…… 这种方法碰撞的,需要的计算量大一点(他的用了两天),而不修改程序直接在末尾附加碰撞数据的,需要的计算量要小一点,可以瞬间生成。重新构造类似程序的方法文中已提过…… 还有,大言不惭地说“研究”,十分可耻,因为这是别人直接给出的成果,只是拿来利用,美其名曰“研究”,真的很可耻……

hackbs @ 2013-01-18 15:22:17

研究了好久了还不是很清楚。大概的意思是不是,用MD5碰撞后会出现两个文件这两个文件尾部都有多出来的信息。 可是他们两个文件都是来自与同一个文件的。 有什么办法,一图片和一程序他们的MD5也一样,可以实现么?

本站回复:

看内容和IP,你应该就是“留言ID:3038”的同学了。你的“大概意思”,比较正确。 假设有文件A,通过某个MD5碰撞程序处理该文件之后,新生成文件 B 和 C,B 和 C 的 MD5 值一样,但文件内容不一样,这个过程就叫MD5碰撞。 你说的“一图片和一程序他们的MD5也一样”,文中已说过(见:http://lcx.cc/?i=2680),理论上来讲,这是可以实现的,但是这需要几乎无穷的计算,以目前计算机的计算能力绝无可能做到,如果你拥有数台的量子计算机的话,倒是可以试试…… 有很多人梦想着使用此种方法,将木马文件的 MD5 值碰撞成和系统文件一致,可惜,很遗憾,以目前计算机的计算能力无法做到……

hackbs @ 2013-01-18 17:50:29

那为什么我在一个论坛下载的。 是一张图片还有一个程序 大小一样 MD5一样、 这。。难道是 巧合么。 我不相信 巧合。。 这个问题我就是不能弄明白。不清楚 是怎么将以一图片 和一程序去碰撞。

本站回复:

地址发出来看看再说……

hackbs @ 2013-01-18 17:58:47

http://www.80lou.com/thread-197980-1-1.html 请站长过目啊。 而且他里面有个计算器 和 一个写启动的程序 MD5也一样 。。难道 里面有什么高科技么。

本站回复:

很忙,时间不多,粗略地看了一下,这个二流黑客论坛的教程中提到的“免杀方法”,用的正是本站文章(http://lcx.cc/?i=2680)末未提到的方法,完全照抄…… 还有,给出的示例文件并不是指定MD5碰撞,仍然是末尾附加数据式的快速碰撞,只不过这次是换成两个文件了。 至于具体方法,等过段时间有空了仔细看看。

hackbs @ 2013-01-20 09:08:02

站长有空么,我还在困扰那问题。。站长希望你能说下具体实现的方法。。这个未解之谜一定要解了他...

本站回复:

很忙,没有空。我知道你想干什么,我直接告诉你吧,其效果和你想象的用途差远了…… (看你说话语气,你有多大了?怎么感觉跟小孩似的……)

hackbs @ 2013-01-20 21:22:45

18了,学编程不久,喜欢研究免杀技术。我的程序已经免杀360全套了,可是360会自动上传,上传后不久就会被杀,然后我听人说360有漏洞,MD5,先上传一个正常文件,再上传你程序。360会被干扰,这时候你的程序会被显示暂无风险。百度找文章,就找到你网站了。

本站回复:

额,抓鸡、刷钻、免杀“黑客”……

hackbs @ 2013-01-21 08:53:32

- -.不刷钻. 不做这种伪劣的行为. 喜欢做360的免杀. 一来提高自己的水平 二来偶而抓鸡娱乐. 但是我绝对不会向那些所谓的用肉鸡刷钻什么的. 我从来没做过那种事情.

本站回复:

╮(╯_╰)╭