俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

APT 2年前 (2022) admin
827 0 0

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

1

概述
FIN7是一个具有俄语背景出于非法经济犯罪目的的黑客组织,自2013年活跃至今,其主要攻击目标为欧美地区的金融、零售、酒店等行业。FIN7在历史攻击活动中展现出对javascript、powershell等类型攻击载荷的青睐,而且其曾使用Carbanak武器库。FIN7与具有相似背景相同非法敛财目的的FIN4、FIN5、FIN6、FIN8、FIN10均存在紧密联系。
微步情报局长期追踪俄语背景APT组织,监测发现,今年7月下旬开始,FIN7对某目标发起多次鱼叉邮件攻击,深入分析攻击事件,有如下发现:
  • 鱼叉邮件投递攻击诱饵为发票申请相关,xlsx诱饵由攻击样本释放,多起攻击事件中使用的诱饵完全一致,疑似使用相同模板生成的泛化攻击样本。
  • 原始攻击样本均为xll文件类型(Excel扩展插件),且针对攻击目标主机环境为装有32位office excel的64位Windows操作系统。核心载荷为内存C++ JssLoader木马。
  • 微步通过对相关样本、IP 和域名的溯源分析,提取多条相关 IOC ,可用于威胁情报检测。微步威胁感知平台 TDP 、本地威胁情报管理平台 TIP 、威胁情报云 API 、主机威胁检测与响应平台 OneEDR 、微步云沙箱、互联网安全接入服务 OneDNS 等均已支持对此次攻击事件和团伙的检测。OneDNS 可以实现自动拦截阻断,通过在DNS解析环节碰撞情报,在C&C服务器反连时直接拦截恶意域名,避免真实的攻击危害发生,保护员工安全上网。
2

详情

攻击样本均为Excel扩展插件xll类型,此类型文件携带Excel图标,双击时由Excel进程加载执行。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

xll文件执行后,将会释放xlsx诱饵文档并打开。所捕获xll样本释放诱饵文档相同,内容为发票申请相关。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

2.1 攻击工具分析

2.1.1 Xll文件攻击介绍

xll文件是Microsoft Office Excel产品的一种扩展插件,其本质是pe-dll文件,带有excel-xll专属图标,文件默认打开加载方式为Excel进程加载。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击
俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

Excel加载xll后,会根据定义的xll接口调用xll文件的导出函数。其中两个接口函数很突出:xlAutoOpen和xlAutoClose。一旦加载项被激活或停用,这些函数就会分别被调用。这些函数可用于加载恶意代码,类似于经典VBA宏中的Auto_Open和Auto_Close方法。xll文件的一个缺点是它们只能由Excel以正确的位数加载。例如,64 位 XLL 只能由 64 位版本的Excel加载。32 位版本也是如此。因此,恶意软件作者必须依赖安装在受害者机器上的 Excel 版本。与VBA宏一样,Excel将警告用户执行加载项引起的安全问题。在这方面,与VBA宏相比,它对恶意软件没有优势。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

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等多种类型载荷加载,可支持不落地内存执行。整体执行流程如下图所示:

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击
 以August 10, 2022.xll为例展开分析,样本信息如下:

文件名称

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文件恶意代码调用入口。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

shellcode加载执行。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

调用GetNativeSystemInfo,判断是否为x64系统。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

使用Wow64DisableWow64FsRedirection关闭64位系统下32位文件子系统的重定向,获取x64目标进程wermgr.exe。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

挂起创建。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

heaven’s gate引导执行x64 shellcode。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

上述代码将引导执行位于0x00000000004d0000处的64位代码指令,dump该段shellcode使用ida进行x64反编译,heaven’s gate跳段过程使用ecx传递一个0x20字节的参数。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

分析该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。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

dump分析0x00000000004d0000处的shellcode,其逻辑如下,将lpdiystruct->lppayload拷贝至wermgr.exe空间,然后修改劫持wermgr.exe->AddressOfEntryPoint执行注入的shellcode。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

通过硬编码写入wermgr.exe->AddressOfEntryPoint,劫持wermgr.exe执行堆中ret_addr处的注入代码。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

(3)x64_coreloader

继续分析注入wermgr.exe的shellcode。注入shellcode先加载所需dll模块及其导出函数地址。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

C&C交互之前,先解密uri参数及C&C地址。解密的参数用于标识中马主机身份,形如/?id=userdomain+username&type=a,其中userdomain为主机所属域名称,username为用户名称。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

其中频繁使用的字符串解密函数如下,该函数通过传入一个索引值,在全局的字符串数组中获取索引位置的字符串,然后通过自定义base64算法进行解码(base64_list=”+zPCJkVSH2Y6GKMUQ7mqaIT3nfwoxN0rv/9guXsDbLdil8h5OWAtBy1jFEeRZ4cp”)。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

可通过附录DiyBase64Decode.py进行base64解码。收集主机及用户信息,封装成Json格式,然后进行base64编码,用于C&C上线。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击
使用WMI系统接口获取信息如下:

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

