filesyncshell.dll劫持?APT-C-24响尾蛇最新攻击活动简报

APT-C-24
  响尾蛇

近期我们捕获了一起略为特殊的攻击活动事件。该攻击活动由APT-C-24(响尾蛇)组织发起,一改往日的攻击框架,使用了全新的攻击方式和流程。有意思的是,在这次攻击活动中,因为软件版本原因,导致按照正常代码执行逻辑无法正常完成攻击活动,似乎我们的老朋友响尾蛇APT组织在代码的测试环境上并未完全与中文环境同步。

响尾蛇组织在本次攻击活动围绕FileSyncShell.dll构建了前期的执行流程,使用恶意程序替换FileSyncShell.dll,以DLL侧加载的方式通过explorer.exe来启动FileSyncShell.dll,从而实现攻击流程。我们捕获的攻击流程如下:

攻击流程预览

在攻击流程中,响尾蛇将宏代码文档分为两个阶段执行,通过投递第一个阶段的诱饵文档文件,来释放并执行第二阶段的文档文件。

1. 诱饵文档

    

在我们捕获的文档文件中,该组织通过宏代码来完成后续代码执行,函数Document_Open代码如下:

通过SaveAs函数将文档解析为Html模式保存至路径“%Temp%Loading..htm”,同时该文档包含的图像内容、宏代码等等会保存至“

.files ”
文件夹,文件夹内包含内容如下:


但是这里一个比较有意思的现象在于响尾蛇在代码中使用的是”

_files”(
对应路径 “%Temp%Loading._files” )。但由于微软将文档保存为网页“.htm、.html”时,在不同版本上存在差异,导致实际上响尾蛇的代码在中文版本中无法正常运行。

在“

_files”
即支持文件夹中,保存着如项目符号、背景、图片等等文件。响尾蛇从该文件夹中的image003.png中读取服务器配置信息,文件数据如下分为三个部分,前面120字节为png文件头,后续则按照每个数据库255字节进行分割。

image003.png

从上方可以看到数据库分为两段,第一段URL的作用为在代码执行错误时上传错误日志,第二段则是后续文件下载地址,通过函数“Shapes.AddPicture”将文件下载本地,随后另存为Web文件”%Temp%Loading…htm”。

代码片段1

代码片段2

代码片段3

“image001.png”的数据结构如下,带有一个doc文件以及保存的文件路径等。在宏代码中会将文档文件保存至该路径(%userprofile%AppDataRoamingMicrosoftTemplatesrec2.doc),并打开以执行文档文件内携带的宏代码。

image001.png


2. rec2.doc

与诱饵文档的执行流程相似,在“rec2.doc”中,也会将自身保存为“.htm”文件来获取其中包含的图像文件,但略微不同的是,它会将支持文件夹内保存了文档文件内宏和 OLE 对象相关数据的“editdata.mso”文件数据清除。

在“image003.png”中获取服务器配置信息,结构同上:

第一段数据块中包含的URL作为代码执行异常时,向服务器发送错误日志。

第二段到第四段数据块内包含的URL通过函数”Shapes.AddPicture”将文件下载本地,随后解析文件中数据,释放文件到指定路径。文件名对应路径如下:

文件名

路径

image001.png

%UserProFile%AppDataLocalMicrosoftOneDrive*amd64filesyncshell64.dll

%UserProFile%AppDataLocalMicrosoftOneDrive*filesyncshell64.dll

image002.png

%UserProFile%AppDataRoamingMicrosoftTemplatesIntroduction to Canton Fair Global Cooperative Partnership Program.doc

image003.png

%UserProFile%AppDataLocalMicrosoftOneDrive*i386filesyncshell.dll

%UserProFile%AppDataLocalMicrosoftOneDrive*filesyncshell.dll

最终打开“Introduction to Canton Fair Global Cooperative Partnership Program.doc”文件用于伪装,并将上述的文档文件数据清除。


3. FileSyncShell64.dll/ FileSyncShell.dll

