关键词:LNK、MLNK、WINDOWS

1. 可执行文件概述

  • Windows文件资源管理器(explorer.exe)是LOLbin链中最靠前的离地二进制文件,攻击者通过滥用恶意的Windows快捷方式(LNK文件)来执行恶意软件。

  • 研究团队对来自VirusTotal 的27510个代表性LNK恶意文件进行大规模分析发现:快捷方式指向Windows文件资源管理器(explorer.exe)的数量位居榜首(约占 87.2%),其次是powershell.exe(7.3%)、wscript.exe(4.4%)和rundll32.exe(0.5%)。LNK文件目前在攻击者的恶意软件部署和持久化利用中非常流行。

  • 自2022年5月以来,网络上出现大量mLNK和QuantumBuilder工具的广告。在网络犯罪中这些工具可用于构建LNK恶意文件,并且附加了诸多用于规避和隐身的新功能。

  • mLNK和QuantumBuilder工具使攻击者能够以简便可配置的方式构建恶意LNK文件。鉴于LNK文件在攻击者中的使用流行程度,网络犯罪市场对此类工具的需求正在不断增长。

  • QuantumBuilder工具的作者通过宣扬Office宏“大部分已不再能利用”向攻击者推广该工具和LNK文件的价值。此宣言指的是微软近期决定在默认情况下禁用Office宏于源自不受信任来源的文档上下文中执行。

2. 概述

本文主要围绕Windows快捷方式(LNK文件)展开,它可充当部署恶意软件或建立权限持久化的媒介。在攻击初始阶段,攻击者更倾向于使用恶意快捷方式来部署恶意软件,这些快捷方式通常链接至LOLbins进行代码执行。LOLbins是指Windows系统上合法可用、可供绕过检测的可执行文件,例如powershell.exe或mshta.exe。攻击者使用专门为此目的设计的Windows系统功能或工具方便地构建恶意LNK文件,然后将文件分发给受害者,常用的途径是通过电子钓鱼邮件。

由于以上提及的优势,攻击者可以广泛地滥用快捷方式。自从Microsoft宣布Office应用程序将默认禁用来自不受信任来源的文档上下文中的Office宏执行,使用替代媒介(例如恶意 Windows应用程序和快捷方式)部署恶意软件的攻击者显著增加。本文主要关注恶意快捷方式的利用手法,内容覆盖以下方面:

  • 源于恶意快捷方式的执行链认知。认知建立主要基于对VirusTotal中代表当前恶意快捷方式利用场景的27510个恶意LNK文件样本分析。

  • 近期涉及恶意快捷方式的攻击活动以及恶意LNK文件构建工具的网络犯罪市场动态概述。

  • 用户执行恶意快捷方式时发生的系统活动概述。当用户受到恶意LNK文件攻击时才可以更全面地了解系统上发生的情况。

3. 恶意快捷方式发展

鉴于LNK文件在攻击者中的使用流行程度,网络犯罪工具市场已迅速进行调整,以满足对配置化构建恶意LNK文件工具的需求。本节重点介绍用于构建恶意LNK文件的mLNK 和QuantumBuilder工具。近期这些工具有所更新,同时在网络犯罪领域也有大量宣传活动。

(1)mLNK

由网络犯罪工具供应商 NativeOne 发布的mLNK 工具以其可配置性和易用性而闻名。NativeOne 于 2022 年 6 月发布了该工具的最新版本 4.2。新版 mLNK在网络犯罪论坛和市场上均有密集的广告活动。

图1: NativeOne“利用网站

新版 mLNK 迎来一些新功能用于构建LNK文件,这些功能可用于逃避 Windows 检测机制,如Microsoft Defender SmartScreen。mLNK的公开发行版目前以每月 100 美元的基础价格出售。NativeOne还以 125.00 美元的价格出售 mLNK 4.2 的私有版本,与便宜 25.00 美元的工具公开版本相比,它捆绑了更多的规避机制。

图2: mLNK的购买界面

图3: mLNK 4.2 功能的广告页面

(2)QuantumBuilder

与 mLNK 类似,QuantumBuilder工具是可配置且易于使用的,这使攻击者能够方便地创建恶意LNK文件。2022 年 5 月,有关QuantumBuilder新版本发布的广告活动在网络犯罪空间中开始传播。

图4: 用于构建恶意快捷方式的 QuantumBuilder 界面

QuantumBuilder工具的作者将用户区分为公共版、VIP版和私有用户版三类,并以 189 欧元的基础价格出售该工具。图5概述了QuantumBuilder在线宣传的价目表,包括购买VIP版或私有用户版QuantumBuilder工具的优势。

图5: QuantumBuilder 价格表

