Linux入侵检测病毒清理流程

Linux入侵检测病毒清理流程
1.前言:

根据阿里云快讯病毒公布:

Redis RCE导致h2Miner蠕虫病毒,其利用Redis未授权或弱口令作为入口,使用主从同步的方式从恶意服务器上同步恶意module,之后在目标机器上加载此恶意module并执行恶意指令。在以往常见的攻击者或蠕虫中,其大多都沿用登陆redis后写入定时任务或写ssh key的方式进行入侵,这种方式受权限与系统类型影响并不一定能够成功。而此次使用redis加载module的攻击方式,可以直接执行任意指令或拿到shell交互环境,危害极大。

    当服务器中毒了,使用SSH/FTPS大多连接不上的。这时候就需要到云平台,使用VNC方式登录。

2.确认Linux是否是中毒

1.使用命令查看当前系统所有进程

一般消耗CUP或者内存90%以上的基本都是病毒,常见的挖矿进程:xfsdatad、rshim、YDService.exe、kinsing、kdevtmpfsi、sysupdate、systemxlv、kthreaddi、kthreaddk 等,病毒进程一版都会跟系统进程名称相似,要注意区分

top 或 ps aux | less
注:top实时监控退出按键:q

2.查看隐藏进程

如果top命令查看没发现异常,但是服务器依然很卡,服务器资源占用居高不下,那就换个命令,查看是否存在隐藏进程

ps -aux --sort=-pcpu|head -10
3. 确定病毒攻击方式

1.使用命令查看系统日志:

cat /var/log/secure
1.1分析日志文件,看看是否是远程强行破解系统密码,如下:如果是远程登录root,清理病毒后要修改root的密码

1.2如果不是远程登录root,很可能是redis远程登录导致:1.1.2查看redis连接记录:

lsof -i:6379
如果有大量异常链接,立即找到redis安装路径,打开 redis.conf

vim redis.conf
把 bind:127.0.0.1 打开,重启redis

ps -ef | grep redis

kill -9 PID

./src/redis-server ./redis.conf
1.1.3如果redis也没有问题,那就查看系统其他用户:查看系统用户

vim /etc/shadow 或者 vim /etc/passwd
检查是否有异常的用户名,如果有就删除

userdel -r 用户名
4.查看单个进程的执行日志:

more /var/log/cron log | grep “进程名称”
3.病毒查杀

1.先确定挖矿进程的PID

根据 top 查到的病毒进程,利用PID查看一系列的相关守护进程:

systemctl status PID
查看所有的守护进程,示例图:

2.根据展示出来的守护进程,从最高层守护开始杀起(先杀父类)。

删除最顶层fule守护进程:

rm -rf 路径 或 find / -name “路径” | xargs rm -rf
有某部分比较刁钻的病毒会报告:rm: cannot remove '文件名称 ': Operation not permitted

这种情况可能性一,不在root的权限下,切换root再操作。可能性二:病毒使用了chattr 文件锁定的命令。我们只要先执行文件解锁,然后就可以正常删除了

chattr -i 文件名称
ps -ef | grep 守护进程名称
或者

ps -ef | grep 守护进程名称 | grep -v grep
kill -9 PID
注意,有部分挖矿在删除时会触发自我复制,所以删除前可以先控制权限和删除定时扫描:

chmod 600 守护进程路径
查看定时器,需要在root权限操作:

查看所有定时器

crontab -l
如果确认linux服务器重来没有建过定时任务,就可以全部清除

crontab -r
如果有自定义的定时器就可以编辑:

crontab -e
手动删除可疑任务后保存退出

很多病毒是会扫描定时器的,所以在清除定时任务之前,需要把病毒守护进程里面的病毒文件先降低权限才会生效 命令:chmod 600 守护进程路径

权限降低,清除定时任务 那就可以逐个杀死进程了,由下往上一个个 kill -9 进程号,例如:先杀 9015

把进程全干掉后就删除对应文件(根据进程树中的文件路径)

3.如果没有守护进程,那就更简单,直接先控制文件权限,然后停止进程,清理定时任务,最后删除病毒路径即可。

到此,病毒清理完成。

4.其他安全建议:

1.禁止root登录

使用自定义的用户登录,再切换Root即可

2.查看SSH链接公钥,清除所有可疑的公钥。

一般只用用户名密码登录的服务器是不会有公钥文件的,如果有也是空文件。查看公钥文件:

vim /root/.ssh/authorized_keys

解除锁定

chattr -i /root/.ssh/authorized_keys

编辑权限

chmod 777 /root/.ssh/authorized_keys

清空或清除不是自建的authorized_keys

vi /root/.ssh/authorized_keys

清空后恢复权限

chmod 400 /root/.ssh/authorized_keys

锁定authorized_keys

chattr +i /root/.ssh/authorized_keys

防止通过重命名.ssh文件夹绕过设置

chattr +i /root/.ssh

3.一定要打开防火墙

查看防火墙状态命令:

systemctl status firewalld
如果不是显示active状态,需要打开防火墙,注意要配置穿透自己需要用到的端口号

systemctl start firewalld
4.要尽量禁止redis的远程访问,redis必须要设置访问密码。

5.Linux病毒防护软件:

安装clamAV:

yum -y install clamav
更新病毒库(需要时间很长,大约20~30分钟):

freshclam
查杀当前目录并删除感染的文件:

clamscan -r --remove
查杀当前目录并删除感染的文件:

clamscan -r
clamAV帮助命令:

clamscan help
如有错漏或者有更好的技巧,麻烦留言交流。共同进步!!!
————————————————
版权声明:本文为CSDN博主「提枪北上」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ouxx2009/article/details/123479424