freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

针对macOS平台的远控木马oRAT
2022-05-18 18:44:30
所属地 北京

最近,安全研究人员发现了一个新的 APT 组织,该组织针对赌博网站开发了包括 macOS 在内各种平台的恶意软件。而 SentinelOne 最近也发现了一个针对 macOS 用户的、使用 Go 编写的远控木马 oRAT。

使用 Go 编写的远控木马实际上在 Mac 平台上并不常见,这表明攻击者越来越重视 Mac 平台,想要加强对该平台的控制。

oRAT 分发传播

oRAT 通过伪装成 Bitget 应用程序集合的磁盘镜像进行传播,磁盘镜像中包含一个名为 Bitget Apps.pkg的程序安装包,其标识符为 com.adobe.pkg.Bitget

image.png-111kB磁盘镜像

之所以该磁盘镜像和程序安装包值得关注,是因为二者都没有有效的开发者签名,并且程序安装包内并没有任何文件只有一个预安装脚本。

image.png-47.3kB安装包

预安装脚本是一个简短的 shell 脚本,将 Payload 写入 /tmp 目录并赋予可执行权限启动。

image.png-188.2kB预安装脚本

目前尚不清楚攻击者使用何种方式诱使受害者下载并执行恶意文件。从样本需要覆盖来自 Gatekeeper 的默认安全警告来看,用户可能是在获取破解软件、盗版软件等网站下载得到样本,或者通过社会工程学方法诱使受害者绕过 Gatekeeper 的默认安全警告。

但是用户实际上并没有得到他们想要的东西,这对攻击者来说是非常冒险的。用户执行程序后并没有按照预期得到想要的东西,用户是容易产生怀疑的。不过这同时也表明,攻击者的攻击可能并非定向的,而是广泛撒网的攻击。

Payload

通过 darwinx64 检查释放在 /tmp文件夹中的 Payload 时,会发现该二进制文件没有任何符号。与此同时,通过 sections 列表可以发现该文件使用 UPX 进行加壳:

image.png-139.6kB恶意文件

加壳阻碍了静态分析,幸好攻击者使用的标准 UPX 3.96 容易脱壳。

加壳后的文件为 3MB,脱壳后接近 10MB。跨平台的恶意软件通常都比较大,尤其是使用 Go 编写的恶意软件,需要将语言的运行时很多支持库都打包进去。

radare2 用户可以查看函数 sym._main

image.png-41.1kB逆向分析

在 Go 二进制文件中,程序代码入口点位于 main.main,从中可以发现主函数中调用了另一个自定义包 orat_utils

image.png-502.7kB逆向分析

orat_utils 包中包含几个典型的功能:

image.png-308.5kB逆向分析

LoadConfig 函数主要解析附加在二进制文件末尾的数据块,加载远控木马的配置。解压后的加密数据占用 166 个字节,分为三部分:加密数据、AES 密钥和两字节的块大小。

image.png-581.9kB加密数据

解密后即为恶意软件的 C&C 配置信息:

image.png-41.1kB配置信息

获取配置信息后,调用 sym._orat_cmd_agent.app并建立连接。根据配置指定的类型,调用 orat_protocol.DialTCPorat_protocol.DialSTCP或者 orat_protocol.DialSUDP建立连接。TCP 使用的是 smux,SUDP 使用的是 QUIC。恶意软件在等待 C&C 服务器响应时会进入五秒轮询的睡眠循环。

sym._orat_cmd_agent.app中包含了远控的主要功能,都在下列函数中:

orat/cmd/agent/app.(*App).DownloadFile
orat/cmd/agent/app.(*App).Info
orat/cmd/agent/app.(*App).Join
orat/cmd/agent/app.(*App).KillSelf
orat/cmd/agent/app.(*App).NewNetConn
orat/cmd/agent/app.(*App).NewProxyConn
orat/cmd/agent/app.(*App).NewShellConn
orat/cmd/agent/app.(*App).Ping
orat/cmd/agent/app.(*App).PortScan
orat/cmd/agent/app.(*App).registerRouters
orat/cmd/agent/app.(*App).run
orat/cmd/agent/app.(*App).Screenshot
orat/cmd/agent/app.(*App).Serve
orat/cmd/agent/app.(*App).Unzip
orat/cmd/agent/app.(*App).UploadFile
orat/cmd/agent/app.(*App).Zip

总结

oRAT 综合利用开源代码与自研代码针对 macOS 用户发起攻击。攻击者显然对利用 Go 开发复杂网络通信功能十分熟稔,但似乎对恶意软件规避检测方面不太擅长,例如使用标准加壳方式、代码未经过开发者签名等。其他攻击者在这方面给 oRAT 已经做出了好榜样,可以预见在之后该攻击者还会从中学习、持续改进。

IOC

3f08dfafbf04a062e6231344f18a60d95e8bd010
9779aac8867c4c5ff5ce7b40180d939572a4ff55
911895ed27ee290bea47bca3e208f1b302e98648
26ccf50a6c120cd7ad6b0d810aca509948c8cd78
9b4717505d8d165b0b12c6e2b9cc4f58ee8095a6

参考来源

SentinelOne

# Go # macOS # oRAT
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录