值得关注的是QuantumBuilder作者宣传该工具的途径是通过声称Office 宏作为部署恶意软件的媒介“大部分已不再能利用”,因为微软日前决定默认禁用在来自不受信任来源的文档上下文中执行Office宏。

图6: QuantumBuilder 广告

4. 近期攻击活动概览

截至本文撰稿有诸多涉及恶意快捷方式的攻击活动正活跃于全球:

  • 自2022 年第二季度以来,攻击者已开始通过LNK文件大量分发主流恶意软件家族QBot、Emotet、IcedID和Bumblebee。这些恶意软件家族能够在受感染的系统上部署其他恶意软件,包括破坏性勒索软件。此外,谷歌的威胁分析小组(TAG)观察到用于分发恶意LNK文件以感染系统的Exotic Lily,它是一种勒索软件攻击者的初始访问代理 (IAB)。

  • 自2021年9 月以来,攻击者一直通过恶意LNK文件在计算机系统上大规模部署Raspberry Robin 蠕虫。这些攻击包含受感染的USB 媒介,其中写入了恶意LNK文件。

  • 2022年第二季度以来研究人员观测到几场以乌克兰为主题的攻击活动以及专门针对乌克兰系统的攻击活动。某威胁组织一直通过有针对性的网络钓鱼电子邮件分发恶意LNK文件,这些文件会在受感染的系统上部署GammaLoad.PS1_v2恶意软件。目前还有其他以乌克兰为主题的恶意LNK文件在流通。此外,GlowSand攻击活动包括从攻击者控制的终端下载有效负载的恶意LNK文件,这些终端仅响应来自乌克兰IP地址系统的请求。

5. 攻击者快捷方式滥用途径

在本节中,研究人员通过分析快捷方式指向的目标文件系统路径和在快捷方式目标激活时系统指定的命令行参数来表征恶意快捷方式。由于VirusTotal 拥有海量代表性恶意LNK文件样本的存储库,恶意快捷方式分析环境的初始快照即基于它。研究人员分析了 2021 年 7 月 14 日至 2022 年 7 月 14 日期间提交给 VirusTotal 的 27510 个LNK文件样本。在VirusTotal上有至少 30 家检测引擎认为这些样本都是恶意的,其中约68.89%的LNK文件样本在2022年提交,其余31.11%在2021年提交。

研究人员将提供有关恶意快捷方式执行链的最新认知,以协助威胁检测和狩猎工作。Windows 快捷方式执行流程章节提供了有关 Windows快捷方式的背景知识以及用户执行快捷方式时发生的系统活动。

图7描述了可能的恶意快捷方式目标(快捷方式在最终激活时执行的可执行文件),以及它们在恶意快捷方式集合中的出现率(以百分比表示,四舍五入到小数点后三位)。

图7: 恶意快捷方式的目标

快捷方式的链接目标是 LOLbin ,或启动攻击者指定的代码执行和可执行文件。执行频率最高的链接目标有以下这些:

  • cmd.exe,Windows命令解释器,它可以执行Windows命令和任意可执行文件。

  • rundll32.exe,它可以执行Windows DLL中的任意代码。

  • wscript.exe,一个Windows脚本执行环境,可以执行任意脚本代码。

  • powershell.exe,PowerShell脚本引擎的命令解释器。

恶意快捷方式通过激活cmd.exe执行一个或多个Windows 命令(通常以%SystemRoot%\\System32文件夹中的可执行文件形式存在)或攻击者提供的文件:

  • 具有文件扩展名.exe的文件(.exe文件)和Windows 可执行文件格式。

  • 文件扩展名不同于.exe(非.exe文件)以及任何文件格式的文件,包括 Windows 可执行格式。

恶意快捷方式通过将多个Windows命令或攻击者提供的文件用&符号链接成命令语句的一部分,再用cmd.exe执行。链接后的命令语句是快捷方式目标cmd.exe的命令行参数的一部分。

图8中分析的恶意快捷方式是使用cmd.exe启动的。

图8:通过cmd.exe执行的 Windows 命令及其出现率

命令大致分类如下:

  • 用于命令执行流控制的命令,例如exit、goto和for。

  • 用于文件操作的命令,例如xcopy、attrib和copy。

  • 允许执行攻击者指定的代码或可执行文件的命令——LOLbins,例如explorer、powershell、wscript、rundll32、msiexec、start和regsvr32。

  • 用于信息收集、侦察和系统配置的命令,例如findstr、set、ping和net。

  • 用于消息传递和控制命令解释器输出的命令,例如cls、msg、echo和rem。

图9: 恶意快捷方式集合中 LOLbins 的出现率

大多数攻击者通过cmd.exe执行的可执行文件名是随机的——99.914% 的文件名是随机的,只有 0.086% 是非随机的(可理解的),例如streamer.exe、setup.exe或windowsupdater.exe。

