利用XLL文件投递Qbot银行木马的钓鱼活动分析

时间 :  2023年04月26日  来源:  安天CERT

1.概述


近期,安天CERT发现了一起利用恶意Microsoft Excel加载项(XLL)文件投递Qbot银行木马的恶意活动。攻击者通过发送垃圾邮件来诱导用户打开附件中的XLL文件,一旦用户安装并激活Microsoft Excel加载项,恶意代码将被执行。随后,恶意代码会在用户主机上进行层层解密,最终释放出Qbot银行木马。

自2023年2月微软宣布默认阻止Office文档中的宏之后,攻击者尝试使用其他类型的文件作为传播恶意软件的新型媒介。利用XLL文件传播恶意文件的网络钓鱼活动于2021年底开始增多,目前已有Dridex、Qbot、Formbook、AgentTesla等多个恶意代码家族利用XLL文件进行传播,受害者打开XLL文件时,将启动Excel,并将XLL文件作为Excel加载项加载执行,绕过了Office宏文档的限制。

Qbot银行木马于2008年出现,自2020年4月开始进入活跃状态,主要通过垃圾邮件进行传播。2021年2月,安天CERT发布《Qbot银行木马2020年活动分析报告》[1]。该银行木马在执行过程中多次解密,利用加载器加载执行恶意功能躲避反病毒软件的静态查杀,利用计划任务实现自启动,能够在受害主机上获取屏幕截图、收集目标系统信息和获取浏览器Cookie信息等。攻击者还能够利用从用户处窃取的数据实施后续的攻击活动。

经验证,安天智甲终端防御系统(简称IEP)可实现对该银行木马的有效查杀。

2.事件对应的ATT&CK映射图谱


针对攻击者投递银行木马的完整过程,安天梳理本次攻击事件对应的ATT&CK映射图谱如下图所示:

图2‑1 技术特点对应ATT&CK的映射

攻击者使用的技术点如下表所示:

表2‑1 事件对应的ATT&CK技术行为描述表

ATT&CK阶段/类别

具体行为

注释

初始访问

网络钓鱼

通过钓鱼邮件传播

执行

利用命令和脚本解释器

利用命令执行XLL文件

诱导用户执行

诱导用户执行恶意文件

持久化

利用自动启动执行引导或登录

添加注册表自启动项

利用计划任务/工作

创建计划任务实现持久化

防御规避

反混淆/解码文件或信息

解码多层载荷信息

删除主机中的信标

删除创建的远程服务和共享文件夹下的样本

执行流程劫持

劫持系统进程

进程注入

注入最终的银行木马

规避调试器

判断是否存在调试器

凭证访问

不安全的凭证

获取不安全的应用软件、注册表中的凭证

发现

规避调试器

发现调试器工具进程

发现文件和目录

在指定目录中发现应用软件

发现系统信息

发现系统信息

发现系统时间

发现系统时间

横向移动

利用远程服务

在远程计算机上启动服务

污染共享内容

将自身复制到共享文件夹中

收集

收集本地系统数据

收集本地系统数据

获取屏幕截图

获取屏幕截图

命令与控制

使用应用层协议

使用HTTPS协议

数据渗出

使用C2信道回传

使用C2信道回传数据

3.防护建议


为有效防御此类攻击事件,提升安全防护水平,安天建议企业采取如下防护措施:

3.1 识别钓鱼邮件

(1)查看邮件发件人:警惕发送“公务邮件”的非组织的发件人;

(2)看收件人地址:警惕群发邮件,可联系发件人确认;

(3)看发件时间:警惕非工作时间发送的邮件;

(4)看邮件标题:警惕具备“订单”、“票据”、“工资补贴”、“采购”等关键词的标题的邮件;

(5)看正文措辞:警惕以“亲”、“亲爱的用户”、“亲爱的同事”等较为泛化问候的邮件;

(6)看正文目的:警惕以“系统升级”、“系统维护”、“安全设置”等名义索取邮箱账号密码的邮件;

(7)看正文内容:警惕其中附带的网页链接,特别是短链接;

(8)看附件内容:查看前,须使用防毒软件对附件进行病毒扫描监测。

3.2 日常邮箱安全使用防护

(1)安装终端防护软件:安装终端防护软件,开启防护软件中对邮件附件的扫描检测功能,定期对系统进行安全检测,修复系统漏洞。

(2)邮箱登录口令:邮箱登录口令设置时确保具备一定复杂性(包含三种字符元素),确保口令不记录于办公区明显位置,定期修改登录口令。

