聊聊WannaCry电脑勒索病毒

作者: | 更新日期:

实际上我不喜欢蹭热点的,现在由于某些原因简单记录一下。

本文首发于公众号:天空的代码世界,微信号:tiankonguse

大家好,这里是tiankonguse的公众号(tiankonguse-code)。
tiankonguse曾是一名ACMer,现在是鹅厂视频部门的后台开发。
这里主要记录算法,数学,计算机技术等好玩的东西。

这篇文章从公众号tiankonguse-code自动同步过来。
如果转载请加上署名:公众号tiankonguse-code,并附上公众号二维码,谢谢。

零、背景

面对新闻热点,我不喜欢去蹭热点,因为有太多的媒体博客说这些事情了。
比如这次的WannaCry,我只是静静的观察,没有兴趣去研究它,因为我认为人们需要经历一次甚至多次这样的灾难才能认识到被自己忽略的哪些东西其实很重要,虽然我之前恰好研究过这些东西。
我的一个信念是:面对一件自己不能改变又不正确的现象时,就让那种不正确的现象继续发展, 直到酝酿成一种不可挽回的结果时,人们自然就会重视那些东西,虽然可能需要付出惨痛的代价。 扯远了。

今天老婆说她们学校需要对电脑检查是否感染病毒,以及进行安全配置。她负责管理几个服务器,需要自己配置,于是我还是了解了一下具体预防细节。

一、小白级病毒原理

微软windows系统在很早之前爆了一个漏洞,通过445端口就可以控制你的电脑,微软也在三月份发布了补丁。
这个病毒控制电脑后做几件关键的事情:

  1. 感染:对一些文件进行加密,然后敲诈用户支付比特币虚拟货币。
  2. 传播:作为病毒,自然会自发传播了,于是这个病毒还是扫描其他电脑,然后尝试感染之。

二、小白级问题

这里有几个问题,可能需要解释一下。

1. 中毒了怎么办?

中毒了赶紧把网线或关闭WIFI,别把别人感染了。目前文件不能彻底找回来。

2. 没中毒怎么预防?

使用防火墙关闭445端口。
为了安全, 把一些常见的不使用的高危端口都关闭了,高危服务都停了。

3. 怎么操作?

对于小白,最好的操作自然就是点几下鼠标了。
可能从13号到现在15号,看到的都是一堆图文教程,对于小白肯定头晕啦。

三天了, 竟然没有人写脚本工小白使用,安全行业也需要一个好的产品经理。

于是具体操作参考下一小节。

三、小白级操作

对于非程序员,让你们去操作一大堆配置显得很困难。
于是我写了一个脚本, 双击即可完成关闭高危端口,回复公众号得到下载地址。

程序员可以回复:WannaCry_dev
小白可以回复:WannaCry_xiaobai

四、高级小白原理

小白到这里就可以跳到下一小节了。
当然感兴趣的小白和程序员可以继续看。

1. 加密原理

起初看到这个勒索病毒,我猜想如果分析了病毒代码执行的细节,是对称加密的话就可以解密了。
比如你使用密码把文件加密了,还需要同样的密码把密码解密是吧。

后来看到新闻有人说使用不对称加密。
于是我想如果不对称的秘钥都是本地生成的话,也可以破解的。
然后又有人暴露出最终使用的不对称加密本地没有私钥。

好吧,及时没有私钥,其实还有方法可以破解的。

不对称加密的计算量其实很大的,所以一般都是使用对称加密对内容加密,然后使用不对称加密把对称加密的密码加密即可。

什么意思呢?
假设你有两个锁:对称锁A和不对称锁B,以及对于的保险柜。
对称锁A很简单,加锁和解锁都很方便,保险柜A一下就加锁了,一下就解锁了,但是加锁和解锁使用的是一个钥匙,小偷很容易就把加锁的那把钥匙偷走了。
不对称锁比较复杂,加锁和解锁使用不同的钥匙,且加锁和解锁需要的时间与保险柜B的大小正相关(存的东西越多保险柜越大)。
现在我们为了快速的加锁解锁,我们可以先大的东西放到保险柜A中,使用对称锁A快速加锁,然后我们把对称锁A的钥匙存在不对称保存柜B中,然后加锁,由于保险柜B只存了一个钥匙需要很小的保险柜就可以存下,所以也可以很快的加锁和解锁,更重要的是小偷偷走了加锁的不对称钥匙B没啥用,打不开保险柜B。

2. 可能的破解方案

今天周一,还没看到有人说找到破解方法。
我不想参与这件事,但是分析了下,找到不对称锁B的解锁钥匙是不可能了,找到那把对称锁A的加锁钥匙还是有可能的(加锁和解锁是一个钥匙).

为什么这么说呢?
这依赖一个前提:所有文件使用同一个对称加密锁以及新文件可以继续感染病毒。

如果可以感染,那直接GDB单步调试,在锁A加锁的时候分析出钥匙即可。
如果不能感染或者每个文件单独生成对称加密锁了,那就需要想其他办法了。

如果每个文件都使用单独的对称加密锁的话,那就真的没办法了。
最近正流行那个自杀游戏,拿着不对称锁的那个人如果自杀了话, 那只能呵呵了。

五、结语

好了,不多说了, 这篇文章目的就是公布一下写的防火墙关闭端口的脚本。

对了现在开通了公众号和小密圈。
博客记录所有内容。
技术含量最高的文章放在公众号发布。
比较好玩的算法放在小密圈发布。
小密圈这周接受免费加入,欢迎大家加入看各种算法的思路。

长按图片关注公众号,接受最新文章消息。

本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。

关注公众号,接收最新消息

tiankonguse +
穿越