研究人员根据.exe文件的文件名将对应的恶意快捷方式分组到某个簇中进行聚类。通过以上聚类方法可以观察到带有非随机文件名的.exe文件由少数具有较大规模的快捷方式簇执行,平均有1177个快捷方式。相反,具有随机文件名的.exe文件由大量小规模的快捷方式簇执行,其中大多数快捷方式不超过 3 个。这表明防御者应该考虑使用随机.exe文件名的高度可疑快捷方式,同时掌握威胁环境中的.exe文件命名趋势,以获得更好的检测覆盖率。

图10: 恶意快捷方式簇的数量与簇内规模

研究人员还观察到恶意快捷方式通过cmd.exe执行的非.exe文件中还有253种不同的文件后缀。

图11: 恶意快捷方式通过cmd.exe执行的前 40 个文件扩展名及其出现率

仅考虑文件扩展名,恶意快捷方式可能会执行如下文件:

  • 脚本文件,例如文件扩展名为.vbs、.vbe和.js;的文件

  • 可执行文件,例如具有文件扩展名.scr和.dll的文件

  • 数据文件——存储文本、音频、视频、存档或其他任意内容的文件,例如文件扩展名.docx,.png,.log和.dat

此外,绝大多数如.exe或 .vbs的可执行文件或脚本文件扩展名会伪装成数据文件的文件扩展名,例如.docx或.avi。也就是说可执行文件或者脚本文件会伪装成其他格式。

其中大约0.5% 的恶意快捷方式目标的文件系统路径和系统在链接目标激活时指定的命令行参数的组合长度大于 260 个字符。在资源管理器工具中对LNK文件的属性、快捷方式、目标字段进行可视化检查。当看到快捷方式目标的路径和任何命令行参数时不会显示超过 260 个字符的任何内容。因此攻击者会滥用此功能进行混淆:他们会制作LNK文件并用字符(例如换行符或空格)填充命令行参数,使得快捷方式目标路径和命令行参数的组合长度显著超过 260 个字符。

经过观察发现字符填充的手法主要用于链接到powershell.exe的快捷方式。此外还有大约 2.5% 的样本中使用到字符串连接和插入符号 (^) 进行目标链接文件和命令行参数的组合混淆。

6.Windows快捷方式执行流程

Windows操作系统的用户界面是一个被称为Windows Shell的组件,它用来管理和表示用户与之交互的对象实体。对象则包括驻留在文件系统中的实体(如文件和文件夹),以及其他实体(如联网的计算机)。Windows Shell将这些对象构造成Shell命名空间。

当用户使用创建快捷方式命令创建另一个对象的快捷方式(也称为快捷方式目标)时,Windows Shell 会创建一个Shell Link对象和一个LNK文件——一个带有.lnk文件扩展名的文件。LNK文件采用二进制Shell Link文件格式,并在数据结构中存储 Windows 需要访问(激活)的快捷方式目标信息。这些信息包括:

  • 快捷方式目标的文件系统路径,例如相对于LNK文件位置的路径(在RELATIVE_PATH数据结构中)和绝对路径(在LinkTargetIDList数据结构中)。

  • 在快捷方式目标激活时系统指定的命令行参数(在COMMAND_LINE_ARGUMENTS数据结构中)。

  • 快捷方式图标的文件系统路径(在ICON_LOCATION数据结构中)。

图12描述了恶意文件malLNK.lnk的内容(SHA-1 哈希值:5b241d50f1a662d69c96d824d7567d4503379c37)。以下是使用LECmd LNK文件解析工具对malLNK.lnk解析获得的内容。

图12: malLNK.lnk的内容

(为简洁起见使用?替换 Unicode 字符)

malLNK.lnk的快捷方式目标是C:\\Windows\\System32\\cmd.exe,其命令行参数是:

/c "%Root%\\explorer.exe %cd%新建文件夹 & attrib -s -h %cd%qCAQlUf.exe & xcopy /F /S /Q /H /R /Y %cd%qCAQlUf.exe %temp %\\rplKl\\ & attrib +s +h %cd%qCAQlUf.exe & satrt %temp%\\rplKl\\qCAQlUf.exe & exit"

总之,被激活的快捷方式目标使用资源管理器工具来执行可执行文件、操作可执行文件的System和Hidden属性、复制可执行文件,并执行复制的可执行文件。

图13简要描述了 Windows 操作系统通过LNK文件激活快捷方式目标后执行的活动。我们以malLNK.lnk作为运行样本举例,图中数字标记了活动之间的转换:

图13: 快捷方式目标激活时的系统活动概述

Windows 使用Windows Shell 方法IContextMenu::InvokeCommand 来处理快捷方式目标激活。此函数需要一个类型为CMINVOKECOMMANDINFO或CMINVOKECOMMANDINFOEX的参数。当用户触发IContextMenu::InvokeCommand执行时,CMINVOKECOMMANDINFOEX数据结构会存储Windows Shell 在相关执行过程中的命令信息。快捷方式的上下文中,命令指的是带有任何命令行参数的快捷方式目标。