(3)邮箱账号要绑定手机:邮箱账号绑定手机后,不仅可以找回密码,还可以接收“异常登录”的提示短信,即时处置。

(4)重要文件要做好防护:

① 及时清空收件箱、发件箱和垃圾箱内不再使用的重要邮件;

② 备份重要文件,防止被攻击后文件丢失;

③ 重要邮件或附件应加密发送,且正文中不能附带解密密码。

(5)敏感信息要保护:不要将敏感信息发布到互联网上,用户发布到互联网上的信息和数据会被攻击者收集。攻击者可以通过分析这些信息和数据,有针对性的向用户发送钓鱼邮件。

3.3 政企机构防护

(1)安装终端防护软件:安装反病毒软件,建议安装安天智甲终端防御系统;

(2)加强口令强度:避免使用弱口令,建议使用16位或更长的口令,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;

(3)关闭PowerShell:若一定时间内不使用PowerShell命令行工具,建议将其关闭;

(4)部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对恶意代码的发现与追踪溯源。安天探海威胁检测系统(PTD)以网络流量为检测分析对象,能精准检测出已知海量恶意代码和网络攻击活动,有效发现网络可疑行为、资产和各类未知威胁;

(5)安天服务:若遭受恶意软件攻击,建议及时隔离被攻击主机,并保护现场等待安全工程师对计算机进行排查;安天7*24小时服务热线:400-840-9234。

经验证,安天智甲终端防御系统(简称IEP)可实现对该银行木马的有效查杀。

图3‑1 安天智甲实现对用户系统的有效查杀

4.攻击流程


4.1 攻击流程图

攻击者传播垃圾邮件,诱导用户打开附件中的XLL文件(Agreement_487989a_Mar4.xll),Excel执行包含恶意代码的导出函数xlAutoOpen,恶意代码解密出后续的载荷并执行,创建进程执行cmd命令将从资源中解密的XLL文件写入目标文件3.dat中,创建计划任务自动化执行最终样本,最终样本将自身注入到wermgr.exe进程,劫持执行流程实现获取系统信息、获取磁盘驱动信息、获取屏幕截图、创建管道监视连接、反调试、判断环境中是否存在调试工具和杀毒软件进程等功能。

图4‑1 攻击流程图

4.2 利用XLL文件传播恶意文件

攻击者向用户发送垃圾邮件,诱导用户打开附件中的XLL文件。

图4‑2 携带恶意代码的XLL文件

用户打开XLL文件后,Windows资源管理器将自动启动Excel打开XLL文件,在加载XLL文件之前,Excel会显示一条警告,指出可能包含恶意代码并提示用户安装和激活加载项。

图4‑3 打开XLL文档

就文件类型而言,XLL文件是标准的Windows动态加载库(DLL)。为了使Excel加载项管理器成功加载XLL文件,XLL文件必须实现至少一个导出函数(称为xlAutoOpen),以便在Excel加载XLL文件时调用代码。攻击者通常将恶意代码置于xlAutoOpen函数中,该函数会在加载项被激活时立即触发执行。这意味着,与要求用户启用宏的VBA宏不同,受害者只要打开XLL文件就会执行恶意代码[2]

图4‑4 xlAutoOpen函数

5.样本分析


攻击者通过发送垃圾邮件来诱导用户打开附件中的XLL文件,一旦用户安装并激活Microsoft Excel加载项,恶意代码将被执行。随后,恶意代码会在用户主机上进行层层解密,最终释放出Qbot银行木马。

Qbot银行木马具有在受害主机上获取屏幕截图、获取目标系统信息、获取浏览器Cookie信息等功能。银行木马在执行过程中通过多层解密、利用加载器加载解密文件躲避反病毒软件的静态查杀、利用计划任务实现自启动、最终实现搜集和监控等恶意行为,将敏感数据按照攻击者的需求进行传输,攻击者还能够利用从用户处窃取的数据实施后续的攻击活动。

5.1 样本标签

表5‑1 样本标签

恶意代码名称

Trojan[Spy]/Win64.Qbot

原始文件名

Agreement_487989a_Mar4.xll

MD5

20746C3BB01AA4DEEA993824F947194D

处理器架构

Advanced Micro Devices X86-64

文件大小

2.28 MB (239,1552 字节)

文件格式

BinExecute/Microsoft.EXE[:X64]

时间戳

2023-03-15 00:10:15

数字签名

加壳类型

编译语言

Microsoft Visual C++

VT首次上传时间

2023-03-14 20:20:02

VT检测结果

47/69

5.2 第一层代码-解密Shellcode

Agreement_487989a_Mar4.xll文件执行后会从内存中循环解密出加载器和一个dll文件,解密算法如下图。

