查看原文
其他

九维团队-暗队(情报)| “海莲花”APT 样本(MacOS)分析报告

九维团队-暗队 安恒信息安全服务 2022-11-18

01

背景


关于“海莲花”(OceanLotus)的相关背景介绍在先前的文章:九维团队-暗队(情报)| “海莲花”APT近期攻击样本分析报告中已有提及,在此不再赘述,感兴趣的小伙伴可自行点击蓝字阅读。

02

概述


近日,安恒信息分子实验室反APT小组(九维团队-暗队)在研究过程中分析了“海莲花”的历史攻击活动样本。当用户打开恶意文档时,会加载恶意宏,该恶意宏会判断操作,符合要求则释放出下一阶段载荷,该载荷会释放出最终的远控木马,木马会搜集主机信息,加密后回传C2,并尝试从C2获取下一步指令并执行,该样本会通过创建开机启动项实现持久化。


分子实验室反APT小组通过对样本进行逆向分析,根据样本行为特征、C2以及结合开源情报,确定此次攻击活动背后的组织为“海莲花”APT。


03

样本分析


3.1

样本基础信息





说明:样本为mht格式doc文档。

SHA256:2BB855DC5D845EB5F2466D7186F150C172DA737BFD9C7F6BC1804E0B8D20F22A

SHA1:1F3964E6047F5EBCBAEB354302D3D67686B8E2AC

MD5:FD4E2B72BBD5F0F27EB5788CC6A7DEDD

创建时间:2018-02-12 04:53:00 UTC


3.2

执行流程图






3.3

分析过程





3.3.1 第一阶段分析


样本启动后文档内容如下,诱导用户启用宏:


恶意文档首先判断系统版本,如果32位系统会尝试加载“libc.dylib”中的导出函数system,用来执行系统命令。如果是64位系统则将文档正文设置为白色,并隐藏文字,伪装成空白文档迷惑受害者。


判断系统类型,如果是MacOS系统则继续执行。


将当前文档所在路径拼接进Perl脚本内:


最后输出的Perl脚本会从文档中解压出 theme0.xml文件,添加可执行权限并执行。


3.3.2 第二阶段分析


文件名:syslogd

SHA256:4DA8365241C6B028A13B82D852C4F0155EB3D902782C6A538AC007A44A7D61B4

SHA1:CE3E827BCC426AEA70447C2D6FF52C2B239DB33E

MD5:DA71B64E77AD45BAB56CF71ECD4F55D4

生成时间:2018-02-14 09:58:54 UTC


核心功能实现在setStartup方法内。



首先会判断是否为Root用户,根据权限将后门文件写入不同的路径中。

GET_PROCESSPATH 方法为解密字符串,样本内所有字符串均使用该方法加密。


加密方式为 AES256,密钥长度20个字节。

解密出的硬编码路径为:

有root权限:

/Library/CoreMediaIO/Plug-Ins/FCP-DAL/iOSScreenCapture.plugin/Contents/Resources

*左右滑动查看更多



无root权限:

~/Library/Spelling/

解密出进程名:

Root用户:screenassistantd非Root用户:spellagentd


后门安装方法主要实现在 Loader::installLoader内,从自身读取出第三阶段可执行文件,写入磁盘。


通过文件头判断出后门为Mach-O可执行文件。


setTimeFile方法会调用系统命令修改文件创建时间,解密出的命令行为:

touch -t 1407260241 \"/Users/hep/Library/Spelling/spellagentd\" > /dev/null

*左右滑动查看更多



如果当前是root用户,还会解密出路径 /Library/LaunchDaemons/,并创建服务文件

/Library/LaunchDaemons/com.apple.screen.assistantd.plist

*左右滑动查看更多



随后隐藏 com.apple.screen.assistantd.plist 文件,并随机化文件修改日期:


服务配置需重启后才会启用,这里会解密出命令并执行加载服务:

launchctl load /Library/LaunchDaemons/com.apple.screen.assistantd.plist > /dev/null 2>&1

*左右滑动查看更多


3.3.3 第三阶段分析


文件名:screenassistantd / spellagentd

SHA256:673ee7a57ba3c5a2384aeb17a66058e59f0a4d0cddc4f01fe32f369f6a845c8f

