技术饭
ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored
ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored,今天打开阿里云centos的控制面板出现了这种情况,有点懵逼,就重启了下服务器,就一直报这种错误,然后定时任务还被设置成了0,定时任务改回来,15分钟左右又被篡改成了0,估摸着应该是被植入了病毒,想想这台服务器之前因为Redis没有设置密码就已经出现过定时任务文件被篡改的情况,当时还没在意。
分析:
执行vim /etc/ld.so.preload可发现该文件中打印如下语句:
/usr/local/lib/libftp.so
结合报错信息:ERROR: ld.so: object '/usr/local/lib/libftp.so' from /etc/ld.so.preload cannot be preloaded: ignored.
翻译报错信息为:运行时ld动态链接找不到指定库错误,当运行加载/etc/ld.so.preload时,实际动态加载/usr/local/lib/libftp.so文件,编辑打开/usr/local/lib/libftp.so,发现此为空文件,进而引发” ERROR: ld.so:..错误”
注释:
1.Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows下.dll文件
2.ld.so命令的周期是发生在run-time的,名字叫动态链接器/加载器。它的作用体现在运行时。比如你链接了指定的库,它运行的时候会根据指定的路径去加载指定的库
解决思路:面向百度
寻觅许久,发现一位仁兄的解决方案,详见:https://blog.csdn.net/zhanghenan123/article/details/88718898
接着分析其语句,了解其语句背后的意义
出现此问题中病毒了,执行如下操作即可完全解决
echo "" > /etc/ld.so.preload
chattr +i /etc
rm -rf /var/spool/cron/*
rm -rf /etc/cron.d/*
chattr +i /var/spool/cron/
rm -f /usr/local/lib/lbb.so
chattr +i /usr/local/lib
killall kworkerdsrm -f /var/tmp/kworkerds*
rm -f /var/tmp/1.so
rm -f /tmp/kworkerds*
rm -f /tmp/1.so
rm -f /var/tmp/wc.conf
rm -f tmp/wc.conf
其中chattr +i命令是给文件夹加锁,删除完赶紧上锁,防止恶意文件再复制进去
详解语句
1.置空语句
echo "" > /etc/ld.so.preload
置空语句
注释:
将/etc/ld.so.preload置空,使在运行前不动态链接加载其它类库
详解语句
2.文件加锁
chattr +i /etc
防止黑客更改/etc下文件
注释:
chattr +i命令是给文件夹加锁,删除完赶紧上锁,防止恶意文件再复制进去
详解语句
3.移除定时
rm -rf /var/spool/cron/*
注释:
将r/var/spool/cron/*下的所有Linux定时器删除
最后还是觉得如果出现了这种病毒最好的防护是直接初始化系统吧,没有别的办法了!!!
参考:https://blog.csdn.net/hh_hh1816/article/details/105872554
文明上网理性发言!