“Filesyncshell.dll”文件是Microsoft OneDrive开发的Microsoft OneDrive Shell扩展产品的一部分。该DLL通常位于文件夹“%UserProFile%AppDataLocalMicrosoftOneDrive<版本号>”下,在开机启动时会被explorer.exe调用,响尾蛇通过对文件进行替换从而完成持久化。

这两个DLL在功能上是一致的,此处我们就选FileSyncShell.dll进行描述。

该DLL为.Net的DLL,跟近几年响尾蛇的样本一样,通过对函数名进行拓展和重复调用的方式进行混淆。

在Filesyncshell.dll中会通过WMI获取设备上杀毒引擎的信息,然后使用函数“DownloadData”向服务器请求数据,在请求的URL中携带前面获取的杀毒引擎信息,从而实现向服务器传递数据。

从资源模块“ModuleMD”中获取数据进行解密,解密算法与以往一致,采用前32字节的数据对后续的数据进行异或。解密之后进行反射加载,将URL作为参数传入,并接受TargetInvocationException异常,即反射调用异常。

当反射调用异常大于4次时或反射调用异常时,则检测网络环境,若网络连通性存在异常则检索文件夹“%USERPROFILE%AppDataLocalMicrosoftOneDrive<版本号>“中的”FileSyncShell64.dll/ FileSyncShell.dll“文件,若存在” FileSyncShell – 1.dll.bak“或”FileSyncShell64 – 1.dll.bak“,则将当前的”FileSyncShell64.dll/ FileSyncShell.dll“重命名为”logs1-
/logs2-
“,并从资源解密数据文件到本地,命名为”FileSyncShell64.dll/ FileSyncShell.dll“。

随后遍历文件夹内num >= 2的”FileSyncShell64 –

.dll.bak
“文件,删除这些文件。


4. FileSyncShell.CU.dll

上述提到的被从资源释放到”FileSyncShell64.dll/ FileSyncShell.dll“的文件在模块名上略有不同,他们的模块名为”FileSyncShell.CU.dll“

这个模块执行后会检测” FileSyncShell – 1.dll.bak“或”FileSyncShell64 – 1.dll.bak“是否存在,若存在,则删除”logs1-
/logs2-
“文件,将当前的”FileSyncShell64.dll/ FileSyncShell.dll“重命名为”logs1-
/logs2-
“。然后将”FileSyncShell – 1.dll.bak/FileSyncShell64 – 1.dll.bak“重命名为”FileSyncShell64.dll/ FileSyncShell.dll“。

我们推测响尾蛇试图通过网络下发程序到” FileSyncShell – 1.dll.bak/FileSyncShell64 – 1.dll.bak“,并通过上述的联动来完成程序的更新。


5. ModuleMD.dll

在ModuleMD.dll中,会通过上述提到的传入的URL参数下载数据进行解密,解密后的数据反射加载调用Classic模块。


6. Classic.dll

在Classic.dll中,会首先采集当前设备的信息,采集信息的类型如下:

物理地址

CPU数量

操作系统版本

操作系统位数(32bits/64bits)

操作系统版本号

通过将这些信息附加到URL的方式发送到服务器以获取后续的数据信息,此处我们并未获取到后续的程序,从后续代码片段来推断,我们认为这些数据信息应当包含了文件路径、后续服务器URL等。

通过解析这些数据,从指定URL中下载数据到指定路径,并创建注册表项来完成持久化。

通过对样本和基础设施的深入分析处理,我们判断本次攻击活动与响尾蛇APT组织存在关联关系。主要的关联存在以下几点:

1.在本次攻击活动中使用的URL格式与响尾蛇以往使用的域名格式类似。

2.代码混淆方式相似,采用加长函数名,反复调用函数等方式进行混淆。

本次攻击活动中Classic.dll代码片段

历史响尾蛇使用的代码

3. 数据加密方式一致,采用前32字节与后续数据进行异或来进行解密。

本次攻击活动使用的数据解密代码

历史攻击活动中Duser.dll中使用的数据解密代码

4.Classsic.dll代码结构与响尾蛇以往的代码结构相似。

Classsic.dll代码片段1

历史响尾蛇使用代码片段1

Classsic.dll代码片段2

