Linux病毒大扫除:值得收藏的病毒查杀技巧

前言

  前面在西柚云公众号文章中我们说到《服务器安全使用指南》、《服务器密码设置指南》,如果按照我们的教程设置做好防护,加上西柚云给大家免费提供的网络入侵防御能力(详见公众号文章《不知不觉,西柚云已经拦截了10亿+的网络攻击》),即使服务器对外暴露了SSH、Rstudio等端口,我们也能放心地睡觉。但是如果有时候还是设置了弱密码导致被黑客入侵了,病毒进程杀掉之后死灰复燃,我们应该怎么做呢?本文总结了Linux服务器病毒查杀的多个思路和技巧,值得收藏转发以备不时之需~~

排查整体思路

  病毒程序kill掉后死灰复燃,一般都是有其它程序在暗处悄咪咪启动病毒程序或者有人去手动启动了病毒程序。防止有程序自动悄咪咪启动病毒程序,我们要做的是清理定时任务、系统服务以及系统启动时自动执行的文件。防止坏人手动启动程序,我们要做的是修改密码,清理ssh密钥(关门),删除未知用户(送客)!下面一起来看看具体步骤吧。

排查步骤

查看定时任务

crontab

  • crontab是Linux系统中用于设置周期性被执行的指令的工具。它允许用户配置定时任务,由守护进程crond管理,该守护进程至少每分钟检查一次是否有预定的任务需要执行,因为恶意软件可能会设置定时任务来定期执行其恶意行为,故需查看是否有定时任务。
# 查看 /etc/crontab 配置文件中的定时任务
cat /etc/crontab

# 查看某个用户的定时任务
crontab -l -u xxx

# 列出系统中所有用户的 crontab 任务
cat /etc/passwd | cut -f 1 -d : |xargs -I {} sudo crontab -l -u {}
  • /etc/crontab文件和crontab命令区别:修改/etc/crontab这种方法只有root用户能用,这种方法更加方便直接给其他用户设置计划任务,而且还可以指定执行shell等等,crontab -e这种所有用户都可以使用,普通用户也能为自己设置定时任务。

cron

# 列出 Linux 系统中 /etc 目录下所有以 cron. 开头的文件和目录
ls /etc/cron.*

正常的:

中毒了的:

  • crontab和cron的区别:crontab和cron是紧密相连的两个东西,cron是一个守护进程,它在后台运行,负责读取crontab文件中的条目,并在指定时间执行相应的命令或脚本(同时也支持在/etc/cron.*目录下配置任务)。
    crontab是用户或系统级别的配置文件,其中包含了用户希望定期执行的任务列表。每个用户可以有自己的crontab文件,存储在/var/spool/cron目录下,文件名通常与用户名相同。

查看系统服务

  • 系统服务是后台运行的程序,用于执行特定的系统功能,系统服务可以在达到特定条件时自动启动然后执行指定的命令。
# 列出系统上的所有服务单元
sudo systemctl list-units

# 列出系统服务单元文件并按照修改时间排序
sudo ls -lt /lib/systemd/system

# 查看异常服务状态,这个命令可以看到对应服务的执行命令以及工作目录
systemctl status xxx

# 立即禁用服务
sudo disable --now xxx.service

# 通过rm命令删除服务单元文件
sudo rm /lib/systemd/system/xxx.service

  • 文件删除不掉怎么办?

  lsattr命令以及chattr命令说明:lsattr(list attributes)命令用于显示文件的扩展属性,这些属性提供了比常规文件权限更详细的文件信息,并允许管理员和用户定义自己的属性;chattr命令用于改变文件或目录的属性。

  病毒文件常常给文件设置的属性:a:设定a后,这个文件将只能增加数据而不能删除,只有root才能设定这个属性;i:这个参数可以让一个文件”不能被删除、更名、设定链接,也无法写入数据。

  使用“sudo lsattr 文件名”命令查看指定文件的扩展属性,如果文件的属性被改加上了i、a属性,使用“chattr -ia 文件名”命令来移除i、a属性。

检查profile文件

  • profile文件通常指的是包含用户环境配置的脚本文件,如 /etc/profile 或 ~/.bash_profile。这些文件在用户登录时被执行,用于设置环境变量、定义函数和别名等。检查profile文件对于病毒查杀来说尤为重要,因为攻击者可能会在这些文件中插入恶意代码,以便在用户登录时自动执行。
# 列出 Linux 系统中 /etc 目录下所有以 profile 开头的文件和目录
ls /etc/profile*

# 查看 /root/.bash_profile 文件的内容
sudo cat /root/.bash_profile


查看SSH后门

  • SSH后门是指未经授权的远程访问通道,通常是通过修改SSH配置免密密钥实现。查看SSH后门是为了确保没有未授权的远程访问通道存在,这可以防止攻击者远程控制服务器。
# 一个命令查看所有用户的已授权密钥,如果出现预期之外的文件,则删除之
cat /etc/passwd | cut -f 1 -d : |xargs -I {} sudo cat /home/{}/.ssh/authorized_keys

检查是否允许Root登录开关

  • 在Linux系统中,是否允许使用root用户进行SSH远程登录的设置通常在SSH的配置文件中进行控制,文件路径一般为 /etc/ssh/sshd_config。在该配置文件中,有一个重要的参数permitRootLogin,它决定了是否允许root用户通过SSH进行登录,如果该参数被设置为yes,需要改为no。
# 查看 SSH 配置文件中关于 PermitRootLogin 参数的设置
sudo cat /etc/ssh/sshd_config | grep PermitRootLogin

检查root权限用户

# 查看有sudo权限的用户有哪些
sudo getent group sudo

# 删除指定的用户账户
sudo deluser --remove-home 用户名

# 修改root密码为极度复杂的密码,甚至你可以忘掉这个密码,因为我们不需要root用户
sudo password root

删除临时文件

  • 许多病毒和恶意软件会利用服务器的临时文件目录(如 /tmp 或 /var/tmp)作为藏身之处。定期删除这些临时文件可以减少病毒隐藏和再次激活的机会。
# 删除临时文件
sudo rm -rf /tmp/*

结语

  还是希望大家重视自己的服务器安全问题,按照我们的教程落实防护工作。如果中了挖矿病毒,我们尚能抢救;如果中了勒索病毒,高昂的勒索费用会让我们本不富裕的家庭雪上加霜,最后只能放弃服务器上面被锁定的宝贵数据!

  如果西柚云的用户不按照规定使用服务器,如启用了root账号或者开启允许root用户登录的开关、新增用户时,使用了弱密码等等。如果服务器被入侵植入了勒索型病毒,西柚云不负责清理,赎金由用户自行承担;如果服务器被入侵植入了其它病毒,如挖矿病毒,我们可以协助清理,但是中毒太深的我们将酌情收取额外的处理费用。

  点赞或收藏超25个,我们将编写一个Python脚本开放给大家使用,自动化执行上述排查步骤并生成报告~~


  如果大家对我们的内容有任何反馈,或者有特定的软件使用教程需求,欢迎留言告诉我们,我们系统整理后与大家分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值