password
status
date
icon
category
tags
slug
summary

简介

本次挖矿事件使用的域名为 *.zzhreceive.top 。该挖矿木马会卸载杀死各种安全产品及其他挖矿木马,然后使用 bioset 遥控感染主机进行 DDoS 攻击、并使用 tmate(终端共享工具) 进行权限维持。当拥有 root 权限时,会使用 Diamorphine 对挖矿进程进行的隐藏(内核级隐藏)。使用 ssh、docker、redis 进行横向感染,创建服务进行持久化控制。

流程图

notion image

主 sh 文件分析

请求恶意域名带上主机 id 信息
notion image
域名发现与 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 分析

根据设备内存情况调整扫描速度
输出字符画
notion image
利用 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。
notion image
版本为 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 也不行)检测到
 
Systemd Miner挖矿木马分析及清理wannamine 分析
公告
password
status
date
icon
category
tags
slug
summary
年轻时,你的潜力是无限的。说实在的,任何事都有可能做成。你可以成为爱因斯坦,也可以成为迪马吉奥。直到某一天,你身上的可能性消失殆尽,你没能成为爱因斯坦,你只是一个无名之辈。那真是糟糕的时刻。
🔮
所谓魔法不过是我们尚未了解的科学。
📚
潜心学习,低调发展。