隐藏挖矿木马rcu_tasked的查杀

news/2025/1/14 21:31:22/

0. 目录

      • 1. 前言
      • 2. 排查
        • 2.1 找出导致问题的进程
        • 2.2 定位进程详细信息
        • 2.3 阻止进程重启
        • 2.4 重启服务器
      • 3. 加固系统
      • 4. 其他相关排查手段
      • 5. 相关

1. 前言

本来没打算写这篇博客的,因为本身自己对于linux就属于一知半解,但奈何类似的问题遇到了好几次,而且彼此之间间隔时间比较长——长到恰好忘记了上次是如何排除相关问题的。

虽然每次排查都进行了相关的留痕,但奈何相关知识没有连成线,始终不成体系,造成每次基于是从零开始。

痛定思痛之下,这次借着问题的解决,总结下相关的关键点,为之后的再见减轻些心理压力。

2. 排查

2.1 找出导致问题的进程

服务器中了挖矿木马之后的最直接的表现就是CPU被打满,我们首先要做的是把这个进程找出来。

主要涉及到的命令

# 按照CPU使用率排序
top# 查看找进程信息
ps# 占用CPU最多的十个进程
ps -aux --sort=-pcpu|head -10

这里可能会存在的一个问题是“明明服务器的CPU已经被打满了,但是top命令的返回信息里并没有明显占用CPU的进程”?

针对这个问题,可以使用busybox来作进一步的努力:

# 安装
wget https://busybox.net/downloads/binaries/1.30.0-i686/busybox
mv busybox /usr/bin/busybox
chmod +x /usr/bin/busybox# 查看进程信息 (我遇到的类似问题就是使用这种方式定位的)
busybox top# 查看帮助信息
busybox --help

2.2 定位进程详细信息

相关Linux命令如下:

# 通过 ll /proc/PID 查到进程的绝对路径等信息
ll /proc/PID```

2.3 阻止进程重启

找到进程之后,使用kill -9 PID杀掉它只能解决一时,100%的情况是该木马会进行进程守护的操作,我们需要破掉这一层来彻底解决问题。

相关linux命令

######################################## 1. 排查
########### 查看 crontab
#	a. 进程守护的方式之一是使用定时任务
#	b. 如果返回值里有异常的任务, 接下来就是删除掉任务以及相应的文件
crontab -l########### 查看linux service
#	a. 可能出现"crontab没有计划, 但木马进程依然会重启"的现象
#	b. 这个时候就需要再排查一下linux运行的服务了# 进入目录
cd /lib/systemd/system# 使用 ll 命令查看最新服务文件, 返回结果将按照由旧到新的顺序排列
# 	我这里的异常服务文件名为 myservice.service
ll -rt

2.4 重启服务器

完成以上"删除木马","阻止重启"操作之后,最好是重启一次服务

reboot

3. 加固系统

重启完毕,恢复正常的系统,除了常规的升级系统、修改密码、禁用端口、打安全补丁之外,针对性地进行一些安全加固也是很有必要的。


############### 使用 chattr 命令禁止文件/文件夹被修改
# 锁定目录,不能让新木马文件产生
chmod 000 /usr/bin/nshbsjdy
chattr +i /usr/bin/nshbsjdy```

4. 其他相关排查手段

在排查问题的过程中,上下文信息肯定是多多益善。

