记录一次学院Linux服务器被植入恶意挖矿木马的防御记录
起因
学院之前的老服务器配置了两块4090,去年六月份左右配置好,但是今天师兄发现不论什么情况下,两块4090总是功率拉满的在跑,如图:
之后:(其中pid更改为你自己的进程端口号)
通过ps -aux |grep pid
命令查看该进程相关信息。
通过netstat -anp | grep pid
命令来查看该进程的网络信息。
根据网络信息我们就可以知道我们的恶意木马程序把数据包传输到了哪里,以我的例子,数据被传输到了15.204.46.117。查询到如下:
是的!数据很可能全部传输到美国去了!!
当然我也怀疑过是不是网络代理,但是惠普的代理真的那么好搞吗?要是能随随便便被一个小黑客以惠普的代理地址去偷包,那惠普也确实该倒闭了。
所以初步怀疑是惠普的小员工闲着没事做了木马乱攻击,偷点GPU来挖矿。
可恶的挖矿程序从去年8月就植入了!!!
我们根据process name可以看到这个木马文件的位置在/etc/system
里,看起来很正常,但其实这是其伪装,system根本不是一个系统文件,就是其木马本体,我查看了这个木马文件的创建时间,是从去年8月份,也就是2023/8月份开始创建的。
换而言之,我们学院的服务器从去年就被人偷偷用来挖矿,一直挖到现在。
服务器的电费可是用我的学费交的啊!是可忍孰不可忍!
愤怒的我直接:
rm -rf system
尝试删除这个木马,但意料之中,我没有权限。老美给这个文件设置了只读(readonly)。
ok,那我把你权限设回来不就行了。于是我尝试:
chatter -i system
这里的chattr是一个给文件设置权限的工具,一般来说linux还有chmod的权限设置命令。总结来说区别如下:
chattr和chmod都是用于管理和保护文件和目录的命令,但它们的关注点不同。chattr更侧重于通过扩展属性来提供更深层次的保护,而chmod则关注于访问权限的设置
这里就报了个错误,显示出了该命令的一些参数,具体我忘记截图了,大致如下:
chattr -v -p[]
WHY?
因为木马把我们的基础命令都更改了!
也就是说yum,apt-get等命令都可能被修改过,也就是说它重写了你最底层的东西,相当于和你下棋,但是把你手剁了一样。
所以当你调用chattr的命令的时候,用的是假chattr,我们这个时候就需要重新自己去编译一个chattr文件,相当于做个机械臂:
- 我们先来到这个网站,把chattr的源c语言代码下载下来,上传到我们的linux目录里。
- 之后我们运行命令
cc chattr
,会在你当前目录得到一个输出a.out。 - 我们来到
/usr/bin/
目录下,把该目录下原有的chattr删除掉,然后把我们的a.out放进来,更改为chattr。 yum install e2fsprogs
之后运行这个命令,如果报错,那很可能是你的yum命令也被改写了。这部分可以自行百度搜索如何重下yum命令。(但是大概率不会出问题)😊
由此我们就可以重新使用chattr来更改文件权限了。
如下是脑瘫GPT的回答:
准备冻手!
开始动手,首先我们的目标是:
- ssh后门
- 病毒文件
ssh后门
进入/root/.ssh
目录下,输入如下命令:
#查看文件属性 lsattr authorized_keys # 去除a属性 chattr -a authorized_keys # 去除i属性 chattr -i authorized_keys # 去除e属性 chattr -e authorized_keys
其中的authorized_keys就是我们的ssh密匙,一般攻击者会在里面留下自己的ssh密钥留作后门,并将其设置为只读,我们通过chattr更改其权限之后就可以将其删掉!
病毒文件
这部分我们可以通过之前的process name里得到,也可以通过查看GPU占用进程来锁定,关于如何排查挖矿木马的网上教程很多,可以看这个。
找到之后尝试如上步骤,把他们的文件(我这里是只有system这个文件)全部chattr一遍,如果chattr
不行,就chmod 7
。如此来回,该病毒文件就会失去只读属性。
结尾
到此为止,我们已经删除干净了这些恶心的挖矿程序,最后我们回看nvidia-smi,如果还有进程的话,直接使用kill -9 (进程ID)
。
解决之后,该进程就不会再出现。
至此我们已经解决了病毒文件并清除了后门,但是之后也一定要认真设置自己的密码,不要再被暴力破解了!
美帝国主义亡我之心不死,而我们仍然是早上八九点钟的太阳!☀️