​ 系统环境: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. OpenFaaS实战之八:自制模板(maven+jdk8)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. Mysql数据库基础知识(全)

    前言:本博文为个人笔记,记录了Mysql的一些基本操作,一般掌握本博文就可以了解数据库.表.数据项的增删改查,希望对大家的学习有所帮助. 首先下载PHPSTUDY,将Mysql配置为系统变量. 具体操 ...

  3. i春秋CTF-web-upload

    ------------恢复内容开始------------ 记一道文件上传的题目. 题目告诉我们随意上传,第一想到的当然给他上传一个木马文件然后蚁剑拿shell,上传之后可以在源码里查看我们上传的文 ...

  4. 天梯赛 L1-058 6翻了

    传送门:https://pintia.cn/problem-sets/994805046380707840/problems/1111914599408664577 这道字符串题,只是天梯赛L1的题, ...

  5. linux c语言学习笔记之守护进程

    哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处 http://blog.csdn.net/woshixingaaa/archive/2010/06/06/5651095.aspx 守 ...

  6. WPF按钮实现水波纹效果

    xaml代码如下 <Button x:Class="UI.btn.ZButton" xmlns="http://schemas.microsoft.com/winf ...

  7. mybatis源码核心代码

    /** * mybatis源码测试类 * @param args * @throws IOException * @see org.apache.ibatis.session.Configuratio ...

  8. 如何不耍流氓的做运维之-SHELL脚本

    前言 大家都是文明人,尤其是做运维的,那叫一个斯文啊.怎么能耍流氓呢?赶紧看看,编写SHELL脚本如何能够不耍流氓. 下面的案例,我们以MySQL数据库备份SHELL脚本的案例来进行阐述: 不记录日志 ...

  9. Javaweb学习——request&response

    request对象的作用 request是服务器对浏览器访问请求的封装 访问请求参数,通过getParameter()方法获取传递参数的值. 在进行转发请求时,需要把一些参数传递到转发后的页面进行处理 ...

  10. LeetCoded第20题题解--有效的括号

    有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空 ...