MENU

"比特币勒索病毒" for Linux

2017 年 05 月 19 日 • 杂乱文章

卧槽,卧槽,卧槽,最近真是惊喜不断,好事连连啊,先来说说这星期我都干了些什么吧。上周收到客户经理通知,五天之内需要把机房服务器位置移动一下,移动到别的机柜,15号之前封网,就是不让去机房了,我问的很清楚了,我说我去了直接开拆就行是吧,客户经理说对,他已经用邮件的方式通知他们了,之前就是发邮件,这个我知道,让我们去了直接移就可以了,然后就等,等到周二。

六台服务器,一个防火墙,一个交换机,其实要移动服务器到别的机柜,我这种事情对我真的是没什么,也就算是个体力活了,但是我怕那个硬件防火墙,型号为Cisco ASA 5520,卧槽,我对这玩意都有阴影了,之前被他差点搞死,我去之前查了一下怎么保存配置信息,然后就保存了,顺便把配置信息复制出来一份,以防万一吧。
然后周二了,我和一个同事去了,到了以后没管那三七二十一,先是让在公司的人把服务器全部正常关机,然后开拆,全部移动到新位置之后,就差网络这一块了,这个需要机房的人来弄了,我就去找机房的人了,我说帮忙把xx公司的网络调一下,服务器移动完了。然后那人一脸懵逼的表情看着我,说,我没看见你们公司的工单啊,下工单了吗?我这样一听,不对劲啊,之前都是看邮件的,现在怎么还开始问工单了?我就说我们客户经理给你们这头发过邮件了,你找一下,然后他说了一句,现在不用邮件了,必须得有工单才可以操作,我问他这规定是从什么时候开始的,他说是上周开始的,卧槽,有一种不好的预感了,我们客户经理给他发邮件,是不是他根本不知道这回事,然后我就给我们客户经理打电话,他的第一句话就是白先生你好,服务器移动完了是吗,我的内心,微笑中透露着MMP。我说机房这头必须得收到工单才能操作,现在发邮件是无效的,果然,被我猜中了,他说昂,现在那套后台系统他有了,但是现在不在单位,说下午回去了给我操作一下,我说好吧,尽量快点吧,然后到了吃饭的时间,就出去吃饭了。

吃完饭回来,1点多,我又给他打电话,问他完事了没,他说还没到单位,只能等了,然后三点多,又打,说刚到,卧槽,我今天是终于知道为什么说国企适合养老了,哪个国企我就不想说了,再然后四点多吧,他给我打电话,我以为开完了,结果他说你们今天就别在那里等了,今天可能做不完了,客户关系还有没有建立,完成这个操作这个可能要一段时间,WRNMMP,老子服务器都拆了,你说今天搞不了了,我又和他说,能不能和机房这头商量一下,今天就搬过去,他说他商量过了,还没有预留这个柜子,这个柜子还不是属于你的,所以一切都得复原,等啥时候他那里下完了啥时候打电话通知我。今天都周五了,还没信,我真是服了。没办法,又把服务器全部搬回去,开始调试,结果那天调试到凌晨1点,真是日了狗了,线也没来得及捆上,下周还得搬,暂时就这样吧。

然后今天,也是就是2017年5月19日,星期五,有人在群里喊我,叫我还他服务,卧槽?我一脸懵逼,我干嘛了,应该是服务器崩了吧,点开QQ一看,嗯?怎么会这样,我看图片是项目不见了。看图。

我刚开始因为他连错服务器了,我连上以后看了一下,卧槽,还真没了,我也感觉到服务器运行速度明显下降了,先是top看了一眼,呵呵哒,估计是被干了。

然后我又开了一个窗口,打算找一个这个进程,我有个习惯,连上之后保证会先执行ls,然后Ctrl+L清一下屏,有些东西就是一闪而过,但是刚刚感觉上面多了点东西,我往上一翻,果然是,具体是啥东西,如下。

然后我很好奇的用百度翻译了一下那段英文,看翻译内容,怎么感觉这妈的怎么和那个勒索病毒类似,也有个URL,我也打开了,我没想错,还真是。难道变种出Linux版的了?

URL地址:https://ghostbin.com/paste/ggw5w,打开之后酱紫,想知道啥意思的自己翻译去吧。

