ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

***组织“海莲花”再活跃 打造全新macOS后门

2021-04-18 14:51:32  阅读:208  来源: 互联网

标签:后门 macOS 加密 莲花 扰码 密钥 字节 滴管


***组织“海莲花”再活跃 打造全新macOS后门

***组织“海莲花”再活跃 打造全新macOS后门

前言

趋势科技于上周三(4月4号)宣称,一种新型的MacOS后门程序(目前趋势科技已将其定义为OSX_OCEANLOTUS.D )正被***组织“海莲花”所使用,而其***目标是那些安装有Perl语言编程软件的Mac用户。

***组织“海莲花”再活跃 打造全新macOS后门'

传播过程分析

海莲花(OceanLotus,又名Cobalt Kitty、SeaLotus、APT-C-00和APT 32)是高度组织化的、专业化的境外国家级***组织。自2012年4月起针对中国政府的海事机构、海域建设部门、科研院所和航运企业,展开了精密组织的网络***,很明显这是一个有国外政府支持的APT(高级持续性威胁)行动。

趋势科技的研究人员认为,这个全新macOS后门是“海莲花”所使用的最新的***工具。

MacOS后门是在一个恶意的Word文档中发现的,可能是通过电子邮件发送的。这意味着,新的MacOS后门程序是通过钓鱼电子邮件中的恶意Word文档进行传播的。恶意Word文档会伪装成文件名为“2018-PHIẾU GHI DANH THAM DỰ TĨNH HỘI HMDC 2018.doc”的文档,翻译过来也就是“2018年HMDC大会登记表”,而HMDC是一个在越南宣传民族独立和民主的组织。

***组织“海莲花”再活跃 打造全新macOS后门

恶意文档***时的截图

在收件人打开该文档时,它会建议收件人启用该文档的宏。而这个恶意宏则采用了十进制ASCII代码来逐个字符地进行混淆,以逃避各种杀毒软件的检测。这种字符串的混淆加大逆向分析技术的难度,会让该恶意软件看起来不那么可疑,如下图所示。

***组织“海莲花”再活跃 打造全新macOS后门

文档混淆后的代码片段

在逆向分析之后,研究人员可以看到恶意有效载荷是用Perl编程语言编写的。它从会从Word文档中提取theme0.xml文件,theme0.xml文件是一个带有0xFEEDFACE签名的Mach-O 32位可执行文件,用于作为OSX_OCEANLOTUS.D后门程序的滴管组件(dropper),不过theme0.xml在执行之前会被解压到 /tmp/system/word/theme/syslogd。

***组织“海莲花”再活跃 打造全新macOS后门

逆向分析之后的Perl有效载荷

***组织“海莲花”再活跃 打造全新macOS后门

滴管组件分析

滴管组件用于将后门安装到受感染的系统中,并建立其持久性***机制。

***组织“海莲花”再活跃 打造全新macOS后门

滴管组件的主要功能

滴管组件中的所有字符串以及后门本身都使用了硬编码的RSA256密钥进行加密。其中,加密字符串以两种形式存在:使用RSA256加密的字符串,以及混合使用自定义base64编码和RSA256加密的字符串。

***组织“海莲花”再活跃 打造全新macOS后门

硬编码的RSA256密钥会显示前20个字符

使用setStartup()方法运行后,滴管组件会首先检查它是否以ROOT权限运行。因为只有这样,GET_PROCESSPATH和GET_PROCESSNAME方法才会对硬编码路径和进程名称进行解密,并安装最终的后门程序。所以总结起来就是:

· 对于有ROOT权限运行的设备来说:

1.硬编码路径是 /Library/CoreMediaIO/Plug-Ins/FCP-DAL/iOSScreenCapture.plugin/Contents/Resources/;

2.进程名称是screenassistantd

· 对于没有以ROOT权限运行的设备来说:

1.硬编码路径是 ~/Library/Spelling/;

2.进程名称是spellagentd;

随后,在实现了Loader::installLoader方法后,恶意软件就会读取硬编码的64位Mach-O可执行文件(magic value 0xFEEDFACF),并写入之前确定的路径和文件。

