网宿安全演武实验室近期捕获了CryptoJoker恶意勒索木马。CryptoJoker 勒索软件最早出现在2016年1月,由一个名为MalwareHunterTeam的安全研究团队发现。尽管当时它还没有广泛传播,但已经是一个功能完善的勒索软件。本次捕获的变种样本具备很强的流程控制能力,攻击者可以通过控制C2下发的配置文件对受害者进行灵活的操作。
这个变种样本被归属于CryptoJoker的原因是,它最终的勒索负载是由开源勒索软件CryptoJoker所修改后编译生成的。该样本的分发和执行流程与2020年末“匿影”团队的勒索攻击手法有所相似。本篇分析报告的重点是对其整体分发流程和样本集进行详细分析,以更全面地了解该恶意软件的特征和行为。
本次活跃的变种最早于4月初活跃于网络,攻击者伪装成IT服务提供商对受害者发送钓鱼邮件,声称收到来自受害者邮件地址未经授权的请求,以不想启动法律程序为由,诱使受害者打开恶意附件。恶意附件为一个压缩包文件,解压缩后是一个.hta文件。诱饵文件具有强时效性,执行流程中会检测当前时间戳,超过固定的时间未执行则样本不会执行到关键负载,时间窗口在大约两天内。同时,该时间判断隐藏在控制流扁平化及代码高度混淆的js中,错过时间窗口后分析人员很难定位到样本失效原因。
表1
样本概要:
执行恶意文件后,它会启动powershell向C2请求下载xml配置文件,并使用该配置文件创建任务计划程序。计划任务会执行powershell命令,下载后续执行文件。经过几轮的操作后,CryptoJoker会执行最终的勒索负载。
样本执行流程如下图:
图1 样本执行流程
详细流程:
1、hilton-iot-logs-04-17-2023.hta
该文件为CryptoJoker勒索软件初始样本,它会在启动时向C2服务器通信,若返回状态码200,则请求执行远程a.js文件。执行后会关闭自身。
图2 初始样本
2、a.js
a.js控制流扁平化及代码高度混淆。
图3 高度混淆的a.js
直接运行该脚本会报错,脚本在大量的switch…case…流中插入了对当前时间的判断,若时间戳超过规定时间戳35ms则样本后续流程就会发生改变,导致脚本最终执行失败。根据监控到的时间戳变量值和诱饵文件名的对比,样本一般设置为两天内失效。
图4 时间戳判断
通过验证后执行到恶意负载,js通过ActiveXObject调用Wscript.Shell,最终使用cmd调用powershell执行一段base64编码过的代码。
图5 调用ActiveX对象执行脚本
PowerShell 脚本将下载2个文件并将它们保存在文件AppData夹中,分别是两个任务计划程序的配置文件:x.xml和task.xml。下载完毕后会通过task.xml创建一个计划任务并执行该任务。(“vakifbank iot-10-04-2023logs.hta”还会下载一个“iotlog.pdf”文件并打开,猜测是为了伪装正常文档打开过程。此新版本删除此项操作。)
图6 解码后的powershell脚本
3、task.xml
task.xml是用来创建任务计划程序的配置文件。
图7 task.xml
任务计划项中的命令执行部分使用cmd调用Base64编码后的PowerShell脚本命令。这些命令的目的是在C盘“Windows ”目录中(后面多个空格)创建一个名为“System32”的文件夹(以下简称伪目录),并将Windows任务管理器(taskmgr.exe)复制到该伪目录中。然后,设置伪目录为当前工作目录,并从指定的URL下载一个名为“uxtheme.dll”的文件,并将其保存在当前工作目录中。最后,启动位于该目录下的Windows任务管理器应用程序。
图8 解码后的PowerShell脚本
恶意软件使用侧加载技术,执行伪目录的taskmgr.exe,利用 DLL 加载机制,优先加载当前目录下的恶意库文件uxtheme.dll,以便在系统中执行恶意代码。这是一种惯用的白加黑手法。
图9 伪目录
4、uxtheme.dll
uxtheme.dll被加载后会执行SetWindowTheme函数,该函数会加载前序下载的x.xml作为配置文件创建任务计划程序,并执行。
图10 创建任务计划程序
5、x.xml
该配置文件为a.js下载的,对应任务计划程序创建后会执行powershell脚本。一共有三段powershell脚本。
图11 x.xml
第一段powershell脚本,为了确保在受害者的机器上有效地加密文件并避免被检测,恶意软件会进行安全软件的规避,恶意软件将用户个人目录及AppData目录添加到Windows Defender防病毒软件的排除路径中,并将“powershell.exe”添加至排除进程中,以便后续恶意样本的执行。
图12 第一段powershell
勒索软件会根据wmic导出所有已安装的产品,从中匹配安全产品名称,并按顺序卸载前四款,已确保后续样本不受杀软监管。
图13 第二段powershell
图14 杀软关键词
最后一段powershell下载了最终的勒索二进制负载pl.exe及配置文件enc.xml,根据enc.xml创建任务计划程序,并执行了该任务计划程序。
图15 第三段powershell
6、enc.xml
该enc.xml创建的任务计划程序执行了最终的勒索负载pl.exe。
图16 enc.xml
7、pl.exe
该样本为.net编译的勒索软件,通过dnspy进行分析后可以发现CryptoJoker的特征。
图17 CryptoJoker
该勒索软件在GitHub上有开源版本,此为修改版本。主要的区别是原作者上线通知是通过电子邮件,此样本是将数据post到C2服务器。使用的函数还是命名为SendEmail。
图18 上线通知
其余行为同大多数勒索软件行为大相径庭,加密文件、释放勒索信。有兴趣的研究人员可以直接参照该项目的开源代码。
ATT&CK映射图谱
图19 CryptoJoker变种ATT&CK映射图谱
总结
钓鱼攻击是一种社会工程攻击,旨在欺骗和诱骗目标用户泄露敏感信息、登录凭据或进行恶意操作。这种攻击方式通过伪装成可信实体、使用诱人的信息、利用心理欺骗等手段,诱使用户相信并采取不安全的行为,从而使攻击者达成其网络入侵、窃取敏感信息或经济利益等非法目标。
根据电子邮件安全和威胁检测公司 Vade 公布的最新报告,2023 年第 1 季度共检测到 5.624 亿封钓鱼邮件,环比上一季度增加 102%。随着网络攻击的升级和“社工”手段的发展,如今的各种钓鱼攻击仿真度越来越高,真假难辨。
钓鱼攻击分为广撒网式攻击和定向攻击。广撒网式攻击针对大量用户,通过发送大量欺骗性的电子邮件、短信、社交媒体信息等方式进行攻击,目的是获取尽可能多的目标用户的敏感信息。而定向攻击则更为精准和有针对性,攻击者会对目标进行详细调查,利用更高级的技术手段进行攻击,以达到长期持续的攻击目的。
在防御钓鱼攻击方面,传统的邮件网关、病毒防护等安全措施已经不再足够。面对定向攻击,企业应当做好有单一终端失陷的准备,因此零信任防护方案成为一种全新的解决方案。零信任防护是一种基于最小权限原则和全面验证的安全模型,它将用户、设备和应用程序的身份验证和访问控制与全面的行为分析相结合,实现了实时的威胁检测和动态的访问权限管理。网宿安全产品SecureLink提供全套零信任防护方案,可以帮助企业从整体安全体系的角度解决钓鱼攻击带来的问题。
本次钓鱼事件的附件是勒索病毒,它的主要目标是感染用户设备并加密其文件,然后勒索用户支付赎金以获取解密密钥。勒索病毒的危害性非常严重,它可以导致文件损失、数据泄露、经济损失、业务中断、品牌声誉和客户信任受损等一系列问题。企业管理者还可以通过以下措施来降低风险:
- 定期安全意识培训和教育,针对员工的安全意识培训和教育计划,帮助他们识别和防范钓鱼攻击和勒索病毒的威胁。提高员工的安全意识可以大大减少成功的攻击和感染。
- 定时进行数据备份可以确保企业关键数据的安全,在遭受勒索攻击或者数据损毁时,企业也能够快速恢复业务运营。
IOCs
MD5:
eebdcff960c7a6ba0fb704797497e467
3d44e24af4ec60439ce3e1923cc31343
1933070201c7cb528ea98a68fe6b392f
58fdcddfd4440c67eb5d27787c3ac80e
03c5fe8af50ad3152126168d1cf11a07
16dc113cf13f4e783d0849cb0873ca8d
e997e15ae021046dc75a618b7bcC2a01
URL:
hxxp://freasz.duckdns[.]org/a.js
hxxp://hostdone.ddns[.]net/x1.xml
hxxp://hostdone.ddns[.]net/task.xml
hxxp://hostdone.ddns[.]net/t.pd
hxxp://hostdone.ddns[.]net/u.dl
hxxp://hostdone.ddns[.]net/pl.exe
hxxp://hostdone.ddns[.]net/e
hxxp://199.192.20[.]58:3001
Domain:
freasz.duckdns[.]org
hostdone.ddns[.]net
deni[.]tk
IP:
199.192.20.58