yapi安全漏洞导致服务器被木马入侵的处理过程
参考:https://blog.csdn.net/wuyongde_0922/article/details/72718821
参考:https://blog.csdn.net/weixin_34166472/article/details/92338669
参考:https://blog.csdn.net/weixin_41855143/article/details/118444530
阿里云的警告指明了木马文件是yapi目录下的20000文件,我抱着试一试的心态,杀死了相关进程,并删除了文件。然而并没有什么用,过一会他就又重启了。这就我很难受了,我并没有运维的经验,只好请教身边的朋友,查查网上相关的案例。花了4、5个小时,得到的建议是,备份数据,重装系统。这并不是我想要的,且不论需要花费的时间,我自己也不会搭环境(环境是以前的架构师搭好的)。就在我快绝望的时候,找到了一些头绪和相关的案例(见文末),最后总算是战胜了木马。
以下是根据朋友建议和案例总结的实操流程:1、crontab -l查看有无异常的定时任务,有则删除
2、进入/etc/rc.d/init.d目录,使用ll -art 查看开机启动文件(一般木马都会设置开机启动)的修改日期,如果和告警时间对得上的话大概率就是木马文件,我这里的木马文件是DbSecuritySpt、selinux,听别人说是挖矿病毒,但神奇的是服务器并没有发现cpu的使用率有疯涨的现象,据说是还没分配任务- - !发现木马文件后,直接删除即可(rc0.d ~ rc6.d都要删除)。这里耗了我很长时间,因为我删除了,过了没有多久,它又出现了,后面发现是20000这个文件重启时会添加开机启动的木马文件。这就很蛋疼了呀,删了DbSecuritySpt、selinux,20000重启就会添加。那问题还是得解决20000。
3、从上面第三张图发现ps -ef命令异常,所以就要进入/usr/bin目录去排查,使用ll -art命令得到下图
在这里插入图片描述
这是后来截的图,缺少了ss、lsof、netstat文件(删了),可以看出多了bsd-port、dpkgd目录和.sshd文件,修改了ss、lsof、netstat、ps文件。我猜测dpkgd应该是那四个命令的原始文件的备份目录(被我直接删了),bsd-port是木马的原目录,里面有个getty的执行文件,正是这个文件让20000能不断重启。一开始处理这一块的时候,我是用xftp删的,一开始我没有删掉.sshd文件(xftp不显示隐藏文件)。所以并没有删干净,.sshd又重新生成了bsd-port目录。当我发现.sshd时,我不太敢删,总以为是系统自带的文件,直到找到案例(多谢前辈)。同时我用md5sum查了一下了bsd-port/getty和.sshd的哈希值,发现他们是一样的,所以可以大胆的删。
4、删完之后就把被伪装的命令重新安装一遍
# 安装ps命令 yum reinstall procps -y # 安装netstat命令 yum reinstall net-tools -y # 安装lsof命令 yum reinstall lsof -y # 安装ss命令,安装失败,后来用 yum -y install iproute安装成功 yum -y reinstall iproute ———————————————— 版权声明:本文为CSDN博主「xszivvvv」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_41855143/article/details/118444530
5、到第4步的时候,我以为已经彻底解决了问题,准备重启来着。但我用ps -ef | grep getty检查时发现,这个进程居然还存在。
在这里插入图片描述
这才想明白伪装原有命令的用途在这,隐藏木马进程,隐藏真实的网络请求,你以为解决,没想到木马进程还在。处理直接kill -9 xx杀死木马进程,然后还要删掉/tmp/moni.lod(存到是.sshd的pid)、/tmp/gates/.lod(存的是20000的pid)文件
6、重启,检查木马进程是否还存在,检查木马文件是否存在。
7、检查mongo数据库,将异常的数据清除(用户和mock数据)
总结
木马的套路真是一环扣一环,让人防不胜防,十分感谢前辈的建议和文章,让我还能有一个愉快的周日。
目前并不能十分肯定木马是否已经彻底删除,如果有后续,会继续更新,希望不要有。
后续-2021-07-06
木马是通过mock接口注入代码引起的。解决的办法是关掉注册功能和mock功能