历史响尾蛇使用代码片段2

      综上,我们认为本次攻击活动与响尾蛇APT组织存在关联。

总结

对于VBA中使用到的“SaveAs”函数,在Microsoft Docs提到关于Office软件在将文档文件保存为网页(.htm、.html)时,会创建一个名为”
_files”
的文件夹来保存支持文件,如项目符号、背景、图片等等。


保存后可以在htm文件中看到对路径的引用。


但是微软在对于不同语言版本的Microsoft Office软件支持中存在差异,其中”_files”后缀为英语版本,中文版本则为“.file”的后缀,正因为这样的差异导致该攻击流程无法中文环境中运行。

中文环境默认配置

英文环境默认配置

本次攻击活动相比以往存在较大的变化,相对复杂许多,更是使用了新的白利用方式作为持久化手段。相较历史攻击活动释放到设备的远程控制程序,”FileSyncShell64.dll/ FileSyncShell.dll”在文件路径和持久化方式上的隐蔽性均有较大的提升。从代码层面观察,Classic.dll以及FileSyncShell.dll应该不是攻击流程的最终阶段,我们推测最终响尾蛇组织还会释放其他程序到设备完成远程控制的功能,以获取对设备远程控制能力的双重保险。

附录 IOC

MD5:

0cc6f7eddb1cd93d05ce9941a1d66dc6

013513303527ab53d4b95be0ef084a9a

648fc56e5fcdd5d1a85404698fcfb3f9

3c15c13e8840d8bb87efd8c2b1d8ab9a

0f3e84d70550be0ccb65b720d076dc76

cccf525795dd3c08ce06d24a679d7041

21683a24ee5ffe675e0a0854de3e8224

94a2cc90732548f387920c024055a9e9

C&C:

https://mailcantonfair.cssc.info/ChinaForeignTradeCentre-6e7d38eb

https://mailcantonfair.cssc.info/3117/1/25399/2/1/0/0/a7UrSGszlkeU4pxbesS7rZXwwwor1RvyPWSG8vNA/files-0333f997/0

https://mailcantonfair.cssc.info/3117/1/25399/3/3/0/1865608801/a7UrSGszlkeU4pxbesS7rZXwwwor1RvyPWSG8vNA/files-152e08e6/1/cuuimd?t=0&d=

https://mailcantonfair.cssc.info/3117/1/25399/3/3/0/1865608801/a7UrSGszlkeU4pxbesS7rZXwwwor1RvyPWSG8vNA/files-152e08e6/1/cuuimd

https://mailcantonfair.cssc.info/3117/1/25399/3/3/0/1865608801/a7UrSGszlkeU4pxbesS7rZXwwwor1RvyPWSG8vNA/files-c221fc39/1/cuuifss

https://mailcantonfair.cssc.info/3117/1/25399/2/3/0/1865591248/a7UrSGszlkeU4pxbesS7rZXwwwor1RvyPWSG8vNA/files-f776076f/log1

https://mailcantonfair.cssc.info/3117/1/25399/2/1/0/0/a7UrSGszlkeU4pxbesS7rZXwwwor1RvyPWSG8vNA/files-0333f997/0

https://mailcantonfair.cssc.info/3117/1/25399/2/3/0/1865591252/a7UrSGszlkeU4pxbesS7rZXwwwor1RvyPWSG8vNA/files-c981dc38/log1  

https://mailcantonfair.cssc.info/3117/1/25399/2/1/0/0/a7UrSGszlkeU4pxbesS7rZXwwwor1RvyPWSG8vNA/files-0333f997/0






360高级威胁研究院

360高级威胁研究院是360政企安全集团的核心能力支持部门,由360资深安全专家组成,专注于高级威胁的发现、防御、处置和研究,曾在全球范围内率先捕获双杀、双星、噩梦公式等多起业界知名的0day在野攻击,独家披露多个国家级APT组织的高级行动,赢得业内外的广泛认可,为360保障国家网络安全提供有力支撑。

Source: https://mp-weixin-qq-com.translate.goog/s/qsGxZIiTsuI7o-_XmiHLHg?_x_tr_sl=zh-CN&_x_tr_tl=en&_x_tr_hl=en