***组织“海莲花”再活跃 打造全新macOS后门

滴管组件安装后门后,会将其属性设置为“隐藏”,并设置一个随机文件日期和时间

如上所示,当滴管组件安装后门程序时,它会将其属性设置为“hidden(隐藏)” ,并使用touch命令将文件创建日期和时间设置为随机值,touch命令为 touch –t YYMMDDMM “/path/filename” > /dev/null,此时访问权限将被更改为0x1ed = 755,这等于u=rwx,go=rx。

***组织“海莲花”再活跃 打造全新macOS后门

Mach-O可执行文件的随机值0xFEEDFACF(64位)

用GET_LAUNCHNAME和GET_LABELNAME方法将为root用户(com.apple.screen.assistantd.plist)和普通用户(com.apple.spell.agent.plist)返回属性列表“.plist”的硬编码名称。

然后,滴管组件将在/Library/LaunchDaemons/或~/Library/LaunchAgents/文件夹中创建持久文件。当操作系统启动时,RunAtLoad将命令launchd来运行守护进程,而KeepAlive将命令启动以使进程无限期地运行。这个持久性文件也被设置为隐藏着随机生成的文件日期和时间。

***组织“海莲花”再活跃 打造全新macOS后门

具有持久性设置的属性列表

/launchctl load /Library/LaunchDaemons/filename.plist或 /dev/nul or launchctl load ~/Library/LaunchAgents/ filename.plist > /dev/nul 将命令操作系统在登录时启动已删除的后门文件。在该过程结束时,滴管组件会自行删除该过程。

***组织“海莲花”再活跃 打造全新macOS后门

后门分析

后门程序包含两个主要函数infoClient和runHandle,这两个函数所实现的功能是不同的,infoClient负责收集用户的设备系统信息,并将这些信息提交给命令和控制(C&C)服务器以及接收额外的C&C通信信息,而runHandle则负责后门功能。

***组织“海莲花”再活跃 打造全新macOS后门

后门的主要功能

infoClient在HandlePP类中填充的变量:

***组织“海莲花”再活跃 打造全新macOS后门

属于HandlePP类的变量列表

clientID是来自环境变量的MD5哈希,而strClientID是clientID的十六进制表示。下面的所有字符串都是通过AES256和base64编码加密的。HandlePP::getClientID方法使用的是以下环境变量:

***组织“海莲花”再活跃 打造全新macOS后门

序列号

***组织“海莲花”再活跃 打造全新macOS后门

硬件UUID

***组织“海莲花”再活跃 打造全新macOS后门

MAC地址
***组织“海莲花”再活跃 打造全新macOS后门

随机生成的UUID

对于初始信息包来说,后门也会收集以下信息。

***组织“海莲花”再活跃 打造全新macOS后门
操作系统版本

运行getpwuid ->pw_name, scutil - - -get ComputerName, uname - m将分别提供以下返回值:

1.Mac OSX 10.12;

2.System Administrator;

3.<owner’s name>’s iMac;

4.x86_64;

所有这些数据在发送到C&C服务器之前都会被加密和加密,详细过程如下所述。

1.扰码

扰码就是作有规律的随机化处理后的信码,类解析器的方法有多种,每个变量类型的解析方法各不同,比如 Parser::inBytes, Parser::inByte, Parser::inString以及 Parser::inInt.。

***组织“海莲花”再活跃 打造全新macOS后门

Parser :: inBytes方法

如果clientID等于下面的字节序列B4 B4 B1 47 BC 5282873 1F 1A 01 6B FA 72 C0 73,那么这个扰码的版本就是使用第三个参数(0x10)计算的,它被当做一个DWORD来处理。每4个字节都与它异或,如下面的例子所示。

***组织“海莲花”再活跃 打造全新macOS后门

***组织“海莲花”再活跃 打造全新macOS后门

Parser :: inByte方法

当扰码一个字节时,扰码器首先确定字节值是奇数还是偶数。如果该值是奇数,则将字节加上一个随机生成的字节添加到数组中。如果该值是偶数的情况,首先添加随机生成的字节,然后添加字节。在上面的例子中,第三个参数是'1'= 0x31,这是一个奇数。这意味着它将字节'1'和一个随机生成的字节添加到最终的扰码阵列。

