记一次服务器被攻击的处理方法

服务器收到攻击的处理方法

情况简介

实验室有两台gpu服务器在托管在学校的机房,因为是内网所以一直觉得不会被攻击,结果就中招了。一开始发现有一个进程始终占满所有显卡,kill掉以后会自动重启,遂发现是在挖矿。 根据nvidia-smi显示,任务路径为:

/anacodna3/bin/pytorch/python

被攻击

在这个路径下有三个文件,分别是python,python3和config.ini 查看config.ini:

wallet = 0x8744E800633C8aBeCe080B032484E2BE9Ef7c00c
# wallet = 0x2f3a7C81cec4fF061A1C1FD69613cEc174ecdEcd
coin = ETC
# coin = ETH
rigName = R3-
pool1 = 147.135.10.88:11010
# pool2= 141.95.34.186:11010
# # # # # # # # # # # # # # #
# pool1 = 138.197.183.92:12020
# pool2 = 172.67.179.48:12020
devices = 0,1,2,3,4,5,6,7,8
# devices = 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8
noLog = true
checkForUpdates = true
autoUpdate = true

于是确认是挖矿病毒。

第一次处理

根据学长的提醒,先按特征搜索一下病毒,找找有没有别人写了怎么处理,于是找到了这篇博客Ubuntu的一次惊心动魄的查杀挖矿病毒的经历:病毒伪装成python。 这篇博客简直和我发现的情况一模一样,按照博客里面的步骤,先删除恶意脚本。

删除恶意脚本

但是这里有个坑,删除恶意脚本的时候,明明是root用户,但是却显示没有权限 rm: cannot remove 'python': Opreation not permitted 使用lasttr命令发现目录下的三个文件 ---ia----------- python 被加了不可删除属性,lasttr具体情况参考chattr和lsattr命令 解决方法是用chattr去掉这个属性,命令如下:

chatrr -ia python

但是很坑的一点是系统的chattr文件也被黑了,导致我没法用这条命令去掉不可删除属性,我也无法删除系统的chattr文件。 我只好自己下载chattr重新编译,参考这条博客Linux服务器chattr文件被黑问题解决方法。 成功处理好chattr的问题后,我去掉了上面这三个文件的ia属性,然后删除了恶意脚本:

chattr -ia python
rm -f python

然后查看一下服务器其他用户的文件夹下时候还有恶意脚本

locate config.ini

把这条命令返回的路径下的恶意脚本全部删除,删除的时候注意别把系统的文件也给删了。 但是这样删除完后第二天还是会有新的脚本产生。 接着按照Linux服务器chattr文件被黑问题解决方法安装杀毒软件扫描全盘,分析被感染目录找到木马病毒并删除木马病毒即可。

第二次处理

就是这么倒霉,本来按照上面这篇博客处理完后以为高枕无忧了,结果一个星期之后一切卷土重来,恶意脚本又出现了,并且还没找到木马病毒。在咨询了YirongChen大佬之后,判断是被校内其他主机攻击了,于是对服务器进行了安全策略的升级。

首先和上面一样清理恶意脚本。

然后修改root密码

再修改所有其他用户密码

我用的是chpasswd命令,把其他用户用户名和密码按照

name passwd

的格式放在一个文本里,然后

cat pass.txt | chpasswd

就改好了其他用户的密码

然后清理服务器上的公钥

locate .pub

搜索公钥文件,然后删除id_ras.pub和authorized_keys

限制登录次数,防止密码爆破

# vim /etc/pam.d/login
添加
#auth required pam_tally2.so deny=3 lock_time=600 even_deny_root root_unlock_time=600
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=600
# vim /etc/pam.d/sshd
添加
#auth      required  pam_tally2.so   deny=3  lock_time=600 even_deny_root root_unlock_time=600
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=600

限制root远程登录

vim /etc/ssh/sshd_config
修改
PermitRootLogin no
修改后
systemctl restart sshd.service  #重启

增加管理员账号

adduser admin
passwd  admin
usermod -G wheel admin
/etc/pam.d/su 
去掉注释
auth required pam_wheel.so use_uid
vim /etc/login.defs
文末添加
SU_WHEEL_ONLY yes

添加自动拉黑ip脚本

参考Centos如何设置ip黑名单,防止被攻击

其他可能用到的命令

查看用户的登录失败次数

pam_tally2 --user name

解锁登录失败被锁定的用户

pam_tally2 --user name --reset

查看远程登录失败的ip和次数(查找攻击源) lastb | awk '{ print $3}' | sort | uniq -c | sort -n


文章作者: keevinzha
版权声明: 咳咳想白嫖文章?本文章著作权归作者所有,任何形式的转载都请注明出处。 https://www.keevinzha.com !
  目录