• 云主机中毒 cpu爆满解决日志


    在上一篇博文Linux系统发现占用CPU达100%的进程并处理 里面以为已经把挖矿程序sustse处理干净了,可是没过两天又收到阿里云短信提醒,说服务器有问题,难道还有后门吗?也多亏阿里云给出提示“出现了可疑安全事件:Linux共享库文件预加载配置文件可疑篡改”。网上查了查相关内容,原来这个后门是动态链接库预加载机制造成的。
    动态链接库预加载机制是系统提供给用户运行自定义动态链接库的一种方式,在可执行程序运行之前就会预先加载用户定义的动态链接库的一种技术。这种技术可以重写系统的库函数,只需要在预加载的链接库中重新定义相同名称的库函数,程序调用该库函数时,重新定义的函数即会屏蔽掉正常的库函数。
    动态链接库预加载机制有两种方式:LD_PRELOAD环境变量和/etc/ld.so.preload配置文件。赶紧查看下LD_PRELOAD环境变量:
    #echo LD_PRELOAD

    未见异常,再看看/etc/ld.so.preload配置文件:

    果然有异常的库,这里的cat或ls命令最好使用静态编译的,或者使用busybox工具,否则可能因为恶意库被隐藏而发现不了:

    从时间上看,这个库和阿里云检测到的问题时间是一致的,赶紧清空ld.so.preload文件并删掉lbb.so库。使用top再查看一下:

    原来top查不到的kworkerds进程终于出现了,而且启动了很多。看来不单单top命令没异常就代表查看是真实的信息,还要记得检查预加载库。
    使用ps命令再查看下:

    原来/var/tmp/目录下的kworkerds文件又出现了,这次好好找找吧,发现/tmp目录下也有这个文件,看来是会相互复制的。为了快速删除得写个删除脚本了,执行脚本删除完,top再查看,没有发现kworkerds进程,可是再看/usr/local/lib/目录,lbb.so库又出现了。
    还是没能彻底清除,肯定还有定时任务,crontab -e命令删除的只是root创建的定时任务,而用户创建的定时任务在/var/spool/cron/目录下,查看/var/spool/cron目录:

    果然还有定时任务,将其删除,再看/usr/local/lib/目录,还是被恢复了。阴魂不散啊,再看/etc/cron.d目录下文件:

    还有那个定时任务,将其也删除,这下终于不再复发了。最后整理我的删除脚本如下:

    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/*
    chattr +i /usr/local/lib
    killall kworkerds
    rm -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
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    其中chattr +i命令是给文件夹加锁,删除完赶紧上锁,防止恶意文件再复制进去,这下终于安静了。。。
    -#################################################################l

    第二种方案

    原因是在 有个叫 libselinux.so的二进制在执行,这个名字看起来跟selinux有关系,实则不然,应该是一个挖矿脚本之类的,然后top里没有进程,ps 里也没有
    最后通过 perf top -s comm,pid,symbol    查出一堆unknown进程,然后根据 /proc/pid 找到了执行文件所在地,删除了整个目录,最后就cpu使用率就降下去了,
    现在的病毒真机智,竟然在top 和 ps 里死活都查不出来,通过 ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu  这个命令竟然都没有。

    执行完果真发现了病毒 

    另外 top -i  top -b 可尝试 不一定安装perf   没有就按sudo yum install perf

    然后  

    kworkerds 处理脚本

    腾讯云的机器发现中了 kworkerds 病毒。经过一顿调查,初步完成了处理。

    结合网上其他人的遭遇,感觉这个病毒会有所进化,如果发现我这招不好用,就需要研究一下你中的病毒的脚本,它到底修改了哪些文件。然后通过 chattr -i 去掉 i 属性(这个是后来病毒才需要的,困扰了我好久,之前竟然都没听所过Linux下面还有这个属性),然后才能修改文件的只读属性。

    
    echo '127.0.0.1 pastebin.com' >> /etc/hosts
    
    chattr -i /etc/ld.so.preload
    echo "" > /etc/ld.so.preload
    
    chattr -i /usr/local/bin/dns
    echo "" > /usr/local/bin/dns
    
    chattr -i /etc/cron.d/root
    echo "" > /etc/cron.d/root
    
    chattr -i /etc/cron.d/apache
    echo "" > /etc/cron.d/apache
    
    chattr -i /var/spool/cron/root
    echo "" > /var/spool/cron/root
    
    chattr -i /var/spool/cron/crontabs/root
    echo "" > /var/spool/cron/crontabs/root
    
    rm -rf /etc/cron.hourly/oanacroner
    rm -rf /etc/cron.daily/oanacroner
    rm -rf /etc/cron.monthly/oanacroner
    
    #rm -rf /bin/httpdns
    #sed -i '$d' /etc/crontab
    
    sed -i '$d' /etc/ld.so.preload
    chattr -i /usr/local/lib/libntpd.so
    rm -rf /usr/local/lib/libntpd.so
    
    ps aux|grep kworkerds|grep -v color|awk '{print $2}'|xargs kill -9
    chattr -i /tmp/thisxxs
    rm -rf /tmp/thisxxs
    chattr -i /tmp/kworkerds
    rm -rf /tmp/kworkerds
    

     找到了这个解决脚本, 运行了就ok

  • 相关阅读:
    函数的调用-转载
    HTML常用标签-手打抄录-来自-烟雨飘零-拜谢
    CSS常用标签-手打抄录-感谢原未知博主-拜谢了
    JS函数表达的几种写法
    JS数组---转及补充--
    标准文档流特性-不含块级元素和行内元素
    块级元素和行内元素-标签收集-区别之处
    CSS盒子知识
    把应用push到/system/app上面后,出现java.lang.UnsatisfiedLinkError的问题
    Vysor:在电脑里控制你的安卓手机
  • 原文地址:https://www.cnblogs.com/vana/p/10708520.html
Copyright © 2020-2023  润新知