图5‑1 xlAutoOpen函数解密执行加载器

加载器在内存中加载执行dll文件。

图5‑2 加载器执行dll

5.3 第二层代码-dll文件

dll文件搜索资源数据并加载到内存中解密,创建1.dat、2.dat文件,将解密出的数据前400字节写入1.dat文件,剩余字节写入2.dat文件。

图5‑3 解密数据写入文件

dll文件解密并拼接出命令,创建进程执行命令。其功能为读取1.dat、2.dat文件内容写入到3.dat中,利用rundll32.exe执行3.dat文件导出函数xlAutoOpen。根据导出函数可知3.dat文件也是XLL文件。

图5‑4 释放文件3.dat并执行

dll文件获取系统时间,解密并拼接出命令,创建进程执行命令。其功能为使用schtasks.exe将3.dat添加到计划任务,任务名设置为QQQ。

图5‑5 创建计划任务实现自启动

5.4 第三层代码-3.dat

3.dat文件是XLL文件,通过rundll32.exe调用xlAutoOpen函数执行,与Agreement_487989a_Mar4.xll相似,xlAutoOpen函数都利用多次循环异或解密出加载器和一个dll文件,加载器将dll文件在内存中展开,修改重定位表,修改导出表,跳转到dll导出函数执行,与原始样本不同的是,原始样本的加载器存在大量混淆。将解密出的pe文件dump下来命名Qbot.dll,后续分析报告中都使用此命名。

图5‑6 执行解密出的dll文件

5.5 第四层代码-Qbot.dll

Qbot.dll文件主要执行以下几个功能:反调试、获取系统信息、查询杀毒软件进程、重启进程、将自身代码注入到wermgr.exe进程执行核心模块。

通过NtCurrentPeb获取peb,利用BeingDebugged成员进行反调试。如果存在调试器则修改key,影响样本的解密函数。

图5‑7 利用BeingDebugged反调试

Qbot银行木马获取访问令牌中的组成员身份。

图5‑8 获取访问令牌中的组成员身份

Qbot银行木马判断当前进程是否为管理员权限。

图5‑9 判断当前进程是否为管理员权限

Qbot银行木马获取进程的RID信息,如果RID < 0x2000,含义为不受信任或低完整性。

图5‑10 获取RID

当RID < 0x2000时,Qbot银行木马获取版本信息、环境变量信息、计算机名等系统信息。

图5‑11 获取系统信息

Qbot银行木马枚举当前系统进程,查询是否有诸如ccSvcHst.exe、NortonSecurity.exe、nsWscSvc.exe、avgcsrvx.exe、avgsvcx.exe等杀毒软件进程。

图5‑12 查询杀毒软件进程

Qbot银行木马解密出杀毒软件进程字符串。

图5‑13 杀毒软件进程字符串

Qbot银行木马检测自身运行权限,获取一个管理员权限的当前窗口的句柄,以管理员权限重启进程。

图5‑14 检测自身运行权限

Qbot银行木马以挂起的方式创建wermgr.exe进程。

图5‑15 挂起的方式创建wermgr.exe进程

Qbot银行木马将自身注入到wermgr.exe进程中,修改重定位表,调用GetThreadContext函数获取入口函数地址。

图5‑16 获取Context结构体

wermgr.exe进程主要实现以下几个功能:获取磁盘驱动信息、创建多个子线程并将这些子线程的优先级设置为低于正常、反调试、动态获取加密相关函数、屏幕截图、创建命名管道并监视、与C2服务器建立连接回传数据等功能。

wermgr.exe进程获取磁盘驱动信息。

图5‑17 获取磁盘驱动信息

wermgr.exe进程获取系统所有账户名称。

图5‑18 获取系统所有账户名称

wermgr.exe进程创建子线程,当子线程启动时,将线程优先级设置为低于正常值。

图5‑19 创建子线程

wermgr.exe进程枚举当前系统进程,查询是否有诸如Fiddler.exe、Autoruns.exe等分析工具。判断是否存在调试器,若判断存在调试器则对解密算法的KEY进行异或操作。

图5‑20 查询分析工具进程、反调试

wermgr.exe进程解密出分析工具进程字符串。

图5‑21 分析工具进程字符串

wermgr.exe进程利用BitBlt等API获取屏幕截图。

图5‑22 获取屏幕截图

wermgr.exe进程创建命名管道\\\\.\\pipe\\%ssp,当此管道被连接时,创建子线程来监视和处理数据。

图5‑23 创建命名管道

wermgr.exe进程从资源中解密得到以下IP地址和端口,用于构建通信隧道。

