​ 系统环境: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. NTP\rsync+inotify

    NTP网络时间协议 NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC(世界统一时间),再配合各个时区的偏移调整就能实 ...

  2. 1.9 货仓选址问题——Python

    题目描述 在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN. 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品. 为了提高效率,求把货仓建在何处,可以使得货仓到每家商店 ...

  3. 【Unity3D】Android App Bundle(aab)打包上架Google Play介绍

    总体说来,Android App Bundle打包有3种方式,每种方式都有成功上架Google Play进行测试通过,因此实用程度还是挺高的.能够理解以下内容的前提是会打apk包,知道如何生成Asse ...

  4. XV6学习笔记(1) : 启动与加载

    XV6学习笔记(1) 1. 启动与加载 首先我们先来分析pc的启动.其实这个都是老生常谈了,但是还是很重要的(也不知道面试官考不考这玩意), 1. 启动的第一件事-bios 首先启动的第一件事就是运行 ...

  5. 开源中国【面经】Java后台开发

    2021.04.09 直接正文: 开场自我介绍,说一下自己 有没有实习经历?(毕业实习) 毕业实习学了什么?(前端) 有什么大项目吗?(除了课设就是毕设) 能说一下毕设的情况吗?(做了大概,没有开始登 ...

  6. SpringBoot开发六-发送邮件

    需求介绍-发送邮件 首先要进行邮箱设置,要启用客户端SMTP服务. 而且SpringBoot也给了JavaMailSender发送邮件. 代码实现 首先你需要设置好邮箱,步骤百度一大堆,记住要配置一个 ...

  7. 安鸾CTF-cookies注入

    什么是cookie注入? cookie注入的原理是:修改cookie的值进行注入 cookie注入其原理也和平时的注入一样,只不过注入参数换成了cookie 例如:PHP $_REQUEST 变量变量 ...

  8. Jetpack Compose学习(2)——文本(Text)的使用

    原文: Jetpack Compose学习(2)--文本(Text)的使用 | Stars-One的杂货小窝 对于开发来说,文字最为基础的组件,我们先从这两个使用开始吧 本篇涉及到Kotlin和DSL ...

  9. NOIP 模拟 $32\; \rm Walker$

    题解 \(by\;zj\varphi\) 发现当把 \(\rm scale×cos\theta,scale×sin\theta,dx,dy\) 当作变量时只有四个,两个方程就行. 当 \(\rm n\ ...

  10. nginx使用geo模块进行接口访问限制

    背景需求: 对api接口 /api/inner 进行ip访问限制 # ip白名单geo $ip_list { default 0; 111.111.111.111 1; } server { list ...