password
status
date
icon
category
tags
slug
summary
简介
本次挖矿事件使用的域名为
*.zzhreceive.top
。该挖矿木马会卸载杀死各种安全产品及其他挖矿木马,然后使用 bioset 遥控感染主机进行 DDoS 攻击、并使用 tmate(终端共享工具) 进行权限维持。当拥有 root 权限时,会使用 Diamorphine
对挖矿进程进行的隐藏(内核级隐藏)。使用 ssh、docker、redis 进行横向感染,创建服务进行持久化控制。流程图
主 sh 文件分析
请求恶意域名带上主机 id 信息
域名发现与 TeamTNT 有关(但钱包地址是另一个团队的,所以不一定是 TeamTNT 进行的挖矿 )
资源控制 修改可以打开的最大文件描述符的数量
将
/var/tmp/.copydie
目录添加到系统变量,这个目录为木马日志存放的位置检测主机是否存有上一次的日志文件,如果不存在,则这台主机没有运行挖矿木马。获取日志文件最后一次修改时间和现在的时间差,如果大于600,那么挖矿没有运行挖矿木马。若判断挖矿正在运行,则执行
exit 1
退出以相同的方法判断了另外两个日志是否存在
删除系统日志
删除
/tmp/
/var/tmp/
目录的文件属性,保证可以写入关闭防火墙、清除防火墙规则
禁用NMI看门狗
删除 ssh 文件的文件属性
卸载安骑士及云镜
停止 vps 云监控插件
关闭SELinux模式,关闭访问权限控制
直接杀死删除安骑士、云镜
定义了一些变量
保证拥有对于对应命令及目录的权限
杀死其他已知挖矿程序
读取所有的进程号,读取进程中运行的程序链接,如果包含
/tmp
目录下的文件且名字不为kswapd0
,就杀死进程对于占用 cpu 超过 40%的进程,如果进程名不为
kswapd0
则杀死进程。该函数用于杀死其他未知挖矿程序,不过也会清理掉占用 cpu 超过 40%的正常进程。
配置 DNS 解析服务器为 8.8.8.8 和 8.8.4.4
清理计划任务
锁定计划任务
寻找 ssh 及 aws 秘钥
下载 bioset 并执行
判断用户,如果是 root 用户,会通过 base64 编码数据生成 tar 文件,解压后编译(会安装一些编译需要的包)
通过
insmod diamorphine.ko
命令安装编译后的 diamorphine通过 diamorphine 隐藏恶意进程
传入两个参数,从参数 1 下载文件 命名为参数 2。
下载hide.tar,里面包含若干 so 文件,通过写入
/etc/ld.so.preload
,属于预加载型恶意动态链接库后门该函数未被调用
清除其他挖矿
新增 hilde 用户,赋予 sudo 权限,写入恶意 ssh 秘钥
写入 ssh 秘钥收集工具(https://github.com/r3vn/punk.py)到
/usr/bin/pu
,不过该函数并未被调用判断
/var/tmp/.copydie/[kswapd0].log
是否存在,根据结果向服务器传达安装情况判断
/home/hilde/.ssh/authorized_keys
是否存在,根据结果向服务器传达添加用户及秘钥情况判断
/root/.ssh/authorized_keys
是否存在,根据结果向服务器传达向 root 用户添加秘钥情况从
http://bbq.zzhreceive.top/midd.jpg
下载 xmrig 矿机并解压,失败时从备选处下载,顺序依次为 MOxmrigMOD、MOxmrigSTOCK,配置文件下载地址为config_url、config_url_backup。设置矿机配置文件
创建
kswapd0
恶意服务设置完后配置文件如下,挖去的币种为门罗币,使用的是自建矿池。钱包地址为
43Xbgtym2GZWBk87XiYbCpTKGPBTxYZZWi44SWrkqqvzPZV6Pfmjv3UHR6FDwvPgePJyv9N5PepeajfmKp1X71EW7jx4Tpz
清空邮件提示、登录日志、安全日志
寻找本地 ssh 记录,尝试登录并执行恶意脚本
处理阿里云相关安全组件
攻击者使用2.4.0版本的 终端共享工具 tmate(https://github.com/tmate-io/tmate
)作为后门,URLTOKEN 会生成一个字符串,如
261342O26837
。将该唯一标识通过 HTTP 请求上报,攻击者即可使用 tmate 的服务连接失陷主机。攻击者的 APIKEY 为 tmk-4ST6GRXU6GPUjlXHfSlNe0ZaT2
。调用对应函数
检测是否已执行过localgo函数,如果未执行则执行一次
执行
cronis.sh
,清除 bash 历史记录cronis.sh 分析
重命名系统命令
卸载安全产品
部署 masscan、pnscan 扫描程序
启动 docker
执行cronscan
cronscan分析
检测systemctl是否可用,不可用时执行 rss.sh
systemctl 可用时新建 mass 服务及 mate 服务及 scan 服务,对应 c.sh、tmate.sh及cronrs.sh
rss.sh 分析
利用 masscan 扫描 redis 服务器,写入计划任务进行控制
c.sh 分析
根据设备内存情况调整扫描速度
输出字符画
利用
masscan
和 zgrab
对 2375 端口和 2376 端口进行扫描,再利用 docker 远程访问安装 curl 并下载cronb.sh
写入定时任务tmate.sh 分析
持久化终端共享工具 tmate
cronrs.sh 分析
利用 masscan 扫描 redis 服务器,写入计划任务进行控制
bioset分析
基于 ziggystartux (https://github.com/isdrupter/ziggystartux)进行二次开发的DDoS IRC Bot。
版本为 BadKarma v12 Feb 2021
具备以下恶意功能
- 发起 UDP 洪水、SYN 洪水、ACK 洪水等 DDoS 攻击
- 执行命令
- 更改 C&C 服务器、更新
C&C 服务器为
hbase.zzhreceive.top
diamorphine分析
Diamorphine是一个C语言写的,运行于linux系统的rootkit,支持linux 内核版本2.6.x/3.x/4.x/5.x和 ARM64
https://github.com/m0nad/Diamorphine
功能如下
- 隐藏进程
- 隐藏内核模块
- 给任意进程 root 权限
- 隐藏文件/文件夹
卸载方法
kill -63 0
rmmod diamorphine
本次挖矿事件中使用的功能是隐藏进程,本程序被用于对挖矿程序进行隐藏
因为该程序从内核级对进程进行隐藏,所以隐藏后的进程不会被
/proc/<pid>
及 ps命令(busybox 也不行)检测到- 作者:fatekey
- 链接:https://blog.fatekey.icu/article/TNTminer
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。