表5‑1 解密后的IP地址和端口

IP地址

IP地址

IP地址

92.239.81.124:443

176.202.46.81:443

2.49.58.47:2222

74.66.134.24:443

213.31.90.183:2222

12.172.173.82:50001

70.53.96.223:995

92.154.45.81:2222

186.64.67.54:443

190.191.35.122:443

68.173.170.110:8443

12.172.173.82:993

12.172.173.82:22

37.186.55.60:2222

84.216.198.124:6881

94.30.98.134:32100

78.196.246.32:443

12.172.173.82:995

173.18.126.3:443

201.244.108.183:995

24.178.201.230:2222

151.65.134.135:443

197.14.148.149:443

197.244.108.123:443

86.130.9.213:2222

190.75.139.66:2222

213.67.255.57:2222

189.222.53.217:443

122.184.143.84:443

92.159.173.52:2222

91.68.227.219:443

86.236.114.212:2222

80.12.88.148:2222

73.36.196.11:443

47.196.225.236:443

65.95.49.237:2222

184.176.35.223:2222

186.48.181.17:995

2.14.105.160:2222

190.218.125.145:443

109.11.175.42:2222

23.251.92.171:2222

75.156.125.215:995

184.189.41.80:443

31.48.18.52:443

70.51.152.61:2222

47.203.229.168:443

104.35.24.154:443

92.154.17.149:2222

103.169.83.89:443

86.169.103.3:443

92.1.170.110:995

183.87.163.165:443

85.241.180.94:443

92.20.204.198:2222

103.141.50.102:995

81.229.117.95:2222

47.34.30.133:443

173.178.151.233:443

47.16.77.194:2222

76.80.180.154:995

67.70.23.222:2222

24.117.237.157:443

87.202.101.164:50000

64.237.245.195:443

103.231.216.238:443

103.71.21.107:443

71.65.145.108:443

12.172.173.82:465

184.153.132.82:443

86.178.33.20:2222

94.200.183.66:2222

98.159.33.25:443

136.35.241.159:443

24.187.145.201:2222

65.94.87.200:2222

184.176.110.61:61202

49.245.82.178:2222

46.10.198.134:443

84.35.26.14:995

103.252.7.231:443

139.5.239.14:443

202.142.98.62:443

27.109.19.90:2078

75.143.236.149:443

50.68.204.71:993

91.169.12.198:32100

24.239.69.244:443

12.172.173.82:21

174.104.184.149:443

86.225.214.138:2222

202.187.87.178:995

81.158.112.20:2222

98.145.23.67:443

73.161.176.218:443

88.122.133.88:32100

76.27.40.189:443

201.137.185.109:443

90.104.22.28:2222

178.175.187.254:443

12.172.173.82:2087

208.180.17.32:2222

196.70.212.80:443

103.12.133.134:2222

190.28.116.106:443

92.27.86.48:2222

76.170.252.153:995

50.68.204.71:995

83.92.85.93:443

35.143.97.145:995

74.93.148.97:995

72.80.7.6:50003

70.55.187.152:2222

72.88.245.71:443

12.172.173.82:32101

187.199.103.21:32103

86.190.223.11:2222

88.126.94.4:50000

116.72.250.18:443

 

6.总结


自2023年2月微软宣布默认阻止Office文档中的宏之后,攻击者转变投递恶意文件的方式,将XLL文件作为一种传播恶意文件的新型媒介。攻击者向用户发送垃圾邮件,诱导用户打开附件中的XLL文件执行恶意代码,从而在用户主机上运行银行木马、远控木马等恶意软件。

在此建议用户不要轻易相信未知邮件中的内容,对邮件的来源进行确认,并警惕邮件中具有诱导性的内容。安天CERT将持续关注攻击者的新型攻击手段,并对相关攻击活动进行深入分析与研究。

7.IoCs


IoCs

20746C3BB01AA4DEEA993824F947194D

160D6D1BE068C04FCF08553383F1C93A

FF58F9CF0740AEAD678D9E36C0782894

84A765F683860EEDBB344A9A1AA0C883

5D450B19AA1A0FD9AE4103FA84D5D09B

5AC0D9286D8497C648DFC418218397EB

E09A3BAC10565EE80CBDB7A4B1A5D2AF

参考资料


[1] Qbot银行木马2020年活动分析报告
https://www.antiy.cn/research/notice&report/research_report/20210206.html
[2] Threat Spotlight: XLLing in Excel - threat actors using malicious add-ins
https://blog.talosintelligence.com/xlling-in-excel-malicious-add-ins/