写在前面
23年11月的时候我写过一篇记录服务器被挖矿的情况,点我查看。当时是在桌面看到了bash进程CPU占用异常发现了服务器被挖矿。
而过了几个月没想到又被攻击,这次比上次攻击手段要更高明点,在这记录下吧。
发现过程
服务器用的是4090,i9-13900K,就我一个人在用,我也不跑什么大规模程序,按理说平常风扇基本不会一直响。今天来到实验室后发现风扇在狂转,过了一二十分钟后还是这样,我就意识到可能出了问题。
首先我看了眼桌面上占用资源较多的几个进程,没发现异常
而在上篇记录中,bash进程都超过了90多,只从这里看不出什么问题。
然后我又打开了资源管理器进一步查看
资源占用都不是很高,到这里还是看不出问题
我又回想起之前我同学又要用这个服务器跑程序(没错,又是他o(╥﹏╥)o),当时我就给了他一个公共用户,为了防止像上次一样被挖矿,我还特意改了下那个用户的密码。
但是由于他不在校园网范围内,所以走的是一个公网ip登的服务器,做了个端口映射。
我给他的用户是lab,由于他可能也要装软件,所以也给了sudo权限。
于是我查了下lab用户的进程
注意上面有几个可疑的地方
- 有一个Python程序,还是从昨天开始运行的,但这个用户最近并没有人使用
- 有一个远程ip:root@10.201.0.50,这就非常可可疑了,又没人使用,为什么会和一个远程ip有通信记录,还是ssh
- 鼠标放到Python那个进程显示如下
大致是python -a kawpow -o 127.0.0.1:4444 -u RMsn.lab --no-watchdog --no-strict-ssl
由于我也不是专门的运维人员,也不懂这些参数是什么意思,于是问了下ChatGPT
由于关闭了资源占用监控,所以资源管理器看不出什么资源占用异常
至此,确信了服务器确实又被攻击了
处理方案
最保险的方法还是重装系统,但上面有很多资料,所以先按如下过程处理下,之后再多留意下
这里参照了这个文章的处理方法:点我查看
首先是last命令查看最近登录的有没有异常ip
这里也看不出什么,可能记录被删除了
然后看下命令的历史记录history 500
,还是看不出什么
接着看下有没有什么定时任务
这里明显能看出有异常记录,进一步排查,看下这个定时任务的内容
这个脚本的作用是检查系统中是否有名为 javra 的进程在运行,如果没有,则执行 $locatie/root.sh 脚本,并将输出重定向到空设备,然后将这个任务放入后台执行。
而javara就是开头资源管理器中那个挖矿脚本,所以问题就在这里
去图中的/var/tmp/.log/.local目录看下有什么
这里我忘了截图了,该目录下放的就是javara还有其他脚本
把该目录下的文件都删除
之后在/var/tmp/.log还看到了lab的其他文件,为了以防万一,对所有以.开头的目录都执行了删除操作:find . -maxdepth 1 -type d -name ".?*" -exec rm -rf {} \;
之后使用crontab -e
进入定时任务,把3个定时任务给删了
使用passwd lab
更改用户密码
使用sudo deluser lab sudo
命令删除lab用户的sudo权限
检查下.ssh 目录下 authorized_keys文件,为了以防万一,我将这个文件清空了
到这里,针对这次被攻击的处理便完成了,服务器的风扇也不再一直狂转了
之后如果还有什么问题,会再次记录的