-
鱼叉邮件投递攻击诱饵为发票申请相关,xlsx诱饵由攻击样本释放,多起攻击事件中使用的诱饵完全一致,疑似使用相同模板生成的泛化攻击样本。 -
原始攻击样本均为xll文件类型(Excel扩展插件),且针对攻击目标主机环境为装有32位office excel的64位Windows操作系统。核心载荷为内存C++ JssLoader木马。 -
微步通过对相关样本、IP 和域名的溯源分析,提取多条相关 IOC ,可用于威胁情报检测。微步威胁感知平台 TDP 、本地威胁情报管理平台 TIP 、威胁情报云 API 、主机威胁检测与响应平台 OneEDR 、微步云沙箱、互联网安全接入服务 OneDNS 等均已支持对此次攻击事件和团伙的检测。OneDNS 可以实现自动拦截阻断,通过在DNS解析环节碰撞情报,在C&C服务器反连时直接拦截恶意域名,避免真实的攻击危害发生,保护员工安全上网。
攻击样本均为Excel扩展插件xll类型,此类型文件携带Excel图标,双击时由Excel进程加载执行。
xll文件执行后,将会释放xlsx诱饵文档并打开。所捕获xll样本释放诱饵文档相同,内容为发票申请相关。
2.1 攻击工具分析
2.1.1 Xll文件攻击介绍
xll文件是Microsoft Office Excel产品的一种扩展插件,其本质是pe-dll文件,带有excel-xll专属图标,文件默认打开加载方式为Excel进程加载。
Excel加载xll后,会根据定义的xll接口调用xll文件的导出函数。其中两个接口函数很突出:xlAutoOpen和xlAutoClose。一旦加载项被激活或停用,这些函数就会分别被调用。这些函数可用于加载恶意代码,类似于经典VBA宏中的Auto_Open和Auto_Close方法。xll文件的一个缺点是它们只能由Excel以正确的位数加载。例如,64 位 XLL 只能由 64 位版本的Excel加载。32 位版本也是如此。因此,恶意软件作者必须依赖安装在受害者机器上的 Excel 版本。与VBA宏一样,Excel将警告用户执行加载项引起的安全问题。在这方面,与VBA宏相比,它对恶意软件没有优势。
2.1.2 FIN7 xll JssLoader分析
攻击者鱼叉邮件投递的xll载荷由Excel进程默认加载,xll!xlAutoOpen内存装在执行第一段shellcode(x86_xll_loader),然后挂起64为位系统进程wermgr.exe,通过天堂之门技术在32位Excel进程中内存执行x64shellcode(x64_Injecter),x64_shellcode进一步将最终的核心载荷(x64_coreloader)注入wermgr.exe,然后恢复挂起进程执行。x64_coreloader收集用户及主机信息C&C上线,请求执行C&C下发的功能插件,可支持ps1vbsjsexedllshellcode等多种类型载荷加载,可支持不落地内存执行。整体执行流程如下图所示:
文件名称 |
August 10, 2022.xll |
MD5 |
1e12ac069c1898ffe271ebdfcbd689c1 |
SHA1 |
5c7b4da950b0f1845b38ef1aa11ca41b4731c766 |
SHA256 |
b08e713196b712c42da2df9da7836d270306065fbf6d4720f25d80e4104daf38 |
文件类型 |
Win32 DLL |
文件大小 |
472.00 KB (483328 bytes) |
编译时间 |
2022-07-27 18:41:01 UTC |
C&C |
https://essentialsmassageanddayspa.com |
功能说明 |
JssLoader,可加载下载执行譬如js、vbs、ps1、exe、dll、shellcode等多种类型的攻击payload,可针对outlook邮箱实现邮件窃取、规则修改。 |
按照上述执行流程拆解成如下的x86_xll_loader、x64_Injecter、x64_coreloader以及后续的攻击插件四个阶段展开分析。
(1) x86_xll_loader
xll文件恶意代码调用入口。
shellcode加载执行。
调用GetNativeSystemInfo,判断是否为x64系统。
使用Wow64DisableWow64FsRedirection关闭64位系统下32位文件子系统的重定向,获取x64目标进程wermgr.exe。
挂起创建。
heaven’s gate引导执行x64 shellcode。
上述代码将引导执行位于0x00000000004d0000处的64位代码指令,dump该段shellcode使用ida进行x64反编译,heaven’s gate跳段过程使用ecx传递一个0x20字节的参数。
分析该0x20字节参数,其结构如下:
typedef struct _diystruct {
int64_t* lppayload;// 用于进程注入的下一阶段shellcode地址Injectshell
int64_t payloadsize;// Injectshell大小
int64_t hDstProcess;// 目标进程wermgr.exe进程句柄
int64_t hDstThread;// 目标进程wermgr.exe主线程句柄
}diystruct,*lpdiystruct;
(2)x64_Injecter
用于下阶段注入的shellcode通过lpdiystruct->lppayload参数传入0x00000000004d0000开始的x64加载shellcode。
dump分析0x00000000004d0000处的shellcode,其逻辑如下,将lpdiystruct->lppayload拷贝至wermgr.exe空间,然后修改劫持wermgr.exe->AddressOfEntryPoint执行注入的shellcode。
通过硬编码写入wermgr.exe->AddressOfEntryPoint,劫持wermgr.exe执行堆中ret_addr处的注入代码。
(3)x64_coreloader
继续分析注入wermgr.exe的shellcode。注入shellcode先加载所需dll模块及其导出函数地址。
C&C交互之前,先解密uri参数及C&C地址。解密的参数用于标识中马主机身份,形如/?id=userdomain+username&type=a,其中userdomain为主机所属域名称,username为用户名称。
其中频繁使用的字符串解密函数如下,该函数通过传入一个索引值,在全局的字符串数组中获取索引位置的字符串,然后通过自定义base64算法进行解码(base64_list=”+zPCJkVSH2Y6GKMUQ7mqaIT3nfwoxN0rv/9guXsDbLdil8h5OWAtBy1jFEeRZ4cp”)。
可通过附录DiyBase64Decode.py进行base64解码。收集主机及用户信息,封装成Json格式,然后进行base64编码,用于C&C上线。
进行C&C上线,User Agent :curl/7.78.0,essentialsmassageanddayspa.com:443。若企业建设了微步OneDNS,所有域名通信前都会经过OneDNS过滤一次威胁情报,C&C反连将会被及时拦截,有效阻断了控制主机命令下发,防止了危害真实发生。
AAAAAA==nAAAAAA==n+base64(collectinfo)。
%AppData%fragrantpriorityattitudefragrantweekdecorative.js。
%Appdata%classroomfaintsharkharmfulachievedelay.txt。
使用MAPI获取用户outlook邮件。
Malwarebytes在对该样本分析中提到,该木马还可提供邮件规则修改功能,代码实现与GitHubXRules项目(https://github.com/FSecureLABS/XRulez)存在相似之处。通过修改邮件规则可实现针对特定邮件的定向处理或执行恶意文件,攻击者理论上可通过outlook客户端实现持久化驻留。疑似outlook规则添加代码如下:
(4)Plugin_dotnet_loader
JssLoader是FIN7经常使用的一款集信息收集、多类型插件下载/加载功能于一体的中期渗透插件,样本分析过程中提及的形如“id=WALKERPCWALKERPC&type=a”的uri参数以及用户和主机信息收集功能实现中用到的json格式中的名称元素字符串等与历史事件完全一致,都可以作为归因至FIN7的强关联证据,此部分不展开描述。
基于上述分析,我们尝试从样本及网络资产角度进行拓线分析:
Xll类型的jssloader较历史样本的改进之处在于,核心代码经过多层shellcode封装,通过字符串加密以及动态API获取淡化攻击指纹。可从两个代码实现提取样本指纹:自定义base64算法+字符串提取,信息收集部分json特征+API调用特征。
从样本侧C&C上线特征来看,形如“https://essentialsmassageanddayspa[.]com/?id=userdomain+username&type=a”的格式较为固定,其中userdomain为主机所属域名称,username为用户名称。微步内部数据平台拓线结果如下。
公众号内回复“F7”,可获取附录 IOC。
第一时间获取最新的威胁情报
原文始发于微信公众号(微步在线研究响应中心):俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击