执行流程图
一、样本分析
Tran_ID-Details009192_End_Ids_58788719853478_Pdf.js
该样本一打开就是大型 JavaScript 混淆:
混淆代码示例
简单查看该混淆脚本,可以发现其加密字符串集中来源于 _0x28502,在需要时逐层解密:
部分字符串解密
由于混淆较多,这里直接以动态分析搭配行为监测为主, "Tran_ID-Details009192_End_Ids_58788719853478_Pdf.js" 是第一阶段的 downloader,会下载下一阶段用的 JavaScript 文件和一个 PDF 文件并打开用以迷惑用户,安全分析工具监测行为如下:
安全分析工具行为监测
该 downloader 会解密出域名 "ddfcbb9325637bcdeff.mxttbszhh1.free.hr",随后拼接路径 "/oauth/pdf/Monetary_Funding_Sheet_2024.js",通过 GET 请求获取下一阶段 JavaScript 文件,放置在开机启动目录中以执行持久化操作:
获取 JavaScript 文件
文件下发展示
接着继续拼接路径 "/oauth/pdf/Monetary_Funding_Sheet_2024.pdf" 下载 PDF 到 "C:\User\Administrator" 目录下,随即打开文档以迷惑受害者,让受害者以为自己打开的是正常的 PDF 加载程序:
获取 PDF 文件
PDF 内容截图
目前该 PDF 链接地址已被标记为钓鱼文档:
钓鱼文档标记
Monetary_Funding_Sheet_2024.js
下载的另一个混淆 JavaScript 名为 "Monetary_Funding_Sheet_2024.js",这是一个 WSHRAT JavaScript 后门,且与前面用的是同一套混淆方法,部分内容截图如下所示:
混淆代码展示
"Monetary_Funding_Sheet_2024.js" 在执行过程中会链接第一个 url:"https://pastie.io/raw/yjuddx",通过 pastie.io 网址做中转获取真实 C2 IP "45.88.91.57":
获取 C2 IP
网页内容截图
Pastie.io 是一个在线的代码分享工具,类似于 Pastebin 和 GitHub Gists。用户可以在 Pastie.io 上创建代码片段或文本片段,并生成一个唯一的 URL,而在 URL 路径中添加 raw 后会得到只包含文本的页面,没有任何其它杂乱元素,方便分享和访问,这里是被恶意软件作为中转:
Pastie 网页展示
"Monetary_Funding_Sheet_2024.js" 接着会把自身复制到 AppData\Roaming 目录下:
文件复制展示
然后拼接字符串 WScript.exe //B "C:\Users\Administrator\AppData\Roaming\Monetary_Funding_Sheet_2024.js" 写入到注册表 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" 中,进行第二个持久化操作。其中 /B 参数将启用 “批处理模式” 并禁用执行期间可能发生的任何潜在警告或警报:
写入开机自启动注册表
最后继续用命令 WScript.exe //B "C:\Users\Administrator\AppData\Roaming\Monetary_Funding_Sheet_2024.js" 执行复制的文件,退出当前进程:
启动子进程
"C:\Users\Administrator\AppData\Roaming\Monetary_Funding_Sheet_2024.js" 被执行后才会进入最后的 while 循环,该循环负责与 C2 IP "45.88.91.57" 的通信操作: