Linux服务器防护+对抗挖矿病毒全流程探索

服务器中了两次门罗币xmrig挖矿病毒,相关的文件名字叫过log、ntools等等,一次比一次厉害。在此记录一下杀毒全过程,为了永久解决这个问题,也寻找了常见的安全防护方法,为后来作参考。

一、安全防护设置

中病毒的一大重要原因是安全防护没有做到位。

四个比较简单,但是又非常有效的安全防护方式如下:

1、禁止以root 用户的身份进行 SSH 连接

进入到这个文件当中,进行设置

sudo nano /etc/ssh/sshd_config

进去之后找到 PermitRootLogin
请添加图片描述

将这一部分注释打开,后面的 prohibit-password 修改为 no
请添加图片描述

Ctrl+X 退出,保存 yes,再退出。
请添加图片描述

重启 SSH 服务

sudo systemctl restart ssh.service

这样禁用 SSH 以 root 用户身份登录就完成了!

使用 root 用户身份去登录,显示不被允许,说明已经成功。
在这里插入图片描述

2、开启防火墙

开启防火墙

sudo ufw enable

设置防火墙开机自启动

sudo systemctl start ufw 

3、修改 SSH 端口

SSH 的默认端口是 22,将端口改掉,进一步安全。

还是编辑这个文件

sudo nano /etc/ssh/sshd_config

找到 Port 22 部分
请添加图片描述

取消注释,将 22 进行修改,改成任意不需要的端口,比如 2222
请添加图片描述

修改防火墙,让防火墙允许端口 2222

sudo ufw allow 2222/tcp

查看防火墙状态

sudo ufw status

请添加图片描述

重启 SSH 服务,完成!

sudo systemctl restart ssh.service

4、禁用 SSH 账号密码登录,改用密钥登录

以免用户密码被暴力破解

在本地机(想要连接服务器的本地机)中使用如下命令,生成 SSH 密钥对(已经生成过可以跳过)

ssh-keygen -t rsa

之后就一路回车就好。如下图就是创建成功了
请添加图片描述

创建后的密钥对位于~/. ssh/

然后,将本地公钥上传到服务器当中

ssh-copy-id 用户名@地址

这样就是添加成功了
请添加图片描述

然后到服务器端再次使用如下命令

sudo nano /etc/ssh/sshd_config

将 PasswordAuthentication 这一部分注释取消,后面修改为 no,来禁止密码登录
请添加图片描述

同样 ctrl+X,yes,保存退出。

重启 SSH 服务

sudo systemctl restart ssh.service

大功告成!

二、挖矿病毒查杀流程

1、查找 CPU 高占用率的进程

先尝试使用 top 或者 htop 能否查到进程。

如果失败,尝试使用

sudo btop

如果依然失败,使用 sysdig 这个包

sudo sysdig -c topprocs_cpu

可以查找到隐藏进程。
请添加图片描述

2、寻找进程文件

(如果上一步已经发现执行文件,就不用再进行这一步了,这一步是无法看到对应执行文件)
(如果使用 sysdig 来找到的进程,一般可能无法直接找到对应的执行文件)

去/proc/下面找对应的执行文件

cd /proc/进程号/
ls -l

找到 exe->xxxxxxx 链接位置,如果依然无法找到,使用下面的方法。

找不到不用慌,为了防止它下新的“崽”,先不急着 kill 进程,先找对应的自启动任务和定时任务。

1)查找定时任务
在 linux 系统当中,定时任务一般存放在/etc/cron. xxxxxx 类似的文件夹当中
比如,在我们的系统中,就是存在有
/etc/cron.weekly
/etc/cron.hourly
/etc/cron. monthly
/etc/cron.d
这四个文件夹

依次进入四个文件夹排查

cd /etc/cron.weekly

最终在四个文件夹下分别发现了不同的可疑定时任务
在 weekly 下面看到一个可疑文件 mI2HsIlW
在 hourly 下面看到一个可疑文件 EQdIN2mt
在 monthly 下面看到一个可疑文件 GirOvV6G
在 d 下面看到一个可疑文件 KusCsL9f

这四个文件的内容全部都是

*/1 * * * * root /bin/ap3kicB7 1 1

全部都是在定时启动这个文件,这样我们就找到了对应的文件。

2)查找开机自启动任务

sudo systemctl list-unit-files --type=service | grep enabled

看到这个名字很奇怪,大概率也是有问题的

查看文件内容,里面的内容如下,果然还是和 ap3kicB7 有关

[Unit]
Description=service
After=network.target

[Service]
Type=simple
ExecStart=/bin/ap3kicB7
RemainAfterExit=yes
Restart=always
RestartSec=60s

[Install]
WantedBy=multi-user.target

3、全面清杀

找到对应文件过后,将这个文件上传到微步进行检测,看看是否有问题。

果然有问题,是 xmrig 挖矿程序!
可以看到它还禁用了防火墙。

先按照之前第一部分安全防护的步骤,禁用以 Root 用户形式进行 SSH,防止它进行什么其他操作,然后安全打开防火墙!

1)全面搜索定时任务、自启动任务、开机自启动任务等等

全盘搜索含有 ap3kicB7 文件内容的文件

sudo grep -r "ap3kicB7" / 2>/dev/null

发现除了上述文件之外,果然还有高手!

/usr/lib/systemd/system/o8cKn4y5.service

不出意外,里面的内容还是与 ap3kicB7 有关!

[Unit]
Description=service
After=network.target

[Service]
Type=simple
ExecStart=/bin/ap3kicB7
RemainAfterExit=yes
Restart=always
RestartSec=60s

[Install]
WantedBy=multi-user.target

2)查找刚刚微步找到的 xmrig 挖矿程序

我是用了多种方式来查找。

搜索 xmrig 文件名

find / -name xmrig 

成功找到对应文件,查看文件内容,发现开篇使用 PROGPOW 这个包,经过搜索发现,这是一个挖矿专用的包,是过挖矿时候的 PoW 认证用的

然后直接再次全盘搜索“PROGPOW”,以免存在其他名字的漏网之鱼!

sudo grep -r "PROGPOW" / 2>/dev/null

3)全部删除

将所有查找到的文件依次全部删除。

sudo rm 文件名称

如果发现 sudo 无法将对应文件删除,大概率使用 chmod 修改文件权限也没有用。
那是该文件因为被保护了,防止被 root 用户删除。
使用 lsattr 查看文件属性,i 是被保护,防止被 root 用户删除。

lsattr

发现果然有i属性,导致我们无法删除。
请添加图片描述

使用 chattr 修改文件属性,去掉 i 属性

chattr -i 文件名

全部都删除过后,发现服务器已经恢复正常,且等待许久没有程序自启动!
请添加图片描述

注:
还有一个寻找自启动文件的方法,但是密密麻麻全是文本,不熟练可能不太好找,我之前是失败了

kill 进程,等待定时任务启动,寻找对应文件

sudo kill -9 进程

查看日志

sudo journalctl -e

总结

做好防护是第一位!!!
一定要做好防护!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值