如果发现自己中勒索了,休眠可以成为一种自救手段么?

2017-05-20 14:24:54 +08:00
 acess
当然,最好还是做好预防,多备份。
不过,看到最近有人提供了 WanaCry 解锁工具,感觉想方设法 dump 出内存还是有可能提高获救概率的(当然,如果倒霉“睡死”了就彻底 GG 了):
https://blog.comae.io/wannacry-decrypting-files-with-wanakiwi-demo-86bafb81112d
如果 LZ 没理解错,这个解锁工具的原理是:在病毒进程的内存中搜索当初生成本机 RSA 密钥对的质数,然后重建出私钥。本来这个私钥是被勒索蠕虫用硬编码的 RSA 公钥加密了的,必须找病毒作者才可能给解密出来,现在 RP 够好就可以重建出来,然后就可以用它解密每一个被加密文件了(先用 RSA 私钥解密每个文件的 AES 密钥,再用 AES 密钥解密文件数据)。
这个方法利用条件很苛刻,必须让病毒进程稳稳地运行到现在才行,然而杀毒 /重启 /关机都会把病毒进程干掉……

PS:LZ 用 Win7x64 虚拟机试过这个工具,手动指定了 tasksche.exe 的 PID,然而并没有成功搜到私钥……
7661 次点击
所在节点    信息安全
55 条回复
acess
2017-05-20 16:21:23 +08:00
@GNiux wanawiki 打错,应该是 wanakiwi
loading
2017-05-20 16:23:54 +08:00
屁事没有,我 virtualbox 挂载主机 linux 是只读挂的,只给一个文件夹读写.

