事件背景
从今年年初开始,安恒信息中央研究院猎影实验室频繁捕获到针对加密货币领域的相关攻击,经研究人员分析,这些攻击归属于Lazarus组织。
该组织多年来一直持续的攻击加密货币与区块链相关领域,并且技术上不断进行迭代。猎影实验室也在2020年曾对其进行分析(《LAZARUS组织对加密货币行业持续发起攻击》)。
而近日捕获的样本,其攻击手法有所变化,采用了MSI文件执行嵌入脚本的方式来执行其恶意载荷,并使用多种方法来逃避检测。
攻击分析
该组织的攻击行为,与加密货币的涨跌具有较强的相关性。经过统计,上半年该组织的攻击事件数量如下:
该组织的攻击具有明显的周期性,上半年的攻击周期分别为二月初至三月初,3月中旬至四月初,7月末至今。而这三个周期,正好对应了上半年以太坊的三个较长时间的上涨周期(以太坊数据来源于币安)。
该组织近日还攻击了区块链公司debridge:
攻击分析
该组织通常采用钓鱼邮件的方式传播,通过邮件附件或链接的方式,诱导用户下载恶意压缩包,并执行压缩包中的恶意文件。
压缩包分为三种情况:
1释放加密的诱饵文件和一个带有恶意命令的LNK文件,由LNK文件下载后续载荷,后续载荷释放文件密钥和恶意脚本;
2释放LNK文件,LNK文件下载后续载荷,后续载荷释放诱饵文件和恶意脚本;
3释放带宏的OFFICE文件,由恶意宏下载后续载荷并执行;
攻击流程如图所示:
钓鱼邮件如图所示,其中,邮件收件人所在的公司woo.network,是一家加密货币交易公司。邮件末尾的“CoinbaseJobDescription”即为恶意链接。
下面以样本b94a13586828f8f3474f7b89755f5e7615ff946efd510a4cca350e6e1b4af440为例进行分析。
该样本文件名为Ledger_Nano_S&X_Security_Patch_Manual.zip,是一个zip压缩包,文件名中的LedgerNano是一款硬件钱包,用于保护加密资产,S和X是其型号:
该样本伪装成LedgerNano的安全补丁手册,解压后会释放一个伪装成pdf文件的快捷方式文件:
用户双击该快捷方式后,会执行命令:
该命令中,使用cmd静默执行expand程序,将msiexec.exe复制到%appdata%\pat.exe路径下,然后使用pcalua.exe打开pat.exe,从远程服务器上下载msi文件并执行。
这个过程中使用了多种逃避检测的技术:
//expand.exe是系统用于解压压缩包的程序,但可以被用来进行文件复制,代替敏感的copy命令
//复制并重命名msiexec.exe,以逃避对msiexec.exe的执行检测
//pcalua.exe是windows程序兼容性助手,是系统的白名单程序,攻击者使用该程序调用重命名为pat.exe的msiexec.exe,访问远程服务器上的恶意msi文件,从而逃避检测
获取到的MSI文件运行后,会执行内嵌的脚本:
该脚本为该组织典型一阶段脚本,其功能包括:
//下载并打开正常的PDF文件从而迷惑受害者;
//向启动目录释放Edge.lnk文件,完成自启动;lnk文件执行的命令与样本解压后的lnk文件基本相同,也是使用pcalua.exe调用重命名后的msiexec.exe加载远程服务器上的msi文件;该文件的名称和图标都伪装为Edge浏览器,使受害者降低警惕;
//调用WMI命令获取进程名称列表并进行拼接,然后检查如下进程名称:
kwsprot”:金山毒霸相关进程
“npprot”:Net ProtectorAntiVirus相关进程,一款印度的杀毒软件
“fshoster”:F-Secure相关进程
//如果拼接后的进程名称中存在上述字符串之一,则会使用cscript.exe执行后续脚本,否则使npprot用wscript.exe;
//将选定的脚本执行程序复制到%public%目录下;并且如果进程名称中存在kwsprot或npprot,会将用于执行脚本的程序重命名为icb.exe,以逃避检测;
//解码base64编码的后续脚本,释放到临时文件夹下,命名为RgdASRgrsF.js;
//使用复制到%public%目录下的脚本执行程序,执行RgdASRgrsF.js。
RgdASRgrsF.js是该组织的典型二阶段脚本,其功能非常简单,生成随机的UID后与服务器通讯,然后循环接受服务器的命令并执行;所执行的命令通常一些收集系统信息的命令:
技术演进
该组织样本通常通过钓鱼邮件投递压缩包,并在压缩包中携带载荷。该组织典型的压缩包载荷中,会带有一个无害的诱饵文档,以及一个伪装成txt类型密码文件的恶意lnk载荷,诱饵文档被密码保护,从而诱使受害者打开lnk文件获取密码,并触发后续载荷;初期也有过使用带恶意宏的诱饵文档直接执行恶意载荷的情况;随着技术的迭代,又出现了压缩包中只带有一个lnk文件的情况,该lnk文件会伪装成docx文件、pdf文件等,用户点击后,会从远程服务器上下载诱饵文档打开,同时在后台运行恶意载荷;用于下载诱饵文件的服务器,通常为公共的网盘服务,例如googledrive等;而最近,又出现了lnk下载msi文件,并使用msi文件执行后续载荷的手法,加强了逃避查杀的能力,也即本文的攻击分析部分所分析的手法。
对比该组织lnk样本中命令的演进情况,我们可以发现,该组织初期通常直接使用mshta程序执行远程服务器上的脚本,其中远程服务器地址通常为一个短链接;但最近该组织的lnk命令有较大改变,从直接调用mshta文件,改为使用cmd程序调用复制且重命名后的mshta文件,远程服务器地址也从短链地址改为了伪装成文件共享平台的域名地址,并且lnk命令中也会加入混淆、通配符、系统白名单程序利用等其他的对抗查杀手法;或者放弃mshta程序,改为本文中所使用的调用msiexec程序下载远程msi并执行。
对比该组织lnk释放的一阶段js的演进情况,可以发现整体流程变化不大,典型的技术特点都是使用wmi读取进程名称列表并拼接,然后查找一些固定的杀毒软件进程名字;释放用于自启动的lnk文件;解码base64编码的二阶段js并执行等;并且使用拼接字符串的方式进行混淆。最近的一阶段js,增加了一些混淆上的变化,包括会增加一些无意义的变量字符串,以及对base64函数使用AST混淆(基于抽象语法树的混淆)等。Base64解码后的二阶段js,也表现出了同样的混淆特点。
无意义的字符串:
基于AST的混淆:
反混淆后,可以看到是解码base64的函数:
关联分析
对此次分析过程中涉及到的部分lnk文件,我们将其关联信息列表如下:
LNK文件名称 | SHA256 | 文件创建时间 | VolumeID | MachineID | 文件图标 | 关联域名 |
Anchorage Digital Opportunities.pdf.lnk | 3debe73d29fd2c0a8eca0f701c30870af25986189790322a45a9526f1603d12b | 03/07/2022 10:00:55 UTC | 2862035D | 无 | Edge图标 | file.fclouddown[.]co |
PanteraCapitalOpportunities.pdf.lnk | c285bf15a83133b231afddbbcfe1c35932d0c1ccd4b066a24bd1756a9ccec6d9 | 03/07/2022 10:00:55 UTC | 2862035D | 无 | Edge图标 | file.fclouddown[.]co |
81554ae36513b4a637d72db864f31e39ef3ae35ad402fb170f5e5fddee2d4589 | 81554ae36513b4a637d72db864f31e39ef3ae35ad402fb170f5e5fddee2d4589 | 07/19/2022 14:07:37 UTC | DE20260B | 无 | TXT图标 | file.fclouddown [.]co |
Password.txt.lnk | f7170b70a89f4b5d196e3a09c1d6135d36320548f66cdc2c55bf725b0f8d4ab8 | 07/19/2022 14:07:37 UTC | DE20260B | 无 | TXT图标 | file.fclouddown[.]co |
Password.txt.lnk | ebadd662bb797b[5077e24638de04a1554e19a56362d8fabe1ea6b6903491c95c | 07/19/2022 14:07:37 UTC | DE20260B | 无 | TXT图标 | doc.documentshare[.]info |
Password.txt.lnk | 1e154b2976cc00d457c0dc2b83ebe81911294c8276691617085c03a3304fd87f | 07/18/2022 02:59:14 UTC | 无 | desktop-nl7f86k | TXT图标 | www.googlesheet[.]info |
HR-SecretKey-Password.txt.lnk | 45c0007e4c744c6f9ba43660cc7edb9a2deb27580e160f8a0e56585401ee9ee3 | 07/18/2022 02:59:14 UTC | 无 | desktop-nl7f86k | TXT图标 | www.googlesheet[.]info |
Password.txt.lnk | 422384d25aa351a4eb6871ea50c3c96e83ec6f8ffdb3129adc5a4cf1b198c5c9 | 07/18/2022 02:59:14 UTC | 无 | desktop-nl7f86k | TXT图标 | www.googlesheet[.]info |
Ledger_Nano_SX_Security_Patch_Manual.pdf.lnk | 8eec3ac9f7d1ac64fc7397ba57cdac4f56959d1512f71dded60e831a26e0762e | 03/15/2022 01:08:56 UTC | C68780BD | 无 | PDF图标 | inst.shconstmarket[.]com |
New_Profit_Distributions_2022.pdf.lnk | e40347e7cd335b43a0d27b33521684754f66d1e3be714f22a68e27d396a63faf | 07/27/2022 14:17:35 UTC | 无 | \xC4\x66\x5F\x33\x64\x9B\x94\x12\xCF\x87\xD1\xA7\x90\x11\x1F | PDF图标 | dps.shconstmarket[.]com |
从表格中,我们可以发现:
1
许多lnk文件的生成时间都是相同的,且生成时间相同的文件,其VolumeID或MachineID也几乎都相同,例如VolumeID2862035D,DE20260B,MachineIDdesktop-nl7f86k等;这些特征表明lnk文件很可能是通过生成器生成的;
2
攻击者所使用的域名,通常会伪装成文件服务的域名,例如documentshare[.]info,googlesheet[.]info,fclouddown[.]co等;
3
攻击者会将lnk文件的图标设置为Edge浏览器图标、PDF文档图标等,用于迷惑受害者;
本次分析过程中所涉及到的域名,注册商全部为Porkbun:
通过这些域名,可以关联到IP地址155.138.219[.]140,多个该组织使用的域名都可关联到该IP地址:
在分析过程中,我们捕获到了多个被篡改的lnk文件,这些文件被篡改的方式相同,都是在原始样本的起始位置,添加11个字节的0x2D和一个字节的0x0A;这些被篡改的样本也都是由同一个用户上传到VT上的。这种情况通常是有人想要测试杀毒软件对样本的检测方法,这些人可能是一些安全研究人员,但也有可能是攻击者。
本次分析过程中所涉及到的域名,大部分都已经失活,但有少部分地址仍然可以返回js脚本,但返回的脚本已经无害化,只会生成Password文件,用于将诱饵文件的密码展示给受害者。该脚本使用与恶意载荷相同的手法进行混淆,因此大概率是攻击者进行的修改,其目的可能是防止恶意样本的影响进一步扩大。
思考总结
该组织一直都在持续不断的对加密货币相关行业进行攻击。由于其攻击周期与加密货币的价值波动具有明显的相关性,因此当加密货币处于牛市阶段时,我们就需要警惕该组织可能发动的攻击。
对LNK文件的利用向来都是攻击者的惯用方式。而随着微软可能要禁用Office宏的使用,利用LNK文件来迷惑受害者的攻击手法可能会持续的增长。同时根据HPWolfSecurity最近的一篇报告表明,有多种恶意软件,例如QakBot,IcedID,Bumblebee,NjRAT等,都会使用恶意LNK进行传播,同时也观察到有大量LNK生成器被攻击者所使用。因此,对恶意LNK文件的防范,应该引起我们的重视。