​ 系统环境:CentOS Linux release 7.6.1810 (AltArch)

                   CPU架构:ARM

            最近发现生产服务器CPU占用过高但是查看进程却没有任何过高的进程,最高也才是1点多,而且系统经常收到root用户发送的邮件

最近发现生产服务器CPU占用过高但是查看进程却没有任何过高的进程,最高也才是1点多,而且系统经常收到root用户发送的邮件

所以有理由是怀疑中了挖矿病毒,查看网络连接信息(命令:netstat -napt)后发现一条疑似矿池的连接记录

然后去查找这个IP地址发现是M国的一个地址,去到某服安全中心查看这个IP果然是矿池地址无疑

结果某安的威胁中心查出来的结果也是一样的

显示结果跟网络连接中的信息是一样的,这下确定无疑了

首先根据root用户发送给系统的邮件内容的路径去查看文件,

cat /etc/ld.so.preload

发现内容是/usr/local/lib/libprocesshider.so,是linux系统的一个链接库,在这个文件里面写下的地址系统在运行程序时会自动去这些个目录里面找需要的动态库文件,先删除试一下

rm /etc/ld.so.preload

发现无法删除,查找资料后得知Linux系统还有一个叫文件锁定保护的命令,具体参数如下:

使用chattr命令解除锁定然后删除

chattr -i /etc/ld.so.preload
rm -rf /etc/ld.so.preload

然后再对/usr/local/lib/libprocesshider.so进行操作,直接一步到位,解除锁定,然后删除

chattr -i /usr/local/lib/libprocesshider.so
rm -rf /usr/local/lib/libprocesshider.so

执行成功,继续下一步,查看定时任务,并清理,查询cron.d、cron.hourly、crontab目录或文件的异常

lockr -i /etc/cron.d/phps
rm -rf /etc/cron.d/phps
lockr -i /sbin/httpss
rm -rf /sbin/httpss

查看/etc/crontab文件内容,/etc/crontab是linux系统定时任务配置文件所在,用vim编辑器删除最后3行,最后3行就是病毒链接所在,还是一样,不管有没有,先解除锁定,再修改

chattr -i /etc/crontab
vim /etc/crontab

查看定时任务并修改

crontab -l
crontab -e

回显提示crontab: error renaming /var/spool/cron/#tmp.localhost.localdomain.XXXXPL0tU3 to /var/spool/cron/root

rename: 不允许的操作

crontab: edits left in /tmp/crontab.IFed5j,说明/var/spool/cron/root,/tmp/crontab.IFed5j这两个目录文件都有问题,跟定时任务是相关联的,先清除这几个文件,防止上锁,先解锁,再删除

chattr -ia /var/spool/cron/root
rm -rf /var/spool/cron/root
chattr -ia /tmp/crontab.IFed5j
rm -rf /tmp/crontab.IFed5j

进入到/tmp目录下查看是否还有其他的缓存文件,如果有,一并删除(crontab -e所产生)

# 服务清理及自启动清理,查看/etc/rc.d/init.d/目录,/etc/rc.d/rc.local文件,/lib/systemd/system文件

cd /etc/rc.d/init.d/ #无异常

cat /etc/rc.d/rc.local  #无异常

cd /lib/systemd/system  #发现异常服务文件

vim pwnriglhttps.service
systemctl stop pwnriglhttps.service
systemctl disable pwnriglhttps.service

删除服务

rm -rf pwnriglhttps.service

查看系统hosts解析文件有无异常,如有异常用vim编辑器修改

cat /etc/hosts
vim /etc/hosts

清理各目录下的病毒文件

rm -rf /usr/bin/.sh
rm -rf /bin/.sh
lockr -i /bin/.funzip
rm -rf /bin/.funzip

查看/etc/profile文件

cat /etc/profile

回显显示最后4行文件有问题,用vim删除

vim /etc/profile

发现目录/etc/profile.d/下出现异常文件:php.sh、supervisor.sh

查看内容

cd /etc/profile.d/

cat php.sh

cat supervisor.sh

查看supervisor.sh显示/etc/.supervisor/supervisord.conf

删除删除php.sh,supervisor.sh,/etc/.supervisor/supervisord.conf

lockr -i php.sh supervisor.sh

rm -rf php.sh supervisor.sh

lockr -i /etc/.supervisor/supervisord.conf

rm -rf /etc/.supervisor/supervisord.conf

最后删除/etc/.sh /usr/bin/.sh

chattr -ia /etc/.sh /usr/bin/.sh

rm -rf /etc/.sh /usr/bin/.sh

最后清除邮件并重启

echo "d *" |mail -N
reboot

开机后查看网络连接信息发现刚开始的那条IP已经没有了,说明残留的病毒文件已经清理完成

