Linux服务器中了病毒后的清理方法

病毒的基础排查

1. 检查计划任务

  • 黑客入侵服务器后,为了让病毒脚本持续执行,通常会在计划任务配置文件里面写入定时执行的脚本任务。
检查命令说明
ls -l /var/spool/cron/*查看用户级计划任务配置。有的人喜欢用 crontab -l 命令来排查,这样做不全面,因为 crontab -l 命令只是查看当前登录用户的计划任务,无法查看其他用户的计划任务。而用左侧这个命令,可以查看所有用户设置的计划任务。
ls -l /etc/cron.d/如果发现该目录下存在未见过的脚本要格外留意。
ls -l /etc/cron.hourly/该目录下的脚本会每小时执行一次。
ls -l /etc/cron.daily/该目录下的脚本会每天执行一次。
ls -l /etc/cron.weekly/该目录下的脚本会每周执行一次。
ls -l /etc/cron.mouthly/该目录下的脚本会每月执行一次。
cat /etc/crontab查看系统级计划任务配置。

2. 解锁系统文件

检查命令说明
chattr -iRa /usr/ /etc/黑客入侵系统后,经常会执行chattr命令为恶意脚本文件加上隐藏属性,从而导致我们无法修改、删除这些恶意脚本。此时需要用chattr命令先去掉这些隐藏属性,然后再修改、删除。在这里插入图片描述

3. 检查开机启动文件

检查命令说明
cat /etc/rc.d/rc.local由于系统会在开机时自动执行/etc/rc.d/rc.local文件里面的命令,因此也常常被黑客利用。

4. 检查开机启动服务

检查命令说明
ls -l /etc/systemd/system/ 和 ls -l /etc/systemd/system/multi-user.target.wants/黑客通常会把恶意命令做成一个开机启动服务项,让其随着系统重启自动执行。我们一定要仔细观察这两个目录下面的每个启动项。
ls -lA /etc/rc.d/init.d/这个目录有时也会被黑客放入恶意脚本,也记得查看。

5. 检查环境变量文件

检查命令说明
cat /etc/profile 和 cat /etc/bashrc 和 cat ~/.bash_profile 和 cat ~/.bash_login 和 cat ~/.bashrc这些文件都是系统和用户的环境变量配置文件,黑客有时会在里面写入恶意命令,当系统加载环境变量配置文件时,恶意命令也会随之运行。
cat /etc/ld.so.preload通过配置该文件,可以让程序在运行之前,优先加载某些动态链接库。部分木马正是利用此文件的功能,修改该了文件,在里面添加恶意so文件,从而达到了隐藏挖矿进程的目的。这也就是为什么服务器中毒了,CPU使用率很高,但是却看不到占用CPU高的进程的原因。 默认该文件是空的,如果发现该文件里面有内容,则可能是黑客植入的,我们需要把该文件中列出的对应路径下的so文件全部删除掉,最后再清空ld.so.preload文件即可。 在这里插入图片描述

6. 检查二进制命令文件

检查命令说明
ls -Athl /usr/bin 和 ls -Athl /usr/sbin根据修改时间来查看二进制命令,新文件在最前,旧文件在后。通常黑客入侵服务器后,会植入一些二进制命令,这些命令文件的日期较新,我们可以根据这个特征,把新文件优先列出来,仔细辨别是否为恶意命令。
ls -AShl /usr/bin 和 ls -AShl /usr/sbin根据文件大小来查看二进制命令,大文件在最前,小文件在后。通常黑客入侵服务器后,会植入一些二进制命令,这些二进制命令的体积往往比较大,远超过系统命令的大小。我们可以根据这个特征,把大文件优先列出来,仔细辨别是否为恶意命令。
find /usr/bin/ -iname “." -ls 和 find /usr/sbin/ -iname ".” -ls列出/usr/bin/、/usr/sbin/等目录下的隐藏文件。黑客有时会把恶意命令进行隐藏,我们可以通过左侧这两个查找命令,把隐藏文件全部列出来。
  • 根据处理经验,笔者列出了一些常见的恶意命令,供大家参考
/usr/local/bin/pnscan
/usr/bin/masscan
/usr/bin/execute
/usr/bin/where
/usr/bin/crond
/usr/bin/bioset
/usr/bin/bsd-port

在这里插入图片描述
在这里插入图片描述

7. 检查内核文件

检查命令说明
cat /etc/sysctl.conf黑客入侵服务器后,还会修改内核配置文件,有时会添加如下参数:vm.nr_hugepage 该参数的作用是用来设置大内存页,默认该参数的值是0。黑客有时会设置该参数来优化内存性能,来为挖矿程序的运行提供最大内存资源。也正是由于该参数的存在,会导致系统重启之后,很多服务无法正常加载运行,从而导致系统长时间卡在服务加载界面。在这里插入图片描述

8. 检查密钥登录文件

检查命令说明
cat /root/.ssh/authorized_keys黑客入侵系统后,通常会在此文件中写入公钥,以便黑客可以免密登录系统。我们需要仔细辨别该文件的公钥内容,去伪留真。

9. 检查账户信息

检查命令说明
cat /etc/passwdgrep -i /bin/bash

10. 检查DNS设置文件

检查命令说明
cat /etc/hosts 和 cat /etc/resolv.conf有时黑客会修改DNS解析设置文件,以便解析某些恶意域名。我们需要检查该文件进行确认,如果黑客确实修改了,则要进行配置还原,改回成系统默认的DNS地址,否则可能会影响我们访问网站的速度。

11. 检查临时目录

检查命令说明
ls -Al /tmp 和 ls -Al /var/tmp有时黑客会把恶意病毒文件或恶意脚本,放置到这两个临时目录中,需要我们仔细查看加以辨别。在这里插入图片描述
ls -Al /dev/shm/dev/shm是Linux系统利用内存虚拟出来的一个目录,目录中的文件都保存在内存中,效率非常高。也就是往这个目录写东西,仅写在内存里,不会持久化到磁盘。系统重启后,文件消失。有时黑客也会把病毒文件或脚本藏到这个临时目录里面。

病毒的进阶排查

  • 做了上述的基础排查之后,还不一定完全能根除,黑客是很狡猾的。有时黑客还会替换系统的命令,例如替换了ps、top、netstat等系统原有的命令,以假乱真。这时我们每次去执行ps、top、netstat等命令,都相当于运行一次黑客的恶意命令,这些被替换了的命令会让我们看不到占用CPU高的恶意进程。此时我们可以安装clamav软件,来检测黑客是否植入(篡改)了二进制命令。

1. 安装clamav

yum -y install epel-release
yum -y install clamav clamd clamav-update clamav-devel clamav-data

在这里插入图片描述

2. 更新clamav病毒库

freshclam

3. 使用clamav扫描指定的目录

clamscan –ri /usr/sbin/ --move=/root/infected -l /var/log/clamscan.log
  • 命令常用参数解释:
参数说明
-r递归扫描,也就是扫描指定的目录及其所有的子目录。
-i只显示被感染的可疑文件。
-l “FILE”将扫描的结果保存到指定的文件中,以便事后查看。
–move=DIRECTORY将扫描到的可疑文件移动到指定的目录中。
在这里插入图片描述

4. 重新安装系统命令

  • 假如我们用clamscan扫描到了被篡改的二进制命令,并利用–move参数将其移动到了指定的目录中,此时我们需要重新安装这些二进制命令,从而再去发现被隐藏的恶意进程。
yum -y install glibc e2fsprogs procps lsof iproute net-tools coreutils curl wget findutils procps-ng util-linux rsyslog
说明:
ss命令属于iproute软件包。
chattr命令属于e2fsprogs软件包。
w、ps、top、pkill、sysctl等命令属于procps软件包。
netstat、ifconfig等命令属于net-tools软件包。
chmod、chown、ls等命令属于coreutils软件包。

黑客是如何入侵

  • 笔者总结了大量的案例,黑客入侵的途径主要有如下几种:

1. 弱密码

  • 服务器或者应用程序设置的密码过于简单,例如密码设置为了 Aa123456、1qaz2wsx、passwd123 等等,这些密码极其容易被黑客暴力破解。

2. Redis

  • 这是非常常见的一种入侵方式,因此笔者特意拎出来进行说明。很多人在服务器里面安装了Redis后,由于安全意识薄弱,会把Redis 6379端口对公网开放,从而被黑客扫描到后被入侵进来。

2.1. Redis入侵的原理:

  1. 攻击者首先扫描存在未授权访问或弱密码的Redis进行入侵。
  2. 攻击者入侵成功后,控制机器不仅会去下载恶意脚本,还会直接读取主机上的/root/.ssh/known_hosts和/root/.ssh/id_rsa.pub文件,从而登录信任当前主机的其它机器,并控制这些机器执行恶意指令。

2.2. Redis防护的方法:

  1. 为Redis的访问添加密码验证。
  2. 禁止外网访问Redis,或者只允许指定的IP地址访问Redis端口。
  3. 以普通用户身份运行Redis服务。

3. 数据库

  • 很多用户可能是疏忽大意,也可能是出于远程访问的需要,把数据库端口1433、3306等对公网进行了开放,导致黑客扫描到数据库端口后,对数据库进行了注入或提权入侵,进而发生删库勒索等情况。

4. 应用程序存在漏洞

  • 例如:Gitlab exiftool 远程命令执行漏洞、Spring Framework远程代码执行漏洞、Apache Log4j2 远程代码执行漏洞、Grafana 任意文件读取漏洞、ThinkPHP5远程代码执行高危漏洞、Windows Print Spooler远程代码执行漏洞 等等,不胜枚举。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/703562.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么截图公式识别?方法简单介绍

怎么截图公式识别?随着科技的不断发展,人们对于高效、便捷的工作方式的需求日益增加。在学术、教育以及科技研发等领域,数学公式是不可或缺的一部分。然而,手动输入公式往往费时费力,且容易出错。因此,截图…

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明

Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 目录 Python 机器学习 基础 之 监督学习/分类问题/回归任务/泛化、过拟合和欠拟合 基础概念说明 一、简单介绍 二、监督学习 三、分类问题 四、回归任务 五、泛化、过拟合和欠拟合…

OpenAI新模型GPT-4o“炸裂登场” 响应速度堪比真人 关键还免费!

GPT-4o模型基于来自互联网的大量数据进行训练,更擅长处理文本和音频,并且支持50种语言。更值得一提的是,GPT-4o最快可以在232毫秒的时间内响应音频输入,几乎达到了人类的响应水平。 GPT-4o有多“炸裂”?核心能力有三 G…

Linux之·网络编程·I/O复用·select

系列文章目录 文章目录 前言一、概述1.1 介绍IO复用的概念和作用1.1.1 I/O复用具体使用的场景1.1.2 I/O复用常用函数 二、select函数的重要性和用途2.1 基本的select函数2.2 如何使用FD_SET、FD_CLR等宏来设置和清除文件描述符集合2.3 select()函数函数整体使用框架&#xff1a…

关于JVM内存模型和堆内存模型的理解

文章目录 前言一、JVM 内存模型的理解1.第一部分:线程共享区(堆和方法区)2.第二部分:线程独占区(程序计数器、虚拟机栈和本地方法栈)3.JVM的几个知识点3.1 垃圾回收就指线程共享区(堆和方法区&a…

adobe安装“Error:SyntaxError:JSON Parse error:Unexpec

mac电脑安装Adobe时,会提示错误“Error:SyntaxError:JSON Parse error:Unexpected EOF”,这是怎么回事儿的,不管您是安装AI、PS、PR还是LR,如果也遇到相同的问题,可以参考一下方法解决: 「adobe安装提示错误…

SHELL编程(一)

目录 一、 Linux操作系统(一)内核与操作系统(二)操作系统的功能 二、Linux高级命令(一) 离线安装 dpkg1. 安装2. 使用3. 查看安装详细信息4. 安装路径5. 不完全删除6. 完全删除 (二)…

c++ visualstudio2017 opencv debug源码 windows配置

源码下载和cmake opencv源码和opencv-contribue文件夹的层级目录 在opencv-4.4.0中新建build文件夹,并启动cmake-gui 配置如下,使用vs2017 x64, 需要注意contrib文件夹的设置,如下方蓝色所示,依次点击Configure和Generate 在bu…

RuoYi-Vue-Plus (Logback 和 logback-plus.xml 、p6spy)

项目后本地日志 一、logback依赖 打开最外层的 pom.xml,查看 SpringBoot的依赖配置。 <dependencyManagement><dependencies><!-- SpringBoot的依赖配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>s…

AutoNeRF:Training Implicit Scene Representations with Autonomous Agents

论文概述 《AutoNeRF》是由Pierre Marza等人撰写的一篇研究论文&#xff0c;旨在通过自主智能体收集数据来训练隐式场景表示&#xff08;如神经辐射场&#xff0c;NeRF&#xff09;。传统的NeRF训练通常需要人为的数据收集&#xff0c;而AutoNeRF则提出了一种使用自主智能体高效…

OpenAI 推出 GPT-4o:实现多模态 AI 交互

一、前言 OpenAI 推出了其最新的 AI 模型——GPT-4o&#xff0c;此次发布的并非 GPT-4.5 或 GPT-5&#xff0c;而是一款全新的“全模态模型(Omnimodel)”。这是一个将文本、语音和视觉能力集成到单一无缝 AI 体验中的突破性发展。 GPT-4o 于 2024 年 5 月 14 日发布&#xff0…

MYSQL和JAVA中将中文汉字按照拼音首字母排序

一、MYSQL将中文汉字按照拼音首字母排序 数据库使用的字符编码是utf8_general_ci&#xff0c;如下 ORDER BY CONVERT(表名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC;若是表查询&#xff0c;CONVERT中可以不添加表名。 查询结果如下&#xff1a; 二、JAVA中将中文汉字…