调试环境收集信息如下:

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

经分析,收集信息包括主机名称、域名称、systeminfo、进程列表、桌面文件列表、主机域关系等。封装json格式如下:

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

进行C&C上线,User Agent :curl/7.78.0,essentialsmassageanddayspa.com:443。若企业建设了微步OneDNS,所有域名通信前都会经过OneDNS过滤一次威胁情报,C&C反连将会被及时拦截,有效阻断了控制主机命令下发,防止了危害真实发生。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

上线数据包如下:
AAAAAA==nAAAAAA==n+base64(collectinfo)。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

InternetReadFile获取C&C载荷,读取载荷数据,进入RAT分发。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

对C&C载荷的处理主要为针对多种文件类型的加载,如javascript、vbscript、powershell等脚本类攻击载荷,exe、dll、shellcode等二进制类型攻击载荷,加载方式可选择落地加载或直接内存加载。除此之外,还可以通过C&C指令实现持久化、文件下载功能,最后同样是最重要的是该木马可根据C&C下发配置数据实现针对Outlook邮箱的定向攻击行为,如邮件数据收集、收件规则修改。而微步OneDNS可以在C&C反连环节起到实时阻断、有效防护的价值。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

C&C交互过程中,存在部分攻击载荷需要落地,落地目录均为%Appdata%[DicName][Filename]。目录名及文件名的命名方式为从自定义base64解码的列表中随机选取3-4个单词进行组合。使用附录中DiyBase64Decode.py脚本可解码该列表。列表总共包含49个单词元素,参见附录RandomNameList。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

加载落地载荷:
%AppData%fragrantpriorityattitudefragrantweekdecorative.js。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

加载落地powershell文件:
%Appdata%classroomfaintsharkharmfulachievedelay.txt。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

根据C&C下发指令,注册表设置名为“VideoCodecs”的自启项。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

进行outlook邮件操作之前,先获取所需的mapi32.dll导出函数。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

使用MAPI获取用户outlook邮件。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

Malwarebytes在对该样本分析中提到,该木马还可提供邮件规则修改功能,代码实现与GitHubXRules项目(https://github.com/FSecureLABS/XRulez)存在相似之处。通过修改邮件规则可实现针对特定邮件的定向处理或执行恶意文件,攻击者理论上可通过outlook客户端实现持久化驻留。疑似outlook规则添加代码如下:

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击
从base64解码的全局字符串也可以观察到邮件配置及规则操作的痕迹。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

(4)Plugin_dotnet_loader

当前调试分析过程中暂未上述阶段的插件下发行为,不过,据malwarebytes报告中提到存在一个.Net的加载器插件。我们获取该样本展开分析。该木马原始文件名称Application.exe,伪装成“ WMI Perfomance Memory 64”工具,于2022/7/26 18:20:47 UTC编译。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

木马由宿主程序带参运行,参数“9bc3e37fea059e1”。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

运行期间将静态字符串数据写入%tmp%目录,数据经过循环膨胀,落地文件约133MB,该行为目的不明,疑似用于WMI工具的合规性为伪装。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

进行C&C配置初始化。C&C:https://bamadora[.]com/。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

收集主机及用户信息。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

自启动目录创建指向Application.exe的lnk文件,带参加载,用于持久化。后续将脱离宿主程序独立运行。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

C&C上线进行数据请求。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

根据C&C返回特定数据进行相应的载荷加载执行,该部分同x64_coreloader中提到的功能点基本相似,不赘叙。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

3

关联分析

JssLoader是FIN7经常使用的一款集信息收集、多类型插件下载/加载功能于一体的中期渗透插件,样本分析过程中提及的形如“id=WALKERPCWALKERPC&type=a”的uri参数以及用户和主机信息收集功能实现中用到的json格式中的名称元素字符串等与历史事件完全一致,都可以作为归因至FIN7的强关联证据,此部分不展开描述。

基于上述分析,我们尝试从样本及网络资产角度进行拓线分析:

Xll类型的jssloader较历史样本的改进之处在于,核心代码经过多层shellcode封装,通过字符串加密以及动态API获取淡化攻击指纹。可从两个代码实现提取样本指纹:自定义base64算法+字符串提取,信息收集部分json特征+API调用特征。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

从样本侧C&C上线特征来看,形如“https://essentialsmassageanddayspa[.]com/?id=userdomain+username&type=a”的格式较为固定,其中userdomain为主机所属域名称,username为用户名称。微步内部数据平台拓线结果如下。

俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击


公众号内回复“F7”,可获取附录 IOC。


—End—
点击下方,关注我们
第一时间获取最新的威胁情报

原文始发于微信公众号(微步在线研究响应中心):俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击

版权声明:admin 发表于 2022年10月19日 下午2:59。
转载请注明:俄语APT组织FIN7更新JssLoader,展开定向网络钓鱼攻击 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...