近期项目中遇到了几个棘手的问题,海外服务器被植入木马病毒程序。之前一直听说xxx的服务器被入侵,这次实打实遇到,还是没有做好安全防护策略
目录
,看了下应该是通过redis无密码漏洞渗透进来,
1、木马病毒侵入系统
9月14日早晨,客服侧反馈xxx系统从早晨6点半开始无法收到告警和工单,排查xxx相关网元服务都正常运维,内存,磁盘使用率占用正常,其中cpu使用率较高,存在异常情况。随机展开排查。
在随后排查问题时发现,redis集群设置被变更,导致redis集群不能正常使用,致使xxx服务连接redis报错,且服务巡检脚本日志在早晨6点24分停止。在排查服务定时任务日志时发现9月14日早晨6点24分定时巡检任务有变更,涉及redis配置、删除自动巡检脚本、执行bases64密文程序,询问相关知道服务器密码人员均没有在该时段操作过服务器。
随后1天中,xxx,xxx共计16台服务器都被植入木马,均为redis配置被篡改致使服务异常,致使数据下发和上报均失败,其中xxx两台台映射公网的服务器被入侵植入木马,CPU使用率一直占比较高,在还原redis配置,服务正常运行后,立即展开对木马程序的分析与清理。并第一时间更改各个服务器的密码。防止被恶意攻击使用。
2、发现入侵病毒+木马
因远程连接工具自带的监控发现cpu一直居高不下,过高的cpu负载会使服务在运行中存在异常,在/var/log/cron日志中发现有执行密文动作,解密后为某网站下载的一个脚本。
预览该b.sh脚本时发现该脚本逻辑紧密、嵌套多个脚本、兼容多个操作系统以及云厂家服务器。
3、定位木马病毒入侵的来源与传播路径
木马入侵来源:从xxx 26服务器看,入侵病毒是利用中间件REDIS的未授权访问漏洞进行攻击,REDIS配置的是默认6379端口无密码访问,攻击者通过公网可以直接链接redis,向root用户写入SSH公钥文件,获取服务器权限并注入木马病毒
分析过程如下:
查看redis持久化文件,发现文件中有清空所有redis数据相关命令执行,与之前我们看到的redis数据被删,业务异常现象一致,如下图所示
攻击可以通过连接并且设置了很多定时任务,包括从网上下载病毒木马脚本定时任务,如下图:
通过redis可以修改持久化文件名命名、内容修改,并且指定目录存放该文件,将原有操作系统替代,攻击者可以进行免密登录操作系统,后进行木马程序植入传播路径:通过入侵脚本查看,靶机被成功入侵后,通过命令读取服务器中known_hosts文件,该文件记录了通过该主机访问的所有IP信息,木马脚本通过扫描该文件然后在ssh爆破登录其他服务器进行传播 。
分析过程如下:
1、 通过分析木马脚本中有如下动作,拿到相关IP后,同样会通过redis进行入侵对应服务器
4、分析入侵木马脚本
一般入侵木马是利用服务器的算力进行WK,在植入木马时更改文件属性,添加定时执行任务,更改常用命令(ps,top等),重命名程序名称伪装正常程序进程。
4.1走读b.sh初始木马脚本:(以下为26服务器)
4.2走读s.sh脚本文件
走读c.sh文件
27服务器上查看定时任务时发现,已经被植入定时任务,走读newinit.sh脚本
5、清理木马入侵程序
1)及时修改服务器密码,且密码复杂度较高。
2)开发侧及时针对redis免密登录进行改造,且不使用默认6379端口。
3)根据上述木马病毒行为分析:
3.1)清理crontab定时任务,恢复crontab原有内容
3.2)清空/root/.ssh/know_hosts的内容,避免ssh互信交叉复制入侵木马
3.3)还原文件属性,恢复其可编辑权限。
3.4)删除伪装重命名的木马病毒程序文件。
3.4)恢复被重命名的系统命令(ps,top,pstree等命令),以及原有防火墙规则。
3.5)根据cpu占比情况,删掉木马病毒程序进程。
3.6)避免ssh使用默认22端口
大概就这么多,不是很完善,公网暴露的服务器还是要谨慎。
先收藏几个官方推荐的清理木马病毒的链接,后续在更新!