SHA1:91c6ac1f84e2f8a4cf0f8e4d5c8590fc3c10cf08

MD5:306d3ed0a7c899b5ef9d0e3c91f05193


核心功能点在HandlePP::infoClient 与HandlePP::runHandle 两个方法里,infoClient 负责信息搜集,runHandle 负责执行C2命令:


信息搜集

HandlePP::infoClient 方法搜集系统信息,如安装时间、系统版本、用户名、计算机名等,加密后回传C2。



STRINGDATA::GET_PATH_INFO 方法执行后会解密出一段路径。

非Root用户路径:

~/Library/PubSub/Feeds/db.sqlite3


Root用户路径:

/Library/Modem Scripts/Motorola BitSURFR 56K.ccl/Contents/Resources/Motorola.rbon.framework/Versions/A/Framework

*左右滑动查看更多



内容为用作识别客户端身份的唯一ID:


调用hiddenFile / setTimeFile方法隐藏文件,随机化创建时间:


加密搜集到的信息:


获取c2 域名ssl.arkouthrie.com。


备用C2 域名s3.hiahornber.com。


备用C2 域名ssl.arkouthrie.com。


拼接请求:

http://ssl.arkouthrie.com/v3/yQ/r/eiCu1gd6Qme.js

*左右滑动查看更多



调用 Connector::postHttp 发送数据:


远程控制

HandlePP::runHandle 部分主要功能为请求C2、接收指令并执行:


进入 HandlePP::requestServer 方法。

解密并拼接请求后,通过 Packet::getCommand 获取控制命令:


受控命令功能分析:

0x33

获取文件大小

0xE8

退出进程

0xA2

远程下载文件并执行

0xA1

执行系统命令

0x48

删除文件

0x72

文件上传

0x23 / 0x3C

文件下载


Command == 0x33 获取文件大小


Command == 0xE8 退出进程


Command == 0xA2 && Command == 0xA1


respondLoadLunaThread 线程分析(功能:下载文件并执行)


如果已执行就删除执行文件。

未执行就写入磁盘并执行。


respondRunTerminalThread 线程分析 (功能:执行系统命令)


Command == 0x48 删除文件

Command == 0x72 文件上传

Command == 0x23  || Command == 0x3C 文件下载


04

关联分析


根据样本行为特征、C2以及结合开源情报,确定此次攻击活动背后的组织为“海莲花”APT。


4.1

宏文档钓鱼





海莲花经常使用Word宏进行钓鱼攻击,文件普遍为.doc结尾的MHT恶意文档。
本次攻击活动样本同样使用.doc结尾带有宏的MHT恶意文档。


4.2

C2特征





在海莲花历史样本(firefox.dmg)中,发现了与本次攻击相同的C2回连URL与本次攻击活动样本相符(/v3/yQ/r/eiCu1gd6Qme.js)。


4.3

C2服务器





本次攻击活动样本的C2服务器:

http://ssl.arkouthrie[.]com/appleauth/static/cssj/N252394295/widget/auth/app.csshttp://ssl.arkouthrie[.]com/v3/yQ/r/eiCu1gd6Qme.js

*左右滑动查看更多


IOC:

HASH:

SHA256:2BB855DC5D845EB5F2466D7186F150C172DA737BFD9C7F6BC1804E0B8D20F22A(2018-PHIẾU GHI DANH THAM DỰ TĨNH HỘI HMDC 2018.doc )

SHA256:4DA8365241C6B028A13B82D852C4F0155EB3D902782C6A538AC007A44A7D61B4(syslogd)

SHA256:673ee7a57ba3c5a2384aeb17a66058e59f0a4d0cddc4f01fe32f369f6a845c8f(screenassistantd / spellagentd)

C2:

http://ssl.arkouthrie[.]com/appleauth/static/cssj/N252394295/widget/auth/app.css

http://ssl.arkouthrie[.]com/v3/yQ/r/eiCu1gd6Qme.js



—  往期回顾  —




关于安恒信息安全服务团队安恒信息安全服务团队由九维安全能力专家构成,其职责分别为:红队持续突破、橙队擅于赋能、黄队致力建设、绿队跟踪改进、青队快速处置、蓝队实时防御,紫队不断优化、暗队专注情报和研究、白队运营管理,以体系化的安全人才及技术为客户赋能。




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存