一次挖矿病毒告警的应急响应
0x00 事情起因
刚开始是实验室里师兄发了一张腾讯云告警的短信:
师兄以为是有人在做渗透,大家(包括我)也没当回事:
然后第二天又来一条挖矿病毒的告警,发现不大对劲了:
腾讯云给挖矿告警了,网上搜了下误报的可能性比较小,不管怎么说先上服务器看看怎么回事吧……
0x01 初步分析
因为事情发生的时候我正好在吃饭,同门先上去看了看,发现了一个奇怪的点:
一个账户的.ssh文件夹被人半夜修改过,进去authorized_keys
发现被人加了一个私钥:
这样一看八成被人搞了,原因如下:
- 我查看了服务器时间,发现和中国时间同步,半夜登录是明显的异常行为
- 该账户所有者在最近一段时间都没有登录过服务器
- 该账户的密码是弱口令,很大程度上存在被爆破的可能
然后查了下有关该用户的登录日志,发现三个登录成功的异常IP:
用微步分别查询了下:
1 |
|
到这里基本上就知道,服务器是弱口令爆破导致的失陷。
0x02 寻找病毒
探究清楚了服务器是怎样失陷的,下一步就是揪出挖矿病毒然后把它kill掉。因为考虑到黑客是通过弱口令爆破普通账户A上传的病毒,且root账户密码有一定的强度,黑客应该没有拿到root权限。我初步看了下该用户的home目录,没看到什么很可疑的东西……于是全盘搜索了属于被黑账户用户组的脚本文件find / -user <hacked_account> -name *.sh
,发现三个异常文件:
1 |
|
记得rsync是linux备份数据相关的东西,但是服务器上应该没有人用过,看了看sh也没找到外连的ip和域名信息……
所以这里就ps -ef | grep <hacked_account>
查看被黑用户所产生的进程,发现了一个奇怪的东西:
刚好在告警日期运行的该进程,百度搜了下发现真是挖矿病毒:
home目录没有这个东西,直接find / -name kswapd0
看看在哪里,发现就在/var/tmp/.X81z/.rsync/a/
这个目录——就是上面找到三个异常脚本文件的目录,看来是黑客利用rsync试图隐藏病毒。同时在.X81z
文件夹下发现了dota3.tar.gz
压缩文件,就是黑客所上传的压缩包:
0x03 脚本分析
怎么知道病毒在服务器上究竟干了什么?我用了微步的在线云沙箱分析了dota3.tar.gz
。
首先运行kswapd0
后,程序会在当前用户的.ssh
文件夹下写入私钥
1 |
|
然后就是简单粗暴的挖矿:
0x04 打扫战场
因为失陷用户已经不用了,所以直接pkill掉失陷用户的所有进程,然后userdel -r <hacked_account>
删掉账户。最后删除/var/tmp/.X81z/
挖矿病毒所属的文件夹,顺便把压缩包下载保存样本,并告知所有人更换更高强度的密码。
0x05 总结
关于此次事件的发生与应急响应,总结如下:
- 无论什么时候都不要使用弱口令
- 长时间不用的闲置用户需要定时删除
- 应急响应时仔细查看进程,检查服务,存在异常的文件夹更应该仔细检查
- 云服务商的告警信息也需要注意
另注:本文首发于土司