1
概述
近日,微步情报局接连捕获到一组Linux特马样本,主要用于攻击者渗透后的远程控制。由于该项目使用go编译,且其中核心项目名称为acc,故称之为acc特马。
微步情报局判断,通常情况下Linux木马相对较为少见,攻击者主要通过上传Webshell来控制服务器。但随着Webshell检测能力的不断增强,攻击者似乎正在尝试使用Linux特马来绕过检测,使得Linux对抗强度全面升级。
截至发稿前,微步云沙箱S已支持同组特马的精确检测,建议相关用户及时加固Linux主机,检测、查杀恶意代码,封禁对应C2。
由于样本采用C2轮询机制,单个样本指向的多C2具有相同的空间测绘特征,即用同一公钥进行远程上线以追求自动化操作。结合样本以及该特征,微步情报局测绘发现在野未有样本关联的C2总计多达70余个。
微步情报局发现相关C2均使用阿里云资产,拓线相关C2端口号和IP归属地数据统计如下:
可以发现,acc特马于7月22日最早出现,在这几周里的活跃度持续上升,且不断出现免杀能力更强的新变种,导致多家单位中招。由于现阶段相关行业对Linux相木马的防范和预警能力普遍较弱,在接下来的一个月内,acc特马仍然会大肆攻击相关单位的Linux主机。微步情报局将对该特马家族进行持续跟踪和狩猎。
2
近日,微步情报局捕获了一批由Golang编写Linux特马样本(下文称acc特马),格式均为ELFx64位,通过高混淆的形式来加大逆向难度,提升免杀效果,最终实现远控功能。
样本内部的关键字符串、函数等都做了混淆,防止进行逆向。
acc特马样本的免杀能力非常强,截至目前,在VT平台的多引擎检出率仍为0,在S沙箱中也只有自研引擎可以准确识别,如下图所示:
图:vt多引擎检测结果
图:微步云沙箱S检测结果
图:微步自有OneStatic引擎支持检出
目前掌握的最早同类型样本出现在7月22号,静态信息如下所示。
| SHA256 | 7ff329e0a20a96dd4d0e8b42a216ade348161566250b7e39e166031c881f34d0 |
| SHA1 | b0f58a9871d0a6d26e9490be10ffc6b1ed01e46d |
| MD5 | 86bdfac52da47b36ea424dc9c56a5889 |
| 文件类型 | ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID, stripped |
| 文件大小 | 6.3 MB |
| 文件名称 | sshd |
2.2 伪装投放
有趣的是,微步情报局分析发现,该样本会在已知某些系统环境的情况下通过伪装成特定的命名来投放,隐蔽性极强。目前云沙箱S捕获到的普遍在6MB以上,另外在C2拓线的过程中也发现了少量Windows平台编译的acc特马。
已知样本命名如下:
bash、ssh、sbin-usr(伪装成正常系统文件);
xredis、mysqld、java、javah、ngin、erp-mysqld、eyou_update、openstack_update(应用程序及其更新程序);
titan_agentx、titan_proxy、ds_agent、titan_system、yjglzx_agent、360agent、zabbix_agentd(伪装edr、云助手及各类agent命名);
xx集团(柬埔寨)暑期999全家游.iso、10.2.18.81-svn.rar、iis_bin.exe(window系统样本)。
2.3 C2轮询加密通信
一个acc特马包含多个C2,运行原理是进行轮询C2查看连接效果,当沙箱自动或个人分析时,只能发现第一个C2。当C2被发现时,可随时停止使用该C2地址从而切换到下一个C2依旧维持与外界通信,对抗情报检出。
在获取了本机的一些基础信息后,样本会尝试与远控地址进行通信。
样本会解密出5个C2地址,当其中一个C2地址无法通信时,样本会读取内部的其他C2进行轮询。
在与C2建立连接后,运行RunLoop模块循环接收信息,通过加密数据流的方式进行通信,防止被NDR设备检出。
2.4 样本其他功能
获取主机信息,初始化并回连C2:
开启回连C2的对应方法中,获取host信息后开启回连:
在开启回连方法中,主要有以下功能:
在解密C2阶段,会通过addressDecrypt方法分别解密5个C2,随后通过RunLoop方法循环接受命令。
目前,微步情报局捕获到的关联样本C2均为阿里云主机IP,通信端口为53、80、81和443,基本可以确定该样本为攻击队二次开发的远控工具。
3
对抗升级
3.1 基础信息
随着初始样本被检出,攻击者进一步提升了样本对抗能力。
上周,微步情报局再次捕获类似Linux特马,使用异种语言加载(如rust),命令行校验或者样本混淆等方式使得分析难度大幅提升,其静态信息如下。
| SHA256 | 1232b8d5f116421803d267d6195e37a7198883d71b76ce3cdcb91730f86c9b79 |
| 样本大小 | 6.33 MB |
| 样本格式 | ELF x64 |
| 样本名称 | yar |
图:微步云沙箱S检测结果
3.2 Rust免杀
该样本使用Rust编译而成的elf文件,通过解密释放核心载荷so(即初始样本)到/dev/shm/下,核心载荷名字为.shmXXXXXX ,后为6位随机数,并执行该so文件。该样本逆向分析难度更大,免杀能力也更强,多引擎检出率为0。(目前云沙箱S自研引擎OneStatic已经支持检出),经过微步情报局分析后发现核心载荷正是上文中分析的acc特马。
图:云沙箱S多引擎检测结果
该Rust样本运行并加载acc特马的流程如下图所示:
3.3 样本分析
首先进程sleep若干时间:
然后解析命令行,分解相关参数。如果命令行不为 yar --config yar.dat,该样本将退出。
随后样本会解密出一个ELF文件:
将解密的文件命名为/.shmXXXXXX,当前为/dev/shm/.shmIxdjeU
然后将ELF文件写入到该目录下的文件:
最终样本尝试打开并运行解密后的ELF文件:
进入入口点dump相关文件,此时dump出的核心载荷即为上文中分析过的初始样本,此处不再赘述,详细分析可参考文章第二部分。
4
处置措施
1)封禁相关C2
2)清除主机上的恶意软件
3)检测排查:
排查指定通信端口(53、80、81、443)是否存在异常加密通信流量,尤其指向阿里云主机的异常流量;
检查进程列表中是否包含可疑进程名(详见上文已知的伪装文件名);
排查可读写执行目录(/tmp等),近期新增、修改的文件记录(bin目录近期是否有新增、替换系统文件行为)、/etc/passwd访问记录;
排查近期是否有大小在6M以上的ELFx64文件落盘以及是否存在可疑的系统历史命令、计划任务日志等。
5
加固建议
1)及时更新威胁情报包;
2)根据每日漏洞情报合集对相关服务器资产进行排查;
3)严格限制Linux服务器的账号执行权限;
4)攻防演练期间对邮件附件和即时通讯软件传播可执行性文件进行严格限制;
5)对内部员工进行防钓鱼安全培训。
附录-部分IOC
C2
47.95.168.191:80
47.100.160.164:80
47.99.78.41:443
123.57.6.3:81
123.56.128.253:80
123.57.223.22:81
192.92.101.4:81
39.107.75.91:81
139.224.254.181:53
139.224.45.232:53
47.102.36.88:53
47.101.43.111:53
139.196.196.178:53
Hash
9744bb5b45b25d4238e9d11465d88c9cf7a758c599217d996f8b8d45e0412967
7ff329e0a20a96dd4d0e8b42a216ade348161566250b7e39e166031c881f34d0
b66dab4fbdae54eea59313fd218abc96a54c0bbf0ab774dbe8776de9322510b2
f4045c998c785cd821f8e2b985fd500d4ad942de41931707f48e1b442bd3baf7
3d53c35ee0a1f135a64158f72c9f6d4cf5915ad35fc274f80e91a4773631c091
f3d2543a5d5d296618f4f50c96fec762b399fa15ed9e637e1b367c2274b98429
1887185af63849aea9cdd7855b638110447842f178fca9cd81b76c72acd16e68
12435ae8d190c4a0cae64009416f17195dbb7f7ca732b69e6178e9dd4c66fcb2
d8147a494837560347d40027ae08beab4eb8c4c25beba7250276e768a986613d
90adac72b6038472083e3e2ff8ab8a41eb624c5dc5b0dce58653d94d6c8b4da9123 2b8d5f116421803d267d6195e37a7198883d71b76ce3cdcb91730f86c9b79
公众号后台发送消息“ acc ”,可获取完整版IoC。
· END ·