故事背景
最新收到报警消息,一直提示服务器CPU 100%,然后登入服务器用top一看,发现并没有进程特别占用CPU,马上第一直觉就是top命令已经被篡改。需要借助其他的工具。
安装busybox
代码语言:javascript复制系统有故障,登录后如果发现用正常的命令找不到问题,那么极有可能该命令被篡改。
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件,里面就有我需要的top命令。
> busybox top
image-20210629223207356
终于看到了这个
kthreaddi
进程,上网一查这个东西叫门罗币挖矿木马
,伪装的实现是太好了和系统中的正常进程kthreadd
太像了。
清理门罗币挖矿木马
代码语言:javascript复制常规方式先试试
> kill -9 6282
过一会又起来了,说明有守护进程
检查系统中的定时任务
代码语言:javascript复制> crontab -l
0 * * * * /tmp/sXsdc
发现一个这,一看就不是什么好东西,直接清理
crontab
,crontab -e
dd
:wq!
一顿操作,观察了一会发现又出来0 * * * * /tmp/xss00
,可执行程序的名字还变,看来处理这个无济于事,这些文件都是二进制的,直接打开查看,也看不出啥。
去内核数据目录找找看
代码语言:javascript复制> ls -al ll /proc/6282
6282
是刚才那个挖矿进程
image-20210629224536853
代码语言:javascript复制原来在 tmp下面有文章 ,但是被 deleted,不管先去看看
> /tmp/.dHyUxCd/
> ls -al
image-20210629225014529
config.json 里面都是一些配置,里面找到一个美国的IP
image-20210629225502368
清理病毒
- 删除
/tmp/.dHyUxCd/
目录 - kill -9 挖矿进程pid
- reboot重启
总结
本次服务器被挖矿,有可能是docker没有TLS通讯加密,也有可能是redis的弱密码,被入侵。先把docker停掉(后面抽空Docker启用TLS进行安全配置),redis密码强度加高一点。