***组织“海莲花”再活跃 打造全新macOS后门

Parser :: inString方法

当扰码字符串时,扰码器会产生一个5字节长的序列。首先,它生成一个随机字节,然后是3个零字节,1个随机字节,最后是一个字节长度的字符串。假设研究人员要打乱字符串' Mac OSX 10.12。则它的长度是13 = 0x0d,两个随机字节是0xf3和0x92。最后的5字节序列看起来就像F3 00 00 92 0D,而原来的字符串则与5字节序列异或。

***组织“海莲花”再活跃 打造全新macOS后门

扰码Mac OSX 10.12

2.加密

加密的字节序列会被传递给Packet::Packet类的构造函数中,该类会创建一个随机的AES256密钥,并使用这个密钥对缓冲区进行加密。

3.对加密密钥编码

为了使C&C服务器能够解密加密数据,随机生成的AES256密钥必须连同加密数据一起包含在数据包中。然而,这个密钥也是通过异或操作XOR 0x13进行扰码的,随后对每个字节应用ROL 6操作。

***组织“海莲花”再活跃 打造全新macOS后门

在输出数据包中对AES256密钥进行扰码的函数

以下是在扰码和加密过程中的一些屏幕截图:

***组织“海莲花”再活跃 打造全新macOS后门

灰色部分的字节表示已加密的计算机信息

***组织“海莲花”再活跃 打造全新macOS后门

随机生成AES256密钥

***组织“海莲花”再活跃 打造全新macOS后门

扰码的AES256密钥(0xC1异或0x13 = 0xD2,0xD2 ROL 6 = 0xB4等)

***组织“海莲花”再活跃 打造全新macOS后门

用AES256密钥加密的计算机信息

***组织“海莲花”再活跃 打造全新macOS后门

发送到C&C服务器的最终有效载荷的屏幕截图,扰码的AES256密钥标记为绿色,而加密的计算机信息标记为红色,其他字节只是随机生成的字节

当后门收到来自C&C服务器的响应时,最终的有效载荷需要以类似的方式通过解密和扰码来进行解码。Packet::getData 负责解密接收到的载荷,而Converter::outString 负责对结果进行解扰。

来自C&C服务器的接收数据包括以下信息:

1.HandlePP::urlRequest (/appleauth/static/cssj/N252394295/widget/auth/app.css);

2.HandlePP::keyDecrypt;

3.STRINGDATA::BROWSER_SESSION_ID (m_pixel_ratio);

4.STRINGDATA::RESOURCE_ID;

这些数据稍后将在C&C通信中被用到,如下面的Wireshark截图所示。

***组织“海莲花”再活跃 打造全新macOS后门

交换系统数据包信息后与C&C服务器的通信过程

与此同时,负责后门功能的runHandle将使用以下后门命令调用requestServer方法(每个命令都有一个字节长的代码,并由Packet::getCommand提取):

***组织“海莲花”再活跃 打造全新macOS后门

getCommand方法

下图显示了几个可能的命令代码中的两个示例,这两个示例,都创建一个线程,每个线程负责下载和执行文件,或者在终端中运行一个命令行程序。

***组织“海莲花”再活跃 打造全新macOS后门

用于下载和执行的命令,以及在终端中运行一个命令

***组织“海莲花”再活跃 打造全新macOS后门

用于上传和下载文件的命令

***组织“海莲花”再活跃 打造全新macOS后门

支持的命令及其各自的代码

***组织“海莲花”再活跃 打造全新macOS后门

总结

虽然针对Mac设备的恶意***并不像其他系统那样常见,但这一新的MacOS后门的发现可能是通过网络钓鱼邮件发送的,这意味着每个用户都可能通过网络钓鱼的方式被***。

***组织“海莲花”再活跃 打造全新macOS后门

’IoCs

***组织“海莲花”再活跃 打造全新macOS后门
***组织“海莲花”再活跃 打造全新macOS后门

标签:后门,macOS,加密,莲花,扰码,密钥,字节,滴管
来源: https://blog.51cto.com/u_15127538/2715606

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有