CMINVOKECOMMANDINFOEX 数据结构存储的信息包括命令执行时的工作目录(lpDirectory(W) 数据结构字段)和命令参数(lpParameters(W) 数据结构字段)。与CMINVOKECOMMANDINFO相比,CMINVOKECOMMANDINFOEX允许数据结构字段中存储Unicode值。

当用户双击malLNK.lnk(标签[1])时,系统执行CDefFolderMenu::InvokeCommand函数(标签[2])。CDefFolderMenu::InvokeCommand在%SystemRoot%\\System32\\shell32.dll中实现。此函数会对CMINVOKECOMMANDINFOEX数据结构进行填充并将执行流转至CShellLink::InvokeCommand函数,参数为 CMINVOKECOMMANDINFOEX 数据结构。

CShellLink::InvokeCommand在%SystemRoot%\\System32\\windows.storage.dll(标签[3])中实现。作为其参数的CMINVOKECOMMANDINFOEX数据结构只填充了几个字段,例如,必填字段cbSize(指定CMINVOKECOMMANDINFOEX的字节大小)和lpDirectory(W).

图14描述了作为CShellLink::InvokeCommand参数的CMINVOKECOMMANDINFOEX数据结构的内容。malLNK.lnk位于C:\\Users\\\\Desktop\\malLNKlp文件夹中——这个目录决定了字段lpDirectory(W)的值。

图14: CShellLink::InvokeCommand函数执行前CMINVOKECOMMANDINFOEX数据结构的内容

CShellLink::InvokeCommand函数会执行与快捷方式处理相关的核心功能。这包括在文件系统上定位快捷方式目标、扩展环境变量与完全填充CMINVOKECOMMANDINFOEX数据结构(标签 [4])。CShellLink::InvokeCommand将执行流传递回具有完整CMINVOKECOMMANDINFOEX数据结构的CDefFolderMenu::InvokeCommand函数(标签 [5])。举例来说填充完毕的CMINVOKECOMMANDINFOEX数据结构会将命令参数存储在lpParameters(W) 数据结构字段中,该字段值是位于malLNK.lnk中COMMAND_LINE_ARGUMENTS数据结构中的数据。

图15: CMINVOKECOMMANDINFOEX数据结构的内容

CDefFolderMenu::InvokeCommand函数将执行流转至CRegistryVerbsContextMenu::InvokeCommand,完全填充的CMINVOKECOMMANDINFOEX数据结构作为函数的参数(标签 [6])。CRegistryVerbsContextMenu::InvokeCommand函数在shell32.dll中实现。

通过调用在%SystemRoot%\\System32\\kernel32.dll中实现的CreateProcessW函数,CRegistryVerbsContextMenu::InvokeCommand可以创建一个新进程(label [7])。该进程的命令行是由快捷方式目标和命令行参数组合而成,如图16所示。

图16: 快捷方式目标激活时新建进程的命令行

7. 针对研究人员和用户的建议

调查者应高度怀疑任何在源自快捷方式的执行链中显示以下内容的Windows 快捷方式(LNK 文件):

  • 可执行文件的执行(包括激活快捷方式目标),比如LOLbin、启用攻击者指定的代码或可执行文件。以下文件是分析过程中最普遍的恶意快捷方式目标可执行文件:explorer.exe、powershell.exe和wscript.exe.

  • 在快捷方式目标中通过cmd.exe启动的非.exe扩展名可执行文件。在所有经过分析的恶意快捷方式中非.exe文件的不同扩展名共有253个。大多数非.exe文件是用来存储伪装成其他格式文件的可执行代码(例如Windows可执行文件或脚本文件)。

  • 在快捷方式目标中通过cmd.exe执行具有.exe扩展名和随机文件名的文件。对于具有非随机(可理解)文件名的.exe文件,调查人员应密切关注威胁环境中的.exe文件命名趋势,以获得更好的检测覆盖率。

用户应警惕网络钓鱼攻击,并避免执行邮箱中未知来源的附件。攻击者正在通过网络钓鱼电子邮件大规模分发恶意LNK文件,并且目前有大量活跃、广泛且涉及恶意快捷方式的攻击活动。恶意LNK文件通常拥有误导性文件名和伪装成重要文档或关键软件图标两类特征以诱使用户激活快捷方式。

参考链接:https://www.sentinelone.com/labs/who-needs-macros-threat-actors-pivot-to-abusing-explorer-and-other-lolbins-via-windows-shortcuts/

编辑|倪锴

审校|何双泽、金矢

本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。

声明:本文来自国家网络威胁情报共享开放平台,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。