- A+
|
|
|
|
2. 关闭YAPI用户注册功能,阻断攻击者注册; 3. 禁止YAPI所在服务器从外部网络访问; 4. 排查YAPI服务器是否存在恶意访问记录; 5. 删除恶意mock脚本,防止再被访问触发; 6. 服务器回滚快照。 |
|
下面是处理案例分析
今天某客户联系我们说,自己的服务器突然收到阿里云告警,说服务器有木马风险
漏洞出自yapi服务,二话不说先停了服务,然后去yapi的github上看看,果不其然,有人提了相关issue。
阿里云的警告指明了木马文件是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
5、到第4步的时候,我以为已经彻底解决了问题,准备重启来着。但我用ps -ef | grep getty检查时发现,这个进程居然还存在。
这才想明白伪装原有命令的用途在这,隐藏木马进程,隐藏真实的网络请求,你以为解决,没想到木马进程还在。处理直接kill -9 xx杀死木马进程,然后还要删掉/tmp/moni.lod(存到是.sshd的pid)、/tmp/gates/.lod(存的是20000的pid)文件
6、重启,检查木马进程是否还存在,检查木马文件是否存在。
7、检查mongo数据库,将异常的数据清除(用户和mock数据)
8.木马是通过mock接口注入代码引起的。解决的办法是关掉注册功能和mock功能
- 微信 wzgj360
- 联系免费答疑
- QQ 613049615
- 联系免费答疑