为了再次防止这个矿池来搞事情,最好在出口区域的安全设备的对该地址及域名相关进行封禁

————本文为原创,转载请禀明出处

分享一则Linux系统邮件提示 /usr/local/lib/libprocesshider.so > /etc/ld.so.preload 的中病毒解决方法的更多相关文章

  1. Linux下Python3.5使用pyqt5.11报错 ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtCore.so: undefined symbol: PySlice_AdjustIndices 解决方法

    我用的Linux自带的是Python3.5版本,运行pip3 install PyQt5, 下载的是PyQt5.11,运行PyQt5程序会报错: ImportError: /usr/local/lib ...

  2. Linux系统下Java 转换Word到PDF时,结果文档内容乱码的解决方法

    本文分享在Linux系统下,通过Java 程序代码将Word转为PDF文档时,结果文档内容出现乱码该如何解决.具体可参考如下内容: 1.问题出现的背景 在Windows系统中,使用Spire.Doc ...

  3. 在linux系统下安装mysql详解,以及远程调用连接不上mysql的解决方法。

    步骤: 1)查看CentOS自带的mysql 输入 rpm -qa | grep mysql 2)将自带的mysql卸载 3)上传Mysql的安装包到linux 4)安装mysql的依赖(不是必须) ...

  4. /lib /usr/lib /usr/local/lib区别

    昨天问我/usr/lib 和/usr/local/lib 我仅记得一个是系统的,一个是用户的,于是今天查了查,有两篇文章介绍的不错,usr 很多人都认为是user缩写,其实不然,是unix syste ...

  5. /lib /usr/lib /usr/local/lib 区别

    简单说,/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的. /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件.目录 /usr/lib ...

  6. /lib /usr/lib /usr/local/lib 的区别

    /lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的. /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件.目录 /usr/lib/ 中含 ...

  7. “/usr/local/lib/libosipparser2.so.7: could not read symbols: Invalid operation” 异常解决

    编译c代码报错如下 /usr/bin/ld: /tmp/ccl8nBND.o: undefined reference to symbol 'osip_message_get_body' /usr/b ...

  8. /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)

    /usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux) /usr/bin/ld: /usr/local/lib/lib ...

  9. 安装npm全局包提示没有写入权限: npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

    方法一 安装npm全局包提示没有写入权限: npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules ...

随机推荐

  1. Linux各目录及每个目录的详细介绍总结

    Linux各目录及每个目录的详细介绍 [常见目录说明] 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里. /etc 存放系统管理和配置文件 /home 存放所 ...

  2. SpringBoot | 3.3 整合MyBatis-Plus

    目录 前言 1. 什么是MyBatis-Plus 1.1 BaseMapper接口 1.2 IService接口 2. 整合MyBatis-Plus以及CRUD功能 2.1 导入场景依赖 2.2 CR ...

  3. 【笔记】scikit-learn中的PCA(真实数据集)

    sklearn中的PCA(真实的数据集) (在notebook中) 加载好需要的内容,手写数字数据集 import numpy as np import matplotlib.pyplot as pl ...

  4. Thymeleaf页面静态化技术

    Teymeleaf的使用 案例一:springboot搭建Thymeleaf 1.导入依赖 2.新建html页面模板 3.新建前端控制层Controller 4.新建启动类 1.导入依赖 <?x ...

  5. git根据项目地址使用不同代理服务器

    问题 由于公司访问GitHub只能走代理,但是内网gitlab服务器又不能走代理. 因此想找到一种方案,可以支持git自动根据项目地址使用不同代理. 方案 如下所示,可以指定GitHub地址使用指定的 ...

  6. 关于下载远程文件为未知文件.txt的解决方法

    本地下载文件后缀正常,服务器下载文件后缀都为.txt的解决方法: 后缀为 未知文件.txt 的原因为前端无权限获取Content-Disposition中的文件名 response.setHeader ...

  7. 【工作篇】再次熟悉 SpringMVC 参数绑定

    前言 主要现在项目中使用的参数绑定五花八门的,搞得很头大,例如有些用字符串接收日期,用字符串接受数组等等,完全没有利用好 SpringMVC 的优势,这里自己也总结一下,免得到时又要百度谷歌查找. 以 ...

  8. node 报错 throw er; // Unhandled 'error' event 解决办法

    node 报错 Starting child process with 'node web.js' events.js:183 throw er; // Unhandled 'error' event ...

  9. Qt多窗口编程详解

    常用的窗体基类是 QWidget.QDialog 和 QMainWindow,在创建 GUI 应用程序时选择窗体基类就是从这 3 个类中选择. QWidget 直接继承于 QObject,是 QDia ...

  10. 模拟文件上传(三):使用apache fileupload组件进行文件批量上传

    其中涉及到的jar包 jsp显示层: <%@ page language="java" import="java.util.*" pageEncoding ...