其实我第一眼看到的是那个FBI,我本以为它后面会有一个warning,但是没有,哈哈哈哈哈,看他那个意思是已经把服务器上的文件删掉了,有一份是存在他们自己的服务器上,需要支付1比特币,然后把丢失的文件取回来,没写多长时间删除,但绝对会删,看第三行就知道了。我查了一下,一个比特币现在都特么12K了,我记得两个月之前只有6K,估计就是被那病毒炒起来的。看完这个以后,其实我的内心毫无波澜,甚至还有点想笑,这根本就不是什么所谓的勒索病毒,而是有人打上我们服务器了,但是我很好奇,我的密码设置的很复杂,是怎么打上来的?其实我也很庆幸,这只是个测试的服务器,至于丢的那些东西嘛,都有备份,我现在最期待的是他们服务器上的东西赶紧删了吧,反正你留着也没用,我们是不会交那一比特币的,哈哈,去年也被黑了一次,也是测试服务器,上次是被人家通过tomcat管理页面传上来一个项目,是被肉鸡了,这次和上次不一样,比上次的严重。然后搜索那个进程,百度了一下,按着这篇文章,彻彻底底的查了一下,发现了一点问题,顺便解决了,啥问题下面再说,然后重新把丢掉的东西放上去,继续用。

正题:我刚刚也很好奇,他是怎么打上我服务器的,上面文章提到了,没错,就是redis未授权导致的,也就是说外网不用密码直接登录我的redis,然后创建authorized_keys文件,我不可能睁着眼说瞎话,一起来看一下ssh登陆log吧。

首先先把今天的登陆日志全部获取出来,服务器是13点左右发现的问题,所以就取到13点的吧,操作如下。

[root@cloud ~]# sed -n '/^May 19 00:/,/^May 19 13:/p' /var/log/secure >> /root/login

然后检索该文件,把成功登陆的找出来,包括使用密码、秘钥登陆的。

查到了一些异常,一个来自战斗民族的IP,我记得很清楚,我从来没有给这个服务器添加过任何秘钥,Accepted publickey代表秘钥登陆,就这好解释了,只是服务器被入侵了而已,不是所谓的勒索病毒,黑客删掉我的文件,然后自己留一份,修改/etc/motd添加提示信息,还在/root留了一份READ_ME.txt,让我去用一个比特币赎回文件,这他妈的就比较过分了,我不敢确定他留没留,你要有兴趣可以去试一试,上面赎回方式写的已经很清楚了,哈哈。

最后关于redis这块,因为这是个测试服,当时随便搞的,密码验证也没加,总之是什么都没加,哈哈,我现在的情况是两台服务器之间做的集群,也有个单机的redis,估计就是在单机这里被打上来的,因为默认端口6379就没改过,而且集群也是用公网IP做的,因为两台服务器之间内网不通,没办法这个,只能用公网IP,如果你没涉及到公网访问,就把redis端口在iptables上关掉了,或是在redis配置文件里面bind指定IP,加个密码验证。

因为要加别的要重启redis,而我不想重启,而且我涉及到外网访问,那就需要用到iptables做一些限制了,就是指定IP才访问redis端口,除了被允许的,其他的全部拒绝,现在必须能连接redis服务器的只有两个,集群之间必须得互通,也就是redis服务器2,还有就是web服务器需要连接redis,web服务器只是去连接redis,那就写iptables规则吧,开撸。

在redis服务器1上禁止7000 7001 7002 全部IP访问。在redis服务器2上面禁止7003 7004 7005全部IP访问,然后再允许指定IP,现在我的防火墙规则为默认的,注意,下面的iptables规则的顺序不要错了,否则保证会出问题,我就以redis服务器1的7000端口举栗子了,剩下的一样。

1.首先禁止redis服务器1上面7000端口的全部访问,然后再把允许的IP写进规则,首先先禁止,看效果。

[root@cloud ~]# iptables -I INPUT -p tcp --dport 7000 -j DROP

我就用redis服务器2和web1做示范了,这两个是必须连接到redis服务器1的,效果就是禁止访问以后访问不通了。

2.然后允许这两个服务器连接到redis服务器1的7000端口,IP上面标注了,我就直接写了。当然也得允许本机IP。

[root@cloud ~]# iptables -I INPUT -s 45.120.0.0 -p tcp --dport 7000 -j ACCEPT
[root@cloud ~]# iptables -I INPUT -s 103.229.0.0 -p tcp --dport 7000 -j ACCEPT
[root@cloud ~]# iptables -I INPUT -s 43.243.0.0 -p tcp --dport 7000 -j ACCEPT
[root@cloud ~]# iptables -I INPUT -s 127.0.0.1 -p tcp --dport 7000 -j ACCEPT

效果就是这两台服务器可以通,但是我本地IP没有加进去,所以本地不通。剩下的也是这种方式添加进去,我就不写了。

然后保存防火墙,并重启。

[root@cloud ~]# /etc/init.d/iptables save > /etc/sysconfig/iptables
[root@cloud ~]# /etc/init.d/iptables restart
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
iptables:应用防火墙规则:                                 [确定]

做完以上操作,一定要进行测试,如果后续需要添加规则,语法如下,顺便看一下全部添加的规则吧,这是我redis服务器1的iptables配置信息,集群通讯端口也要开哦。

[root@cloud ~]# iptables -I INPUT -s ip -p tcp --dport 端口号 -j ACCEPT

最后编辑于: 2018 年 12 月 10 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码