############################### 使用 netstat 查看一下程序端口占用
netstat -anp | grep ESTAB############################### 查看网卡流经的流量
# 显示名为eth0的网卡接口的详细信息,包括流入和流出的数据量。
ifconfig eth0# 显示名为eth0的网卡接口的详细信息,包括流入和流出的数据量。
ip -s link show eth0# 无论是使用ifconfig还是ip命令,您都可以通过查看RX bytes和TX bytes字段来获取流入和流出的数据量。这些字段显示的是以字节为单位的数据量。# 返回值解读
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255ether 00:00:00:00:00:00  txqueuelen 1000  (Ethernet)RX packets 20000  bytes 12345678 (12.3 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 15000  bytes 87654321 (87.6 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0在上述输出中,您可以通过以下字段来解读网卡流量信息:1. RX packets:表示接收到的数据包的数量。
2. RX bytes:表示接收到的数据量(以字节为单位)。
3. TX packets:表示发送的数据包的数量。
4. TX bytes:表示发送的数据量(以字节为单位)。通过查看这些字段,您可以了解有关特定网卡接口的流入和流出数据量的信息。例如,在上述示例中,接收到的数据量为 12.3 MiB,发送的数据量为 87.6 MiB。请注意,输出中的数据量字段(如bytes)通常以字节为单位,并且可能会在输出中使用不同的单位(如字节、千字节、兆字节)。需要根据具体情况进行单位转换和解读。############################### 查看Linux系统日志# /var/log/secure 是一个系统日志文件,它记录了与系统安全相关的事件和日志信息。这个文件通常存在于基于Linux的操作系统中,如CentOS、Red Hat、Fedora等。
# 一般来说你会看到很多来自不同ip的登录意图。
cat /var/log/secure# /var/log/ 目录是存储日志文件的默认位置,它包含了许多不同类型的日志文件。以下是一些常见的 /var/log/ 目录下的日志文件类型:
1. auth.log:用于记录用户认证和授权相关的事件和信息,如登录和注销、sudo授权等。
2. syslog:系统日志文件,记录了系统级别的事件和信息,包括内核消息、系统启动、服务启动和停止等。
3. messages:类似于 syslog,记录了系统的一般消息和事件。
4. kern.log:记录了与内核相关的事件和消息,如内核模块加载和卸载、硬件故障等。
5. daemon.log:记录了系统上运行的后台守护进程的事件和消息。
7. secure:类似于 auth.log,记录了与系统安全相关的事件和信息,如登录失败尝试、文件权限变更等。
8. boot.log:记录了系统启动期间的事件和消息,包括加载的驱动程序、启动的服务等。除了上述常见的日志文件,还有许多其他类型的日志文件可能存在于 /var/log/ 目录中,这些文件的名称和功能可能因不同的操作系统和配置而有所不同。在 Linux 系统中,日志文件通常以 .log 或 .log.* 的形式存在,可以根据名称和内容来判断它们的用途。

5. 相关

  1. 记一次阿里云被挖矿处理记录 – 推荐
  2. 一次Linux服务器被入侵和删除木马程序的经历 – 推荐
  3. 腾讯云 - 挖矿木马自助清理手册
  4. 公司服务器被入侵植入挖矿软件,如何追查?

http://www.ppmy.cn/news/1027797.html

相关文章

ES索引重建reindex详解

目录 一、使用场景 二、reindex介绍 三、使用手册 1、覆盖更新 2、创建丢失的文档并更新旧版本的文档 3、仅创建丢失的文档 4、冲突处理 5、source中添加查询条件 6、source中包含多个源索引 7、限制处理的记录数 8、从远程ES集群中重建索引 9、提取随机子集 10、…

Spring Boot配置文件中的配置项加密jasypt使用

在Spring Boot中&#xff0c;有很多口令需要加密&#xff0c;如数据库连接密码、访问第三方接口的Token等。常见的方法就是用jasypt对口令进行加密。 实际上&#xff0c;jasypt可以对配置文件中任意配置项的值进行加密&#xff0c;不局限于对密码的加密。 1.在pom.xml中添加ja…

38 | 浦发银行股票分析案例

本文将通过一个浦发银行股票分析案例,探讨如何从多个维度对股票进行分析,包括基本面、技术面和市场环境等因素。我们将深入挖掘浦发银行的财务数据、业务模式以及市场定位,以了解其内在价值和潜在风险。同时,我们还将考察技术面的指标,如价格走势、均线形态等,以揭示市场…

Python分享之 Spider

一、网络爬虫 网络爬虫又被称为网络蜘蛛&#xff0c;我们可以把互联网想象成一个蜘蛛网&#xff0c;每一个网站都是一个节点&#xff0c;我们可以使用一只蜘蛛去各个网页抓取我们想要的资源。举一个最简单的例子&#xff0c;你在百度和谷歌中输入‘Python&#xff0c;会有大量和…

asyncio是什么?

如果把进程比作从A处到B处去这件事&#xff0c;那么线程就是可供选择的多条道路&#xff0c;协程就是道路上特殊路段&#xff08;类似限速&#xff0c;一整条道路都是特殊路段的话&#xff0c;就是全部由协程实现&#xff09; 例图如下&#xff1a; 1. 什么是协程&#xff08…

OPENCV C++(九)鼠标响应+dft+idft

鼠标响应回调函数&#xff08;固定格式&#xff09; void on_mouse(int EVENT, int x, int y, int flags, void* userdata) {Mat hh;hh *(Mat*)userdata;Point p(x, y);switch (EVENT){case EVENT_LBUTTONDOWN:{points.x x;points.y y;mousePoints.push_back(points);circle…

Java项目-苍穹外卖-Day03

文章目录 员工分页查询功能实现需求分析和设计代码开发pageHelper底层代码完善 启用禁用员工账号功能开发需求分析 员工分页查询功能实现 需求分析和设计 代码开发 先设计类 将对应分页查询的传参类以及结果类进行封装 对应真正返回的为Result<PageResult>Controller…