中招就直接快照恢复.
SelFree
2017-05-20 18:08:02 +08:00
@zwl2012 这个勒索软件开发时生成 RSA 密钥对( pub1, pri1 ),其中 pub1 编码在程序里,pri1 保存在服务器上。感染时在本地生成 RSA 密钥对( pub2, pri2 )然后用 pub1 加密 pri2,用 pub2 加密每个文件的 AES 密钥。正常途径要解密文件,就要用 pri2 解密每个 AES 密钥,而解密 pri2 就要用服务器上的 pri1。本帖的思路是 dump 生成( pub2, pri2 )时的质数,从而直接得到 pri2。
acess
2017-05-20 18:42:03 +08:00
LZ 猜测安全专家可能没想到微软的 Crypto API 居然没有清除掉内存中的质数,所以他们才没考虑 dump 内存的方法。
如果让 LZ 继续脑补,就是“阴谋论”了:如果 dump 内存的方法被广泛传播,潜在的勒索软件受害者可能未必把这条信息当回事,但勒索软件制造者倒是很可能在意这条信息,并开始思考如何应对内存 dump。所以,大家决定保持沉默,不把 dump 内存作为首选方法推广。更不用说通过休眠 dump 内存实际上是有“睡死”失败风险的……而且,病毒已经掌握机器控制权,什么都有可能发生,说不定检测到受害者想利用弱点进行破解,就直接撕票(比如删除私钥)。
binghe
2017-05-20 23:15:52 +08:00
这边有提供一个恢复工具,据说有人恢复出来了。具体的我不清楚,楼主可以试试。
http://mp.weixin.qq.com/s/LfMWu5LqfwLOk9bYZmeFOA
acess
2017-05-20 23:51:16 +08:00
@binghe 广告而已
SuujonH
2017-05-21 00:14:15 +08:00
知道这个工具的人都早就打了补丁不会中毒,中了毒的再去下也来不及...
acess
2017-05-21 00:15:55 +08:00
@SuujonH 欧洲刑警组织都在 Twitter 上转发了,这玩意已经不是技术宅限定了吧。
不过我想说的是为啥各大安全厂商不建议大家想办法 dump 内存,明明 dump 下来可以增加完全恢复概率的。
reizen
2017-05-21 00:42:30 +08:00
插嘴问一下,希望不要被打。如果硬盘满了,或者剩余空间不够放第一个被加密后的文件时会出现什么情况?
wevsty
2017-05-21 01:18:46 +08:00
不赞成休眠这种操作
1、并不是每个人的机器都会开启休眠这个功能的。如果没有开启休眠,手动启动休眠会写硬盘,这次只是碰巧能从内存 dump 找到密钥而已,找不到密钥很大程度上对硬盘做数据恢复可能还有点用,而休眠这种写硬盘的操作没准真就会让可以恢复出来的文件 gg 了。
2、在内存中找到密钥的条件太苛刻,对普通用户来说难以操作,这次是影响太大才会有这么多研究,没办法保证有这样能力的人次次都来帮助普罗大众。
3、CryptReleaseContext 这个函数不销毁 key,msdn 明确指出了
This function does not destroy key containers or key pairs.
objects should be destroyed with calls to CryptDestroyKey and CryptDestroyHash before CryptReleaseContext is called.
见 MSDN: https://msdn.microsoft.com/en-us/library/aa380268.aspx
从逆向的结果来看,可能是 WanaCry 的开发者在这方面有失误。
4、病毒代码正在执行过程中可能会发生任何事,就算病毒代码阻止关机,阻止休眠也是完全有可能的,虽然这个例子中不存在,但是不能否认这种可能性。如果感染这种病毒,也许直接拉电源会更有效。
acess
2017-05-21 03:30:27 +08:00
@wevsty
1.我记得 hiberfil.sys 不是提前占过空间的吗,这样应该不会影响数据恢复啊……看样子我可能确实姿势水平不够。
2.我也没说一定能找回来,现在提这个看上去确实很马后炮,不过我还是觉得,想办法 dump 出内存可以提升获救的概率——就是赌一把。
3.原谅我的姿势水平不足……我只是看过主贴那篇分析文章而已,看得还不仔细,但我记得作者说过勒索作者没犯错来着……
4.我觉得除非碰到腹黑变态的勒索制造者,休眠操作可以阻止病毒继续运行传播,而且好像不会比拉电源有太多显著的坏处(不知道对不对)。
acess
2017-05-21 03:31:36 +08:00
@wevsty Win8 起,因为快速启动,开了休眠的人应该挺多的。但 hiberfil.sys 如果“伸缩”了,可能的确会覆盖掉本来有希望恢复的数据。
acess
2017-05-21 03:37:16 +08:00
@reizen 拍脑袋想一下:病毒可能会直接尝试覆盖原文件,而不是创建新文件。为啥 WanaCrypt 没这么做我就不懂了。
acess
2017-05-21 03:49:14 +08:00
@wevsty
刚刚回复得有点急……可能我说的有点缺乏逻辑。
刚刚稍微缕了一下思路:
我一开始以为休眠不会造成坏影响——反驳:hiberfil.sys 可能伸缩,然后就可能吃掉原本有希望恢复的文件。
我认为休眠可以增加获救概率——反驳:根据最初的分析,通过数据恢复途径“自救”更有价值。休眠反倒可能阻碍数据恢复。
可能安全专家们的确缺失了 CryptReleaseContext 的一些犄角旮旯的知识,也可能他们虽然知道这些知识,但害怕复杂的语言影响传播,所以最终还是选择放弃宣传内存 dump 这条路。
过了那么多天才出现搜索质数的自救方案,只能说遗憾。
acess
2017-05-21 04:00:26 +08:00
@wevsty
稍微搜了一下,好像又找到支持休眠的消息了:
https://superuser.com/questions/746290/what-happen-if-we-reduce-the-size-of-hiberfil-sys
看上去就算 hiberfil.sys 不够大,也只会休眠失败,而不会撑大这个文件?
果真如此的话,休眠的坏处好像仅仅剩下腹黑变态的勒索作者可能做出撕票之类针对性报复行为了吧——但受害者一方也不是完全没办法吧,安全专家会逆向病毒样本,那么说不定还有机会把病毒作者的小花招干掉?
acess
2017-05-21 04:04:18 +08:00
@wevsty 从内存 dump 里找密钥可能的确很难,可能是知乎的答案让我产生了分析病毒这件事不难做的错觉……
不过,如果受害者中的是流行的勒索病毒,样本相似性很高,甚至大家中的都是一样的,那分析成本可能摊到每个受害者身上就不多了?
ifishman
2017-05-21 08:53:54 +08:00
@zwl2012 私钥加密,公钥解密是肯定可以的
YanwenSun
2017-05-21 09:53:20 +08:00
休眠文件也是会加密的吧 虚拟内存就是加过密的
acess
2017-05-21 10:16:02 +08:00
@Livid 虽然现在主要讨论的是 Windows,但是勒索软件在其他系统上也存在,dump 内存的思路应该也是通用的,也许可以再移动一下?
acess
2017-05-21 10:17:27 +08:00
@YanwenSun 不是开了 BitLocker 会加密整个分区,然后 hiberfil.sys 和 pagefile.sys 如果在被加密的分区就会被顺带加密么……除此之外还会有什么情况会加密它们?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/362636

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX