近年来,随着微软对 Office 文档中执行代码等各类限制的收紧,以宏代码、已知漏洞利用等方式发起攻击的文档类恶意软件攻击能力被削弱。面对这种情况,攻击者也转变思路,不同 APT 组织和网络犯罪团伙开始频繁借助快捷方式(LNK)文件投递恶意软件。通过给 LNK 文件添加合适的文件名和图标,攻击者就能将其伪装为 Word、PDF 等文档,诱使受害者点击。与在文档中启用宏代码不同,点击 LNK 文件之前不会出现安全风险提示,并且打开 LNK 文件后往往有正常的诱饵文档展示在受害者面前,进一步降低受害者的警惕心。
奇安信威胁情报中心以近期日常运营过程中发现的一个样本为例,展示恶意 LNK 文件会如何导致受害者设备沦陷并被窃取数据。该样本为 ZIP 压缩包,其中包含一个 LNK 文件,ZIP 包可能是通过钓鱼邮件等方式传播的,LNK 文件名伪装为 txt 文件。
为了快速获取样本执行的恶意行为,先将其上传到奇安信情报沙箱(https://sandbox.ti.qianxin.com/sandbox/page)进行分析。
奇安信情报沙箱报告链接 | https://sandbox.ti.qianxin.com/sandbox/page/detail?type=file&id=AZRowPB0ONZSmF3-3YXd |
样本文件名 | ad0c.zip |
样本MD5 | ad0c4953bb364506b5a056974a812004 |
样本类型 | ZIP |
样本大小 | 43898字节 |
上传分析完成后,可以看到该样本的基本信息:包括文件大小、类型、hash等。奇安信情报沙箱基于智能的恶意行为综合判断已经识别出文件可疑并给出了10分的恶意评分。基因特征部分带有”powershell”标签,表明该样本会执行powershell代码。该样本曾在多个不同的沙箱环境中运行,在右侧可以切换分析环境查看不同分析环境的沙箱报告。
在样本基本信息下面紧接着威胁情报AI助手对此次沙箱分析结果的总结内容,可供用户参考。
AV引擎部分显示了数十家杀软引擎对样本的检测结果,可以看到多个杀软引擎判定该样本为恶意。
行为异常总结了样本的可疑行为,右侧带向下箭头符号的条目可以展开详细信息。
该样本有一些值得注意的异常行为,包括在 TEMP 目录中创建了一个可疑的 EXE 文件 tmp2131268457.exe,并且该文件通过名为 WinTask 的计划任务实现持久化。
主机行为的进程信息显示 ZIP 压缩包中的 LNK 文件释放后,执行 powershell 代码,进而启动 tmp2131268457.exe,再由 tmp2131268457.exe 调用系统命令 schtasks.exe 创建计划任务。
网络行为部分显示了样本与 hxxp://128.199.113.162/XtfcshEgt/upwawsfrg.php 存在连续通信行为,正是 tmp2131268457.exe 所在的进程建立了与 128.199.113.162 的网络连接。
释放文件中可以见到许多txt后缀文件,这些文件均是由 tmp2131268457.exe 创建。这些文件路径名称表明,恶意软件会窃取系统中多个目录、浏览器、加密货币钱包相关的数据信息。
根据奇安信情报沙箱提供的信息,我们对该样本有了初步的了解:该 LNK 样本伪装为 txt 文件诱使受害者点击查看,然而一旦受害者点击将触发 powershell 代码执行,创建一个 EXE 文件,该 EXE 文件通过计划任务实现持久化,与远程服务器建立 HTTP 通信,并窃取设备上的多种数据。
ZIP 中的 LNK 文件使用 notepad 图标,结合文件名 ”Exodus.txt” 让受害者误以为是真实的 txt 文件。LNK 中的 powershell 代码从自身提取出 EXE 数据,将其保存在 TEMP 目录下,以 ”tmp+随机数”的方式命名。
释放的 EXE 为 C# 后门,图标和文件信息伪装为 Chrome。
后门中的关键字符串经过加密处理,使用时调用 Type_0.Method_0 方法进行 AES 解密。
后门执行如下操作:
(1)首先通过检查运行环境的机器名和用户名判断是否在沙箱中运行,如果与内置的名称相符则立即终止运行;
(2)收集感染设备的各类信息,包括:用户名、机器名、操作系统版本和位数、网卡 MAC 地址、CPU 名称、显卡名称、物理内存大小、屏幕分辨率、设备 UUID;
(3)查询名为 WinTask 的计划任务是否存在,如果不存在则创建该计划任务,设置为每隔 5 分钟执行一次,该恶意程序没有使用循环语句封装与 C2 通信的代码,所以该计划任务实际上还起到构建 C2 通信循环的作用;
(4)从资源区释放出诱饵文件 p.html 并打开;
(5)向 C2 服务器回传收集的信息和截屏数据,然后根据 C2 服务器的响应执行具体的后门指令。
C2 通信的 URL 为 ”hxxp://128.199.113.162/XtfcshEgt/upwawsfrg.php”,后门代码中的指令分发逻辑如下:
后门指令对应方法名 | 说明 |
Type_7.Method_21 | 从C2服务器下载后续载荷并内存加载执行,下载时使用的URL为”hxxp://128.199.113.162/XtfcshEgt/upwawsfrg.php?zd=3” |
Type_7.Method_20 | 使用cmd.exe执行命令,执行结果回传C2服务器,回传数据类型名称”cmd” |
Type_7.Method_19 | 收集更多的设备信息并回传,回传数据类型名称”sysinfos” |
Type_7.Method_17 | 将用户Desktop目录打包为ZIP文件并回传,回传数据类型名称”Files.zip” |
Type_9.Method_45 | 从C2服务器下载后续载荷并内存加载执行,下载时使用的URL为”hxxp://128.199.113.162/XtfcshEgt/upwawsfrg.php?zd=1” |
Type_7.Method_18 | 截屏并回传,回传数据类型名称”screen” |
后门向 C2 服务器发送数据时,使用 POST 请求,回传数据类型名称和数据内容均经过 RC4 加密,并进行 Base64 编码。
请求首部 User-Agent 字段使用硬编码字符串。
请求首部 Cookie 字段包含了收集的设备信息。将收集的设备信息拼接为 JSON 字符串格式,然后在前后添加 ”ZZ#”,对最终得到的字符串使用 RC4 加密和 Base64 编码,加密结果伪装成名为 ”SESSION” 的 Cookie。
设备信息中 ZIZI_VERSION 可能表示恶意软件版本,为 3.81。
由于后门的网络通信使用 HTTP 协议,在沙箱下载的 PCAP 包中可以看到恶意软件与 C2 服务器之间的通信数据。
后门与 C2 服务器的首次通信会发送收集的设备信息和截屏数据,网络流量如下。
后门从 C2 服务器获取后续载荷使用 GET 请求,首部包含相同的 User-Agent 和 Cookie 内容。后续载荷经 Base64 解码和 RC4 解密后,直接在内存中加载运行。从 ”?zd=1” 所得载荷的文件名为 ”zzsteal.bin”,执行窃密操作。
分析时从 “?zd=3” 未能获取到载荷,从 ”?zd=1” 获取的后续载荷解密后是一个经过 Confuser 混淆的 C# 窃密软件。窃密软件在 ”%LocalAppData%” 目录下创建用于收集数据的子目录,子目录的路径名称由随机字符串、用户名、主机名和语言环境几部分组成。收集数据保存为子目录中的不同 txt 文件,然后压缩为 ZIP 包,加密后通过 Telegram API 发送给攻击者,发送完毕删除子目录。
回传收集信息的 Telegram API 链接如下。
hxxps://api.telegram.org/bot7033932802:AAGEIhL9e0lyUi0vjZnRy3PcwnKJPhSCFWQ/sendDocument?chat_id=1126217452
收集的各类信息包括:
子目录名称 | 收集数据类型 |
Grabber | 递归复制指定目录下的所有文件,包括可移动磁盘设备根目录、当前用户相关目录(Desktop、Pictures、Documents、Downloads)、Dropbox应用目录、OneDrive目录 |
Browsers | 多款不同的浏览器数据,包括数十款基于Chromium和Firefox的浏览器,以及Windows系统内置的Edge和IE浏览器。 |
Messenger | 消息应用数据,包括Discord、Pidgin、Telegram |
Gaming | 游戏应用数据,包括Steam、Uplay、Minecraft |
Wallets | 加密货币和数字钱包应用数据,包括Zcash、Armory、Bytecoin、Jaxx、Exodus、Ethereum、Electrum、AtomicWallet、Guarda、Coinomi、Litecoin、Dash、Bitcoin |
FileZilla | FileZilla FTP客户端保存的服务器连接信息 |
VPN | VPN应用数据,包括ProtonVPN、OpenVPN、NordVPN |
Directories | 获取指定目录的目录树结构信息,包括可移动磁盘设备根目录、当前用户相关目录(Desktop、Pictures、Documents、Videos、Startup、Downloads)、Dropbox应用目录、OneDrive目录、TEMP目录 |
System | 所有进程信息(Process.txt); 所有进程的窗口信息(Windows.txt); 截屏(Desktop.jpg和Webcam.jpg); 保存的WiFi网络信息(SavedNetworks.txt); 周围可获取的WiFi网络信息(ScanningNetworks.txt); Windows系统的产品ID(ProductKey.txt); 设备与应用信息的汇总(Systeminfos.txt) |
窃密软件还带有其他功能,一些功能根据窃密软件硬编码的配置项决定是否启用。这些恶意操作包括:(1)对带有社交平台、邮箱、密码、银行等关键词的应用程序截屏并记录键盘输入;(2)对加密货币、数字钱包相关应用的剪贴板内容进行替换;(3)添加账户并加入管理员组。用于比较应用程序的关键词列表包括英文和俄文,疑似攻击目标涉及俄语使用者。
根据后门回传数据中出现的 ZIZI_VERSION 字符串关联到名为 ZIZI Stealer 的恶意软件[1]。
本次发现的恶意软件与以往披露的 ZIZI Stealer 样本存在多处一致[2, 3]。比如使用相同 IP(128.199.113.162)作为 C2 服务器,网络通信数据具有相同的格式,回传窃取的数据时所用的 Telegram chat_id 参数相同(均为 1126217452)。
128.199.113.162 关联了多个类似的恶意 LNK 文件,有的 LNK 文件名还用截图、密码、浏览器、Telegram 等主题进行伪装。根据样本上传 VT 的时间,类似窃密软件通过 LNK 文件投递的攻击活动至少可以追溯到 2022 年。
早期样本(MD5:005a9553f8d2677bb2534b0580577082)使用类似的代码,通过创建名为 ”WinTask” 的计划任务实现持久化,已具备回传截屏和 Desktop 目录数据,以及下载后续载荷内存执行等功能。
LNK 文件的外观具有“可塑”性,攻击者可以轻易地将其伪装为文档、图片等各类看似无害的文件,而且兼具执行代码的能力,这两点使得 LNK 文件成为钓鱼攻击中恶意软件投放的常见媒介。但无论怎样伪装,LNK 文件还是会保留一些独有的特征:文件图标下方始终带有一个小箭头,并且文件资源管理器会显示文件类型为“快捷方式”。如果从邮件、社交软等渠道接收到此类文件,切记不可直接点击打开。奇安信威胁情报中心提醒广大用户,谨防钓鱼攻击,切勿打开社交媒体分享的来历不明的链接,不点击执行未知来源的邮件附件,不运行标题夸张的未知文件,不安装非正规途径来源的APP。做到及时备份重要文件,更新安装补丁。
若需运行或安装来历不明的应用,可先通过奇安信情报沙箱(https://sandbox.ti.qianxin.com/sandbox/page)进行判别。目前已支持包括Windows、安卓平台在内的多种格式文件深度分析。
目前,基于奇安信威胁情报中心的威胁情报数据的全线产品,包括奇安信威胁情报平台(TIP)、天擎、天眼高级威胁检测系统、奇安信NGSOC、奇安信态势感知等,都已经支持对此类攻击的精确检测。
ad0c4953bb364506b5a056974a812004
dbf4819fd016c532db4313b9748ed879
a7d234000c0f4fde1266602eebc0fc1c
b6cc5823957f976e27a52bc2dad885eb
005a9553f8d2677bb2534b0580577082
C&C
128.199.113.162:80
URL
hxxp://128.199.113.162/XtfcshEgt/upwawsfrg.php
hxxp://128.199.113.162/stwittc/upwawsfrg.php
hxxp://128.199.113.162/awautng.php
[1].https://www.ciphertechsolutions.com/acce-release-notes-v2-5-20240611/[2].https://checkmarx.com/blog/when-the-hunter-becomes-the-hunted/
[3].https://x.com/naumovax/status/1797966572851749236